1) Ogólne informacje
Nazwa projektu: Bot monitorujący ogłoszenia według określonych parametrów + wykluczenie sprzedawców (“minus-sprzedawcy”)
Cel: Automatycznie znajdować nowe ogłoszenia na portalach nieruchomości/ogłoszeń według określonych filtrów i wysyłać raz dziennie zestaw linków na Telegram (obowiązkowo) oraz opcjonalnie na WhatsApp / Email.
Źródła (minimum):
Wallapop (es.wallapop.com)
Idealista (idealista.com)
Milanuncios (milanuncios.com)
Preferowany stos technologiczny: Python, zarządzanie przez bota Telegram, hosting na serwerze (VPS).
2) Role użytkowników i uprawnienia
2.1 Role
Administrator: pełne uprawnienia (tworzenie/edycja filtrów, zarządzanie sprzedawcami, zarządzanie źródłami, odbiorcami, harmonogramem, przeglądanie logów/stanu).
Operator (opcjonalnie): może zarządzać filtrami i sprzedawcami, ale bez dostępu do ustawień systemowych.
Odbiorca: otrzymuje raporty, nie zarządza ustawieniami.
2.2 Autoryzacja
3) Wymagania funkcjonalne
3.1 Monitorowanie ogłoszeń
System powinien:
Okresowo (zgodnie z harmonogramem) sprawdzać nowe ogłoszenia według określonych filtrów.
Identyfikować i zapisywać unikalne ogłoszenia, aby nie wysyłać ich ponownie.
Mieć możliwość wykluczania ogłoszeń według “minus-sprzedawców” (blacklist sellers) i/lub według kluczowych cech (telefon, id sprzedawcy, imię/nick, link do profilu — w zależności od strony).
Tworzyć codzienny przegląd (raz dziennie) z listą nowych ogłoszeń za dany okres.
3.2 Filtry (ustawienia “sekcji”)
W interfejsie Telegram powinna być możliwość:
3.3 Parametry wyszukiwania (minimalny zestaw)
Dla każdego źródła powinny być wspierane parametry (w miarę możliwości zasobu):
Lokalizacja (miasto/region/prowincja, promień jeśli możliwe)
Typ obiektu (mieszkanie/dom/pokój itp. — jeśli dotyczy)
Cena: min/max
Powierzchnia: min/max (jeśli dostępne)
Liczba pokoi: min/max (jeśli dostępne)
Słowa kluczowe do uwzględnienia/wykluczenia (include/exclude)
Dodatkowe parametry: piętro, winda, nowa budowa/rynek wtórny, stan itp. (opcjonalnie)
Sortowanie (według daty publikacji, najnowsze najpierw — priorytet)
Ważne: jeśli zasób nie pozwala na część parametrów przez URL/wyszukiwanie, bot powinien przeprowadzać postfiltrację według pól karty (jeśli te pola można stabilnie wydobywać).
3.4 “Minus-sprzedawcy” (blacklist)
Powinno być możliwe:
Dodanie sprzedawcy do blacklist:
przez link do profilu sprzedawcy (jeśli jest)
przez seller_id (jeśli dostępne)
przez imię/nick (jako opcja zapasowa)
przez telefon/kontakt (jeśli publikowane)
Usunięcie sprzedawcy z blacklist
Przeglądanie listy blacklist
Możliwość powiązania blacklist:
3.5 Dedupikacja (nie wysyłać tego samego)
Dla każdego ogłoszenia przechowywać:
unikalny identyfikator (jeśli jest na stronie) lub znormalizowany URL
data pierwszego wykrycia
źródło
powiązany filtr(y)
status “wysłane / niewysłane”
(opcjonalnie) hash kluczowych pól
Ponowna wysyłka możliwa tylko jeśli administrator wyraźnie wybierze “prześlij ponownie”.
3.6 Raporty i powiadomienia
Codzienny raport (dla każdego filtra lub ogólny):
Tytuł: nazwa filtra, okres, liczba nowych ogłoszeń
Lista ogłoszeń:
link
cena (jeśli udało się wydobyć)
lokalizacja (jeśli udało się)
krótkie opis/tytuł (jeśli udało się)
data publikacji (jeśli dostępna)
Format dla Telegram: wiadomości + możliwe grupowanie (np. po 10-20 linków na wiadomość)
Opcjonalnie:
3.7 Zarządzanie przez Telegram (obowiązkowo)
Polecenia/menu (przykładowa struktura):
UI preferowane przez przyciski inline i krokowe dialogi.
4) Wymagania techniczne
4.1 Architektura
4.2 Magazyn
Odpowiednie:
4.3 Planista