/OlxSniper

Bot do Telegrama. Natychmiastowe powiadomienia o nowych ofertach wynajmu mieszkań na OLX.

Primary LanguageJava

OlxSniperBot

Disclaimer: This bot works exclusively with the polish website olx.pl and therefore the description is in polish. OlxSniperBot on Telegram mobile app

O bocie

OlxSniper jest botem do Telegrama napisanym w Javie w oparciu o oficjalne API TelegramBots oraz bibliotekę HtmlUnit. Używając techniki tzw. web scrappingu bot parsuje na bieżąco pojawiające się oferty wynajmu mieszkań ze strony olx i wysyła natychmiastowe powiadomienia z podsumowaniem każdej nowo wystawionej oferty.

Przypadek użycia

Rosnący popyt na wynajem mieszkania sprawił, że znalezienie sobie lokum w większych miastach bywa czasami bardzo trudne. W okresie wakacyjnym oferty już paręnaście sekund po ich wystawieniu są "nieaktualne" czy też "zarezerwowane". Jeżeli więc odpada wynajęcie mieszkania po znajomości to zostaje nam siedzieć na stronie z ofertami wynajmu i odświeżać ją co 10 sekund - stąd pomysł na bota z altertami.

Dlaczego bot pobiera oferty akurat z OLX?

OLX jest największą bazą ofert wynajmu mieszkań. Nowe ogłoszenie pojawia się tam co ok. kilka minut (w większych miastach).

Przykładowe grupy z ogłoszeniami 24/7

Te grupy wysyłają powiadomienia o nowych ofertach mieszkań:

Aby dostawać alerty na telefon najlepiej jest pobrać aplikację mobilną Telegram [Android / IOS] a następnie dołączyć do grupy.

Ustawianie własnego bota

Zalety

  • Możliwość ustawienia dowolnego miasta wspieranego przez OLX
  • Możliwość ustawienia filtrów cenowych
  • Dostososowanie bota do własnych potrzeb poprzez zmianę kodu

Wady

  • Bot działa tylko do póki odpalony jest proces na komputerze (przydałby się zewnętrzny VPS)
  • Wymogiem jest pewne pojęcie o programowaniu w Javie

Wymagania wstępne

  • Konto Telegram + aplikacja Telegram (może być web app, mobile app lub desktop app)
  • Środowisko Java IDE do modyfikacji i kompilacji kodu
  • Maven do pobrania dependencies

Tworzenie własnego bota

  1. Inicjalizacja bota po stronie Telegram Bot API
    1. Otwórz czat z @BotFather'em na Telegramie - jest do bot, który służy do inicjowania nowych botów.
    2. Użyj komendy /newbot, @BotFather zapyta wtedy o nick oraz unikalną nazwę użytkownika dla nowego bota.
    3. Po udanym dostarczeniu nicku oraz nazwy użytkownika otrzymasz komunikat zwrotny z unikalnym kluczem API.
  2. Stworzenie grupy Telegramowej, w której będzie operować bot
    1. Utwórz nową grupę na Telegramie.
    2. Dodaj do niej stworzonego przez siebie bota.
    3. Nadaj botowi prawa administratora grupy (aby mógł wysyłać oraz usuwać wiadomości).
  3. Kompilacja własnego OlxSnipera
    1. Pobierz repozytorium z githuba.

    2. Pobierz wszystkie dependencies przy pomocy Mavena.

    3. Uzupełnij stałe w klasie Main o swój klucz API oraz unikalny username bota.

      private final static String BOT_TOKEN_SECRET = "api_secret";
      private final static String BOT_USERNAME = "bot_username";
    4. Skompiluj i uruchom.

    5. Ustaw bota i aktywuj skanowanie przy pomocy komend.

Komendy

Na dzień dzisiejszy bot wspiera następujące komendy.

Komenda Opis Przykład
/start Uruchom skanowanie w poszukiwaniu nowych ofert -
/stop Zatrzymaj skanowanie -
/setup city [city*] Ustaw miasto docelowe /setup city warszawa
/setup priceFrom [minimalPrice] Ustaw dolny filtr cenowy /setup priceFrom 850
/setup priceTo [maximalPrice] Ustaw górny filtr cenowy /setup priceTo 2200
/help Uzyskaj listę dostępnych komend -
/say [text] Komenda pomocnicza. Powiedz coś jako bot /say Hej to ja bot!

* - argument podawany w języku polskim