Antyspam dla JoggerPL, wersja 3.1 Turbo

Ostatnią oficjalną wersję antyspamu dla Joggera opublikowałem jeszcze w poprzednim roku. To wcale nie znaczy, że zaprzestałem rozwijać mój ulubiony skrypt; przeciwnie – wziąłem się za porządną reorganizację kodu. Skończyło się na przepisaniu antyspamu zupełnie od nowa, i to bez biblioteki jQuery.

Największą bolączką pisania w „czystym” JavaScript jest odnajdywanie elementów. Skusiło mnie Selectors API dostępne już w pierwszych publicznych buildach Opery 10 (czyli jakieś pół roku temu). Wówczas Opery 10 (wtedy jeszcze w wersji alfa) używało bardzo mało osób, dlatego zdecydowałem się odłożyć publikację skryptu na później – tym bardziej, że Selectors API miało również nadejść wraz z Firefoksem 3.5 (wtedy 3.1 ;>).

Całkowite przepisanie kodu od nowa, bez jQuery, spowodowało, że skrypt działa teraz o około 90% szybciej niż jego wcześniejsze wersje. Co ciekawe, nawet poprzednia, druga wersja mojego antyspamu była szybsza od Blacklisty Riddle'a (która jest bardzo nieoptymalna, korzysta z jQuery i w dodatku ma znacznie mniejszą funkcjonalność, ale w zamian za to konfiguracja skryptu odbywa się za pośrednictwem GUI, co w zasadzie dyskwalifikuje Operę – ze względu na kompatibilność).

Mój skrypt natomiast, z uwagi na to relatywnie duże przyspieszenie (u mnie, z rozbudowaną listą reguł, czas wykonania zmniejszył się z ~250 milisekund do niecałych 20). Różnicę można zauważyć gołym okiem, dlatego od teraz antyspam będzie nosił przydomek Turbo.

Bez sensu byłoby jednak wspierać wyłącznie Operę 10, dlatego wziąłem się w garść, zmieniłem Selectors API na XPath (które i tak jest niewygodne w Firefoksie) i zaimplementowałem wsparcie także dla Opery 9 (dla dziesiątki oczywiście też) oraz Firefoksa od wersji 3.0 wzwyż (włączając w to niedawno opublikowaną wersję 3.5). Skrypt dostał numerek 3.1. Niestety, XPath oraz różnego rodzaju workaroundy dla Greasemonkey spowolniły jego działanie o jakieś 5 milisekund. Gdy już wydana zostanie finalna wersja Opery 10, Selectors API powróci, więc antyspam znów przyspieszy ;-) Jeśli jednak potrzebujesz naprawdę odchudzonego skryptu, wypróbuj wersję Lite.

Muszę jeszcze wspomnieć o kilku mniej znaczących nowościach, czyli przede wszystkim: możliwości filtrowania wpisów, które nie posiadają tytułu oraz oddzielnych regułach filtrowania dla tytułów i treści wpisów. Jest też kilka poprawek dotyczących kodu – bardziej szczegółowe informacje znajdują się w źródle skryptu.

Sposób konfiguracji zbytnio się nie zmienił, chociaż teraz opcje są nieco inaczej zorganizowane. Nie powinno to jednak sprawiać problemu – konfiguracja poszczególnych, nazwijmy to, modułów, nie zmieniła się od poprzedniej wersji. Wszystkie opcje są szczegółowo opisane wewnątrz skryptu.

W przypadku Greasemonkey należy zapisać plik na dysku, zmienić mu rozszerzenie na .user.js i przeciągnąć myszą na okno przeglądarki. W razie jakichkolwiek problemów, możecie dać znać w komentarzach. Wasze opinie o nowej wersji też są mile widziane ;-)

Nawiązali do wpisu

  1. Wasacz, blog – 07 sierpnia 2009 o 18:02:12

    Antyspam generuje ładną statystykę

    Nie mam już pomysłu na wpisy tego typu ;-)

    Nowy antyspam z serii Turbo. Zmiany:


    Nowy system generowania statystyk (wykorzystujący Google Chart API; danych nigdzie nie przechowuję – wyjątkiem są oczywiście zwyczajne logi serwera). P[...]

  2. Jogger Minia – 24 stycznia 2010 o 15:26:33

    O Joggerze

    Ponad miesiąc temu, niedługo przed świętami Bożego Narodzenia, po Joggerze przetoczyła się burza z trollami w tle. Ktoś postanowił zabawić się w dość prymitywny sposób, ktoś poczuł się urażony, ktoś zamknął i&nbsp[...]

Komentarze

  1. Branch Predictor pisze:

    Dzięki, przyda się :)

  2. Dodek pisze:

    Ło wat, jak działa to "przeglądający" z prawej?

  3. Arek F. pisze:

    Dodek: z tego co mi wiadomo, JS przekazuje Twój nick i adres bloga do skryptu na zewnętrznym serwerze, gdzie jest zapisywany do bazy danych, potem przez podajże 15 minut jesteś wyświetlany, potem, jeśli nie odświeżyłeś strony, rekord jest usuwany i znikasz na liście przeglądających.

    Magic ;>

  4. Wasacz pisze:

    Dodek: jest dokładnie tak jak Arek napisałe ;-) Pomysłodawcą jest dos, kod mój.

  5. Dodek pisze:

    Szczerze? Fajny hack ;)

  6. jrk pisze:

    Nazwa „antyspam” wprowadza trochę w błąd. Gdy czytałem wpis, myślałem, że chodzi o zabezpieczenie przed spamem w komentarzach dla niezalogowanych (CAPTCHA). Dopiero, gdy przeczytałem „druga wersja mojego antyspamu była szybsza od Blacklisty Riddle'a”, zorientowałem się, o co chodzi. Wpisy nielubianych osób na stronie głównej Joggera to raczej nie jest spam.

    A może po prostu mało domyślny jestem?

  7. Wasacz pisze:

    jrk: zgadzam się, chciałem nawet nazwać jakoś w stylu „JoggerPL Filter” czy coś, ale nie wiem, czy to nie wprowadzi kolejnego zamieszania.

  8. Grzegorz pisze:

    Przydałaby się jeszcze jakaś gotowa lista z wykazem słów do blokowania. Takie subskrypcje jak dla Adblock Plusa ;)

  9. adam pisze:

    Super , przydało się , dzięki.

Dodaj komentarz

Proszę, formatuj komentarz za pomocą Markdown.

Wymagane pola zaznaczone są znakiem gwiazdki – „*


Obrazek z kodem

*