Informacja o botach

Te boty są częścią aplikacji jaksytuacja, która monitoruje utrudnienia w komunikacji miejskiej i wysyła użytkownikom powiadomienia push. Działamy z poszanowaniem zasad odwiedzanych serwisów i staramy się minimalizować obciążenie serwerów.

O naszych botach

> Czytnik RSS

Czyta publiczne kanały RSS i strony z komunikatami przewoźników, żeby wykrywać utrudnienia w kursowaniu. Obecnie odczytywane źródła: kanał RSS Warszawskiego Transportu Publicznego (wtp.waw.pl) oraz strona „Zakłócenia w ruchu" Kolei Mazowieckich (mazowieckie.com.pl).

> Kolektor GTFS

Pobiera publicznie udostępniane otwarte dane transportowe w formacie GTFS i GTFS-Realtime (pozycje pojazdów, aktualizacje kursów, komunikaty o utrudnieniach), żeby mierzyć faktyczny ruch pojazdów.

Identyfikacja botów

Boty identyfikują się jednoznacznymi nagłówkami User-Agent, zawierają numer wersji oraz przyrostki oznaczające środowisko. Obecnie w użyciu:

Czytnik RSS

jaksytuacja/0.2-prod (+https://www.jaksytuacja.app/info)
jaksytuacja/0.3-nonprod (+https://www.jaksytuacja.app/info)
jaksytuacja/0.2-dev (+https://www.jaksytuacja.app/info)

Kolektor GTFS

jaksytuacja-gtfs/0.1-prod (+https://www.jaksytuacja.app/info)
jaksytuacja-gtfs/0.1-dev (+https://www.jaksytuacja.app/info)

Jak działamy

Źródła danych

Zbieramy dane z publicznie dostępnych stron internetowych, kanałów RSS oraz portali otwartych danych publikujących kanały GTFS / GTFS-Realtime.

Częstotliwość żądań - czytnik RSS

Kanały RSS: nie częściej niż raz na minutę. Pojedyncze strony: odwiedzane tylko wtedy, gdy w kanale pojawi się nowy wpis.

Strony bez kanału RSS: raz na minutę wysyłamy żądanie HEAD i porównujemy nagłówek Last-Modified z ostatnio widzianą wartością. Pełne pobranie listy wykonujemy wyłącznie po wykryciu zmian (oraz kontrolnie nie częściej niż raz na kwadrans). Minimalizujemy ruch poprzez odwiedzanie wyłącznie stron aktualnie aktywnych wpisów. Wszystkie żądania wykonywane są sekwencyjnie.

Częstotliwość żądań - kolektor GTFS

Kanały GTFS-Realtime odpytujemy zwykle co 10-30 sekund, w zależności od częstotliwości odświeżania danych. Staramy się nie odpytywać kanału częściej, niż odświeża się jego źródło - interwał ustawiamy osobno dla każdego kanału po zmierzeniu rzeczywistego tempa publikacji. Statyczne archiwa rozkładów GTFS pobieramy najwyżej raz dziennie.

Minimalizacja obciążenia

Żądania wysyłają nagłówki warunkowe (If-None-Match, If-Modified-Since) i respektują odpowiedź 304 Not Modified; tam, gdzie serwer ich nie honoruje, zmianę wykrywamy tanim żądaniem HEAD. Odpowiedzi identyczne z poprzednią są odrzucane, a nie pobierane ponownie w inny sposób. Treści pobieramy skompresowane (gzip). Przy błędach nie zalewamy serwera ponowieniami: kolektor GTFS stosuje wykładniczy backoff do 5 minut, czytnik RSS wykonuje najwyżej kilka prób i czeka do kolejnego cyklu. Działamy zgodnie z robots.txt odwiedzanych serwisów.

Wskazanie źródła

Każdy komunikat w aplikacji jest oznaczony nazwą przewoźnika, od którego pochodzi, i ma odnośnik do oryginalnego wpisu na stronie źródła. Treści komunikatów nie zmieniamy ani nie parafrazujemy - poza usunięciem elementów technicznych (np. powtarzalnych stopek).

Wykorzystanie danych

Zebrane dane służą wyłącznie do działania aplikacji. Nie zbieramy ani nie przechowujemy danych osobowych. Informacje o źródle i warunkach licencyjnych zapisujemy osobno dla każdego kanału i respektujemy wszędzie tam, gdzie dane są używane.

Kontakt

Masz pytania lub wątpliwości? Napisz do nas:
Zwykle odpowiadamy w ciągu 24-48 godzin.