Ponieważ już dwie osoby prosiły mnie o informacje na temat bota, bo chcą napisać własne, więc odpiszę na listę.
Jeśli chodzi o mojego bota - stara wersja programu (a raczej kilku różnych programów) jest - żródła można znaleźć pod linkami ze strony http://pl.wikipedia.org/wiki/Wikipedysta:Olafbot : http://pl.wikipedia.org/wiki/Wikipedysta:Olafbot/OlafbotCalendar.java http://pl.wikipedia.org/wiki/Wikipedysta:Olafbot/OlafbotDaysOfYear.java
Niestety później zmienił się na wikipedii system logowania, przez co te wersje chyba nie potrafią się logować (o ile w ogóle działają poprawnie).
Poza tym ja używałem javy, która może nie jest najlepsza, gdyż... nie zaimplementowano w niej funkcji setCookie (jest, ale ma pustą treść...) przez co musiałem to robić niskopoziomowo socketami.
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. * Zwróćcie uwagę, czy nie psuje japońskich liter - mój kiedyś psuł * 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ł. * Bot, kiedy się go już przetestuje, powinien mieć przez Biurokratę ustawioną flagę "bot", żeby go w ostatnich zmianach widać nie było. * Musi być jakiś mechanizm awaryjnego zatrzymywania bota przez każdego. Ja zrobiłem tak, że bot reaguje na wpisanie czegokolwiek na stronie jego dyskusji - wtedy pokazuje mu się w odpowiedzi od wiki informacja, że ma nową wiadomość. * 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. W dodatku niezalogowany bot nie wie, że przyszła do niego wiadomość, więc moją metodą nie dało się go zatrzymać. Szczęśliwie da się wtedy zablokować jego IP. * Oficjalnie bot "powinien się zatrzymać, gdy stanie się cokolwiek nieprzewidzianego" (np. zła odpowiedź od serwera). To też jest nierealne - takie boty ciągle się wysypują, bo wikipedia bardzo często jest zapchana i nie odpowiada. Lepiej po prostu w przypadku błędu serwera odczekać powiedzmy 5 minut i spróbować jeszcze raz. * Zanim nie zdobędziecie doświadczenia, lepiej uzgadniajcie na liście dyskusyjnej każdą akcję - łatwo botem coś zepsuć, trudniej naprawić. Kiedy już zdobędziecie doświadczenie, lepiej się nie pytajcie, bo zawsze się znajdzie jakiś konserwatysta, który utrąci każdy sensowny projekt. ;-)
Powodzenia,
Olaf
CzeĹÄ!
Z listy dyskusyjnej dowiedziaĹem siÄ, iĹź napisaĹeĹ kiedyĹ bota.
Jestem z wyksztaĹcenia i zawodu programistÄ , z zamiĹowaĹ wikipedystÄ :) NabraĹem chÄci, aby napisaÄ wĹasnego bota, ktĂłry pomĂłgĹby mi rozwiÄ zac kilka spraw. PrzeczytaĹem w nagĹĂłwku, Ĺźe TwĂłj bot zginÄ Ĺ wraz z komputerem. Ale pewnie piszÄ c go korzystaĹeĹ z jakichĹ materiaĹĂłw, opisĂłw, dokumentacji. MĂłgĹbyĹ mi daÄ namiar na coĹ takiego? Ewentualnie moĹźe masz gdzieĹ zrÄby swojego bota, co uĹatwiĹoby mi start?
Pozdrawiam
Piotr KuczyĹski
PS: GratulujÄ przeprowadzki :) PS2: JesteĹ zenistÄ ? Ja siÄdze po uszy w kaguy (buddyzm
tybetaĹski) :)