Wikipédia:Pywikipedia
| Ezen az oldalon egy technikai leírást olvashatsz a Wikipédia szerkesztéséről. Tartsd szem előtt, hogy nem minden ajánlott, ami technikailag megvalósítható! |
| Ha segítségre van szükséged a pywikipediás botod beállításával kapcsolatban, segítséget kaphatsz angolul a #pywikipediabot IRC-csatornán vagy a levelezőlistán. • Egyszerűbb esetben magyarul is tudunk segíteni a botgazdák vitalapján. |
A Python Wikipedia Robot Framework (röviden pywikipediabot vagy pywikipedia) olyan botszkriptek gyűjteménye, amelyekkel különböző feladatokat lehet elvégezni a Wikipédián, és más MediaWiki-alapú wikiken. A Pywikipediát Python nyelven írták, számos személy közreműködésével. Ezen a lapon a botot futtatni szándékozó szerkesztők találhatnak fontos információkat.
Tartalomjegyzék |
[szerkesztés] A bot beindítása
[szerkesztés] Letöltés
A bot használatához a bot szoftverére és a Python legalább 2.4-es (de inkább 2.5-ös vagy újabb) verziójára lesz szükséged. (A 3.x nem kompatibilis a 2.x-es verziókkal, és a Pywikipedia nem működik vele!)
A Python néhány Unix-disztribúción alapértelmezettként jelen van, ez esetben csak akkor kell frissítened, ha túl régi verzióval rendelkezel. Minden más esetben a http://www.python.org/download/ címről töltheted le. A Python minden ismertebb operációs rendszeren képes futni (pl. Unix, Linux, Mac, Windows).
A bot szoftverének legfrissebb változata SVN-en keresztül érhető el a http://svn.wikimedia.org/svnroot/pywikipedia/trunk/pywikipedia/ URL-ről. Unix-os operációs rendszerek alapból tartalmaznak SVN klienst, itt elég kiadnod az svn co http://svn.wikimedia.org/svnroot/pywikipedia/trunk/pywikipedia/ . parancsot abban a könyvtárban, ahová a szoftvert telepíteni szeretnéd, Windows alatt a TortoiseSVN telepítése után hívd elő a célkönyvtár kontextusfüggő menüjét (például a jobb egérgombbal vagy a jobboldali Ctrl billentyű melletti Windows-gombbal), válaszd ki az SVN Checkout... menüpontot, és az URL of repository mezőbe írd be fenti URL-t.
Célszerű ékezetmentes elérési útvonalat biztosítani a Pywikipedia könyvtárának. Linux alatt több esetben okozott problémát az ékezetes könyvtárnév.[1][2]
[szerkesztés] Beállítás
A bot csak a „Monobook” skint támogatja.
[szerkesztés] Beállítás a Wikipédiához
Nyiss meg egy UTF-8-kompatibilis szövegszerkesztő programot (pl. Notepad++), és írd be ezt a pár sort:
# -*- coding: utf-8 -*- use_api = True family = 'wikipedia' mylang = 'hu' usernames['wikipedia']['hu'] = u'Bot neve'
ahol Bot neve az a felhasználónév, ami alatt a bot szerkesztései megjelennek majd a Wikipédián (ne felejtsd le az első aposztróf elől az u betűt!). Ha több wikin is használni akarod a botot, az utolsó sorhoz hasonló alakban add meg az ottani felhasználóneveidet is, pl:
usernames['wikipedia']['hu'] = u'Botorkáló' usernames['wikipedia']['en'] = u'Botológus' usernames['wiktionary']['de'] = u'Botladozó'
Ilyenkor a 2. és 3. sor átírásával befolyásolhatod, hogy éppen melyik wikin fog futni a bot (vagy felülírhatod az itteni beállításokat parancssori paraméterekkel is).
Mentsd el a szövegfájlt user-config.py néven, ugyanabba a mappába, ahol a többi letöltött .py kiterjesztésű fájl található. Ügyelj rá, hogy UTF-8 módban mentsd el (Notepad++ esetén mentés előtt használd a menü Format/Convert to UTF-8 without BOM parancsát)! Ha nem tudsz vagy akarsz UTF-8-at használni, módosítsd az első sorban a kódolást megfelelően. (Magyar Windows alatt cp1250 a legesélyesebb.)
Ha a bot üzenetei nem jelennek meg rendesen a képernyőn, hanem az ékezetek helyén csak krikszkrakszokat látsz, írd az alábbi sort is a user-config.py-ba (ha így sem működik, próbálkozz cp1250 helyett mással, pl. utf8 vagy iso-8859-2):
console_encoding = 'cp1250'
Ha ez utóbbi be van kapcsolva, akkor viszont a bevitelnél sem lehet DOS-os ékezetes betűket használni, hanem pl. Ausztráliát ilyenformán viheted be: Ausztr%C3%A1lia (az ily módon kódolt szöveget az egyes lapok szerkesztés fülére kattintva elérhető címből lehet kimásolni). Ha a user-config.py hibaüzenetet ad parancssorból való futtatáskor (pl. nem fogadja el a usernames utasítást), érdemes parancssoron kívülről, egy windowsos fájlkezelőből futtatni.
Ha egy wikin adminisztrátor vagy, és szeretnéd, hogy a bot az adminjoggal bíró azonosítódat használja, amikor szüksége van rá (például egy védett lapot kell szerkesztenie), akkor add meg azt a felhasználónevedet is ilyenformán:
sysopnames['wikipedia']['hu'] = u'Admin neve'
(Ebben a példában BinBot a category.py használata közben Bináris nevében törölte a kiürített kategóriát. A szerkesztés tehát ilyenkor az adminisztrátor neve alatt jelenik meg.)
Tipp: A procedúrát egyszerűsítheted a generate_user_files.py futtatásával, amely létrehozza a user-config.py első változatát.
Ha saját scripteket is akarsz írni, és nem a bot főkönyvtárában tartanád őket, hozzá kell adnod a bot könyvtárát a Python-modulok betöltési útjához. Windows alatt ezt úgy érheted el, hogy a HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\<verziószám>\PythonPath registry kulcs alá létrehozol egy új kulcsot pywikipedia néven, és értékül a pywikipediabot könyvtárát adod neki. Linux alatt egyszerűen csak be kell állítani a PYTHONPATH környezeti változót (pl. az export PYTHONPATH=<pywikipedia elérési út> paranccsal).
[szerkesztés] Engedély kérése
A bot számára érdemes készíteni egy normál felhasználói nevet. Legjobb, ha olyat választasz, amely utal arra, hogy a felhasználó egy bot, és arra is, hogy te üzemelteted. Általában a saját felhasználói név és a 'Bot' szó összevonásából készítik, de ez nincs megkötve.
Ha gyakran futtatsz egy botot, érdemes botstátuszt kérni a Wikipédia:Botok/Jelentkezés oldalon (illetve más wiki esetén az illető wiki megfelelő oldalán) néhány próbaszerkesztés után. Ekkor egy bürokrata elbírálja a kérelmedet, és ha nincsenek a botnak hibás szerkesztései és jogosnak találja azt, beállítja a botstátuszt. Ez azért hasznos, mert ekkor a bot nem árasztja el a friss változtatásokat gyors egymás utáni szerkesztéseivel, és a szerkesztései automatikusan megtekintettek lesznek (mintha megerősített szerkesztő lenne), nem kell egy járőrnek minden változtatást ellenőrizni.
[szerkesztés] Használat
[szerkesztés] Botszkript kiválasztása és futtatása
Ha a fentiekkel megvagy, készen állsz a bot futtatására. Ehhez be kell hoznod az operációs rendszeredhez tartozó szöveges felületet (parancssort, terminált).
Windowson a Start menü → Futtatás (angolul Run) pontjával tehető meg. A bejövő ablakban be kell írnod a futtatandó program nevét, „cmd”-t írj be.
- Menj a C: meghajtóra a
cd C:\paranccsal - Ezután írd be a
cd \"a pywikipedia letöltésének helye"parancsot
Mac-en a Terminal.app-ra lesz szükséged a /Applications/Utilities-ből.
Linuxon vagy bármelyik Unix-alapú rendszeren egy terminálra lesz szükséged.
Először futtasd le a login.py szkriptet a „python login.py” beírásával. Kérni fogja a jelszót, add meg azt, amit a botnak beállítottál. Erre azért van szükség, mivel a bot nem dolgozik névtelenül. Ha nem változtatod meg a jelszavadat, erre egyetlenegyszer lesz szükséged, mert a bot általában nem jelentkezik ki.
Ezután már bármelyik bot futtatható a „python szkriptneve.py” parancs beírásával (Windowson a „python” elhagyható).
[szerkesztés] Szkriptek
| Elsődleges botszkriptek | További botszkriptek | Segédprogramok | ||||
|---|---|---|---|---|---|---|
|
|
|
|
||||
|
|
|
[szerkesztés] További szkriptek
A Magyar Wikipédia botgazdái által írt modulokat az Egyedi fejlesztésű Pywikipedia-kódok kategóriában találod meg, ahonnan az interwikik mentén más projektek scriptjei is elérhetőek. Ha saját készítésű szkripttel szeretnél dolgozni, te is ehhez hasonlóan teheted közzé.
Vedd figyelembe, hogy a régóta távollevő botgazdák programjai esetenként elavultak lehetnek, és nem biztos, hogy változtatás nélkül együttműködnek a Pywikipedia jelenlegi verziójával.
A botwikin is találhatsz továbbiakat: botwiki:Template:Script.
[szerkesztés] Parancssori argumentumok
Habár a botszkriptek rendelkeznek saját argumentumokkal, mindegyikkel használható a következő néhány:
- -help
- megjeleníti, hogy milyen paraméterekkel használható a bot.
- -lang:xx
- ezzel lehet beállítani, hogy melyik wikiben szeretnél dolgozni, ha nem a
user-config.py-ban beállítotton szeretnél. - -family:xyz
- ezzel állíthatod be, hogy mely wiki-típuson dolgozol, pl. wikipedia, wiktionary, wikitravel, ... (ez is felülírja a
user-config.py-ban megadottakat. - -log
- naplózás engedélyezése. A naplók a logs alkönyvtárban tárolódnak.
- -log:xyz
- naplózás az xyz helyén megadott nevű fájlba.
- -nolog
- naplózás kikapcsolása (alapértelmezésben be van kapcsolva).
- -putthrottle:nn
- azon minimális idő (másodpercekben), amennyit várakozzon a bot két lap elmentése között. Az alapértelmezett érték nulla.
Például a python szkriptneve.py -family:wiktionary a Wikiszótárban futtatja a botot, az alapértelmezett konfigurációt figyelmen kívül hagyva.
A különböző scriptek parancssori argumentumait megtalálod az egyes fájlokban, ha azokat jegyzettömbbel vagy más szövegszerkesztővel megnyitod, illetve a -help argumentummal indítva a szkripteket kiírják azokat a képernyőre.
[szerkesztés] Átállás a 2.0 változatra
| Ebben a szakaszban aktuális eseményről, jelenségről számolunk be. Az itt közöltek az idő múlásával jelentősen megváltozhatnak, pontosításra, helyreigazításra szorulhatnak. Legutóbbi módosítás: 2012. február 14. |
A pywikibot váltás előtt áll: a készülő második kiadás legfőbb jellemzője, hogy teljesen a MediaWiki API használatára épül, és szabványos Python-csomagként alakították ki. Bevezetésének időpontja nincs kijelölve.
A 2.0 változat évek óta készül, és már futtatható állapotban van. (Jelenleg tehát párhuzamosan működik a régi változattal.) Az elkészült részek a http://svn.wikimedia.org/viewvc/pywikipedia/branches/rewrite/ címen tekinthetők meg. Az új bot a Wikipédián és a WikiMédia többi wikijén működik, de a MediaWiki 1.14-es változatánál régebbi motort használó wikiken meg kell maradni az 1-es változatnál. A Pywikipedia 2 legalább 2.5-ös verziójú Pythont igényel. (Figyelem! A Python 3-as változataival továbbra sem fut! Jelenleg, 2010 szeptemberében a legfrissebb használható Python a 2.7.)
A Pywikipedia 2 az eddigi bemásolás helyett telepítést igényel, ezt azonban egy telepítőscript segíti.
Az átállással kapcsolatos útmutató a botwiki:Rewrite/Conversion HOWTO címen, néhány más ezzel kapcsolatos lap a botwiki:Special:Prefixindex/rewrite keresésnél olvasható. (A fenti SVN-linken a README-conversion.txt elavult, a botwikis lap frissebb.) A rewrite az SVN-tárban és a fejlesztői zsargonban a készülő változatot jelenti. A bot működőképességével és telepítésével kapcsolatos aktualitások a 2010. szeptember 2-i állapot szerint ebben az e-mailben találhatóak.
Ha csak a pywikibot kész moduljait futtatod, jelenleg nincs tennivalód az átállással. Akár az 1-es, akár a 2-es változatot használhatod, a fenti e-mailben leírtak figyelembe vételével.
Ha saját scripteket is használsz, tanulmányozd a Botwiki útmutatóját. A legfontosabb előkészület, amit az 1-es változat további használata mellett megtehetsz, hogy az import wikipedia sor helyett mindenhol import wikipedia as pywikibot-ot írsz. Ezzel együtt a wikipedia.output-ból pywikibot.output lesz, és így tovább. Ez az átállás a régi bot moduljaiban is megtörténik. Így a Pywikipedia 2 bevezetésekor csak az import sorokat kell majd módosítanod a saját scriptjeidben, hogy kompatibilisek maradjanak az új verzióval. Ugyancsak érdemes a Page.aslink() helyett már most a Page.title(asLink=True) formulát használni.
[szerkesztés] Levelezőlisták
A bot használatával kapcsolatban jelenleg négy angol nyelvű levelezőlista üzemel:
- pywikipedia-l: felhasználók eszmecseréje (normál forgalommal)
- pywikipedia-announce: fontos közlemények (csekély forgalommal). Minden angolul beszélő botgazdának javasolt feliratkoznia rá!
- pywikipedia-svn: automata üzenetek a programkód változásairól (nagy forgalommal). A reakciók a pywikipedia-l listára érkeznek.
- pywikipedia-bugs: automata üzenetek a hibákról (nagy forgalommal)
A korábbi levelezőlistát 2009 áprilisában osztották négy részre, hogy áttekinthetőbb legyen. (Részletek itt.)
[szerkesztés] Lásd még
- (angolul) meta:Using the python wikipediabot