W każdym
razie, gdyby ktoś pisał bota, to poniżej są moje rady:
* Bot po prostu symuluje użytkownika łączącego się przez HTTP (metody
GET i POST) z wikipedią. Nie ma żadnego specjalnego API.
Ok, wszystko jasne. Tak sie zastanawiam, czy nie byloby lepiej
wstepnie typowac potrzebne zmiany na podstawie najswiezszych dumpow baz
danych odtorzonych lokalnie? SQL bedzie sto razy szybszy niz przegladanie
stron na wiki... A moze tak wlasnie robiles?
Tak, to dobry pomysł. Ja korzystałem z zapytań SQL niegdyś dostępnych na
wiki dla sysopów.
Teraz jak widzę nawet takiej opcji w specjalnych nie ma.
Wtedy zresztą też nie mogli się zdecydować i raz włączali tę opcję, raz
wyłączali, aż w końcu tak się pogubili, że udostępnili także kwerendy
zmieniające bazę danych, dzięki czemu jednego nowego admina sam nielegalnie
mianowałem, nie mogąc się interwencji Tawa doczekać ;-)
Ale wracając do kwerend - możesz wstępnie tak wybrać artykuły, ale w żadnym
wypadku nie przetwarzaj w ten sposób ich treści, bo mogła się w międzyczasie
zmienić. Bot musi na bieżąco pobierać treść przez sieć.
Taw:
* Nie powinien
zbyt często wywoływać wikipedii, bo zapcha serwer. Jak
się zapytałem, co to znaczy "zbyt często" na liście, to usłyszałem, że
raz na minutę. Przy tej prędkości boty nie mają sensu (szybciej
wprowadzam zmiany osobiście), więc starałem się nie przekraczać 5 razy
na minutę i nikt nie protestował.
"Raz na minutę" to oczywiście absurd.
Ja swojego w ogóle nie limituje. Po SDI nie jest w stanie nic zepsuć.
Zepsuć nie, ale jak za często się bot łączy, to trudno ludziom pracować na
wiki.
Jakieś ograniczenie jest moim zdaniem potrzebne, inaczej to przypomina atak
Denial of Service.
No chyba, że puszczasz bota na jakimś małym zbiorze stron, to ok.
Ja czasem parę tysięcy artykułów hurtem przerabiałem (np. całe kalendarium).
Lzur kiedyś zrobił taki numer z nielimitowanym botem i go wyklęli na en-wiki
a i u nas
była gorąca dyskusja typu "precz z botami".
Ale może teraz już jest lepiej, nie wiem, dawno tu nie zaglądałem.
* Bot, kiedy się go już przetestuje, powinien
mieć przez Biurokratę
ustawioną flagę "bot", żeby go w ostatnich zmianach widać nie było.
Gorzej, biurokraci nie mają takie opcji, trzeba na meta go zgłosić :-)
Ech, a kiedyś to było takie proste.
Zaraz, a Ty, Taw, jako supersupernadzorca już nie masz uprawnień do
grzebania w bazie ?
* Musi być jakiś mechanizm awaryjnego
zatrzymywania bota przez każdego.
Ja po prostu jak uruchamiam bota zawsze mam
ostatnie zmiany na
autorefreshu
i jakby coś się działo killuję jeden przycisk i bota się wyłącza.
No tak, ja czasem zapuszczałem bota na dwie doby, więc wolałem żeby taki
mechanizm był.
Co prawda był potrzebny tylko raz i akurat wtedy nie zadziałał z powodu
automatycznego wylogowania :-(
* Bot powinien
sprawdzać, czy wciąż jest zalogowany. Wikipedia
potrafiła czasem wylogować bota po paru godzinach pracy i potem wszyscy
jęczeli, że im ostatnie zmiany zawalam, bo bot nagle stawał się
widoczny.
Mój bot żadnej magii tego typu nie robi - po prostu jak go puszczam
to siedzę zwykle obok. Nigdy mi się też nie wylogował podczas pracy,
więc nie sprawdzam tego.
To pewnie znowu kwestia czasu pracy na jednym ciasteczku albo wersji
oprogramowania wikipedii.
Olaf