Bot SereneReader

Co robi nasz program pobierający kanały, jak się identyfikuje i jak go zatrzymać.

Czym jest SereneReader

SereneReader to czytnik kanałów. Gdy ktoś zasubskrybuje Twój kanał RSS lub Atom, nasze serwery pobierają go w jego imieniu i wyświetlają nowe artykuły.

Aby pokazać obraz podglądu, pobieramy też każdą stronę artykułu jednorazowo, aby odczytać jej tag og:image, a także pobieramy favicon Twojej witryny do paska bocznego.

User-Agent

Każde żądanie z naszych serwerów identyfikuje się za pomocą tego ciągu:

SereneReader/1.0 (+https://serenereader.com/bot)

Co pobieramy

  • Adresy URL kanałów, które ktoś zasubskrybował.
  • Każdą stronę artykułu jednorazowo — odczytujemy co najwyżej 1 MB HTML, by znaleźć tag og:image.
  • Favicon Twojej witryny.

Nigdy nie przeszukujemy witryny, nie podążamy za linkami ze stron artykułów i nie pobieramy niczego, czego nikt nie zasubskrybował.

Jak często

Kanały są odświeżane zgodnie z harmonogramem. Gdy serwer zwraca nagłówek ETag lub Last-Modified, kolejne żądanie zawiera If-None-Match lub If-Modified-Since — niezmieniony kanał kosztuje wtedy jedynie odpowiedź 304 bez treści.

Strona każdego artykułu jest pobierana jednorazowo w celu uzyskania obrazu podglądu. Jeśli pobranie się nie powiedzie, zatrzymujemy próby: trwały błąd (np. 404) jest zapamiętywany na 30 dni, a tymczasowy (np. przekroczenie czasu lub błąd serwera) jest ponawiany maksymalnie trzy razy z opóźnieniem, po czym odczekujemy co najmniej godzinę.

Odpowiedź 429 lub 503 sygnalizuje nam, żeby zwolnić. W przypadku kanałów odkładamy kolejne odświeżenie o coraz dłuższy czas, a przy odpowiedzi 429 — o co najmniej wartość nagłówka Retry-After. W przypadku stron artykułów możemy podjąć do trzech prób w ciągu około dziesięciu minut, a następnie czekamy co najmniej godzinę lub tak długo, jak wskazuje Retry-After — maksymalnie siedem dni.

robots.txt

Przed pobraniem strony artykułu lub favikony odczytujemy plik robots.txt i respektujemy reguły Disallow oraz crawl-delay dla grupy User-agent: SereneReader, a jeśli jej nie ma — grupy *.

Adresy URL kanałów są inne. Kanał jest pobierany w imieniu czytelnika, który go subskrybuje, dlatego traktujemy go tak samo jak Google Feedfetcher: reguły Disallow grupy * nie mają do niego zastosowania. Grupa User-agent: SereneReader blokująca ścieżkę kanału jest nadal respektowana, a crawl-delay obowiązuje kanały tak samo jak wszystkie pozostałe zasoby.

Jeśli plik robots.txt jest niedostępny z powodu błędu serwera, traktujemy to jako zgodę na pobranie. Subskrypcja to wyraźna zgoda czytelnika — niestabilny plik robots nie powinien blokować jego kanału.

Jak nas zablokować

Zablokuj lub ogranicz ruch dla powyższego User-Agenta na serwerze lub zaporze sieciowej, albo odrzuć nas w pliku robots.txt, tworząc grupę z naszą nazwą. Ogólna reguła dla wszystkich botów nie blokuje pobierania kanałów — ta tak:

User-agent: SereneReader
Disallow: /

Zablokowanie adresu URL kanału wstrzyma odświeżanie dla wszystkich subskrybentów, nie tylko jednego czytelnika.

Podpisy żądań

Żądania są podpisywane za pomocą Web Bot Auth (sygnatury wiadomości HTTP, RFC 9421), dzięki czemu możesz zweryfikować, że faktycznie pochodzą od nas. Nasze klucze publiczne są dostępne pod adresem:

https://serenereader.com/.well-known/http-message-signatures-directory

Wychodzące adresy IP

Zaplanowane odświeżanie kanałów i pobieranie podglądów obrazów odbywa się z tych stałych adresów. Jednorazowe pobranie wykonywane przy pierwszym dodaniu kanału pochodzi z naszych serwerów WWW i nie znajduje się na tej liście — lista dozwolonych adresów IP sama w sobie je odrzuci.

162.220.234.241
152.55.180.242
152.55.180.243

Lista w formacie maszynowym/bot/ips.json

Kontakt

Masz pytania dotyczące naszego ruchu lub chcesz zgłosić coś do poprawki? Napisz do nas.