import requests
import datetime
import time
import re
import json

while True:

    # URL = 'https://www.otodom.pl/pl/oferty/sprzedaz/mieszkanie/wiele-lokalizacji?distanceRadius=0&page=1&limit=1000&market=ALL&priceMax=950000&areaMin=65&extras=%5BGARAGE%5D&locations=%5Bdistricts_6-3319%2Cdistricts_6-38%2Cdistricts_6-12721%2Cdistricts_6-39%2Cdistricts_6-42%2Cdistricts_6-40%2Cdistricts_6-41%2Cdistricts_6-44%2Cdistricts_6-47%2Cdistricts_6-117%2Cdistricts_6-53%5D&viewType=listing'
    #URL = 'https://www.otodom.pl/pl/oferty/sprzedaz/mieszkanie/wiele-lokalizacji?distanceRadius=0&page=1&limit=1000&market=ALL&priceMax=950000&areaMin=50&extras=%5BGARAGE%5D&locations=%5Bdistricts_6-3319%2Cdistricts_6-38%2Cdistricts_6-12721%2Cdistricts_6-39%2Cdistricts_6-42%2Cdistricts_6-40%2Cdistricts_6-41%2Cdistricts_6-44%2Cdistricts_6-47%2Cdistricts_6-117%2Cdistricts_6-53%5D&roomsNumber=%5BTHREE%2CFOUR%2CFIVE%5D&viewType=listing'
    #URL = 'https://www.otodom.pl/pl/oferty/sprzedaz/mieszkanie/wiele-lokalizacji?distanceRadius=0&page=1&limit=1000&market=ALL&priceMax=750000&areaMin=50&extras=%5BGARAGE%5D&roomsNumber=%5BTHREE%2CFOUR%2CFIVE%5D&locations=%5Bdistricts_6-3319%2Cdistricts_6-38%2Cdistricts_6-12721%2Cdistricts_6-39%2Cdistricts_6-42%2Cdistricts_6-40%2Cdistricts_6-41%2Cdistricts_6-44%2Cdistricts_6-47%2Cdistricts_6-117%2Cdistricts_6-53%5D&buildYearMin=2000&viewType=listing'
    #URL = 'https://www.otodom.pl/pl/oferty/sprzedaz/mieszkanie/wiele-lokalizacji?distanceRadius=0&page=1&limit=1000&market=SECONDARY&priceMax=1000000&areaMin=60&extras=%5BGARAGE%5D&roomsNumber=%5BTHREE%2CFOUR%2CFIVE%5D&buildYearMin=2000&ownerTypeSingleSelect=ALL&locations=%5Bdistricts_6-3319%2Cdistricts_6-39%2Cdistricts_6-42%2Cdistricts_6-41%2Cdistricts_6-44%2Cdistricts_6-117%2Cdistricts_6-53%5D&by=DEFAULT&direction=DESC&viewType=listing'
    #URL = 'https://www.otodom.pl/pl/oferty/sprzedaz/mieszkania/wiele-lokalizacji?distanceRadius=0&page=1&limit=1000&market=SECONDARY&priceMax=1000000&areaMin=60&extras=%5BGARAGE%5D&roomsNumber=%5BTHREE%2CFOUR%2CFIVE%5D&buildYearMin=2000&ownerTypeSingleSelect=ALL&locations=%5Bdistricts_6-40%2Cdistricts_6-42%2Cdistricts_6-41%2Cdistricts_6-44%2Cdistricts_6-117%2Cdistricts_6-53%5D&by=DEFAULT&direction=DESC&viewType=listing'
    URL = 'https://www.otodom.pl/pl/oferty/sprzedaz/mieszkanie/wiele-lokalizacji?distanceRadius=0&page=1&limit=1000&market=SECONDARY&priceMax=1000000&areaMin=60&ownerTypeSingleSelect=ALL&buildYearMin=1990&roomsNumber=%5BTHREE%2CFOUR%2CFIVE%5D&extras=%5BGARAGE%5D&locations=%5Bdistricts_6-40%2Cdistricts_6-42%2Cdistricts_6-41%2Cdistricts_6-44%2Cdistricts_6-117%2Cdistricts_6-53%5D&by=DEFAULT&direction=DESC&viewType=listing'
    seen = open('seen').read().split('\n')

    t = requests.get(URL).text
    flats_page = t
    json_start = t.find('{"props"')
    json_end = t.find('</script', json_start)
    j = t[json_start:json_end]
    links = [x['slug'] for x in json.loads(j)['props']['pageProps']['data']['searchAds']['items']]

    logs = []

    for link in links:
        full_link = 'https://otodom.pl/pl/oferta/'+link
        if full_link not in seen:
            logs.append(full_link)


    if len(logs) > 0:
        date = datetime.datetime.now().strftime("%Y-%m-%d.%H-%M-%S")
        print(f'\n\n\n===={date}====')
        with open('seen','a') as f_seen:
            with open(f'logs/{date}','w') as f_logs:
                for link in logs:
                    print(link)
                    f_seen.write(link+'\n')
                    f_logs.write(link+'\n')
    time.sleep(900)

