Příručka:Pywikibot/touch.py
| Git repozitář nadace Wikimedia obsahuje tento soubor: scripts/touch.py |
| Skripty Pywikibota |
|---|
|
touch.py je skript Pywikibot, který se používá k procházení více stránek wiki a jejich úpravě beze změn.
Toto se například používá k tomu, aby v šablonách fungovaly odkazy na kategorie.
Pokud je potřeba změnit stránku, aby se obnovily všechny druhy vztahů, může to udělat touch.py. Tento skript aktualizuje záznam bez provedení jakýchkoli změn. Technicky vzato to znamená, že se každá stránka uloží bez (jakýchkoli změn), čímž se relace aktualizují pomocí kategorií a dalších relací. Toto se obvykle v historii stránky nezobrazuje, nicméně ve vzácných případech to může vést k záznamu v historii stránky (obvykle kvůli chybně fungujícím rozšířením nebo když se předchozímu editorovi podařilo na stránce nechat něco, co je v úpravě robota transformováno před uložením).
Scénář 1
Pokud je kategorie přidána do často používané šablony, spuštění příkazu touch.py přidá do kategorie existující stránky.
Parametry
V podstatě touch.py chápe totéž co replace.py a také obecné parametry.
Dostupné generátory a filtry
| Parametr | Popis |
|---|---|
-cat |
Pracovat na všech stránkách, které jsou v dané kategorii. Argument lze také zadat jako "-cat:NazevKategorie" nebo jako "-cat:NazevKategorie|ZNazvu" (v tomto a následujícím případě je povoleno také použití # místo |). |
-catr |
Podobně jako -cat, ale také rekurzivně zahrnuje stránky v podkategoriích, podpodkategoriích atd. dané kategorie. Argument lze také zadat jako "-catr:categoryname" nebo jako "-catr:categoryname|fromtitle". |
-subcats |
Pracovat na všech podkategoriích dané kategorie. Argument lze také zadat jako "-subcats:nazevkategorie" nebo jako "-subcats:nazevkategorie|znazvu". |
-subcatsr |
Jako -subcats, ale zahrnuje i podkategorie atd. dané kategorie. Argument lze také zadat jako "-subcatsr:nazevkategorie" nebo jako "-subcatsr:nazevkategorie|znazvu". |
-uncat |
Pracovat na všech stránkách, které nejsou kategorizovány. |
-uncatcat |
Pracovat na všech kategoriích, které nejsou kategorizovány. |
-uncatfiles |
Pracovat se všemi soubory, které nejsou kategorizovány. |
-file |
Načíst seznam stránek, které mají být ošetřeny, z pojmenovaného textového souboru. Názvy stránek v souboru mohou být buď uzavřeny do hranatých závorek (příklad: [[Page]]), nebo odděleny novými řádky. Argument může být také zadán jako "-file:nazevsouboru". |
-filelinks |
Pracovat na všech stránkách, které používají určitý obrazový/mediální soubor. Argument lze také zadat jako "-filelinks:nazevsouboru". |
-search |
Pracovat na všech stránkách, které jsou nalezeny při vyhledávání na MediaWiki ve všech jmenných prostorech. |
-logevents |
Pracovat na článcích, které byly na zadaném Special:Log. Hodnota může být seznam těchto hodnot oddělených čárkami:
logevent,username,start,end nebo pro zpětnou kompatibilitu: logevent,username,total Chcete-li použít výchozí hodnotu, použijte prázdný řetězec. Pro každý typ protokolů daný parametrem události protokolu máte k dispozici možnosti, které mohou být následující: spamblacklist, titleblacklist, gblblock, renameuser, globalauth, gblrights, gblrename, abusefilter, massmessage, thanks, usermerge, block, protect, rights, delete, upload, move, import, patrol, merge, suppress, tag, managetags, contentmodel, review, stable, timedmediahandler, newusers Používá výchozí počet stránek 10. Příklady: -logevents:move poskytuje stránky z protokolu přesunů (obvykle přesměrování) -logevents:delete,,20 poskytuje 20 stránek ze záznamu o smazání -logevents:protect,Usr poskytuje stránkám před ochranou uživatelem Usr -logevents:patrol,Usr,20 poskytuje 20 hlídaných stránek uživatelem Usr -logevents:upload,,20121231,20100101 poskytuje stránky pro nahrávání v kategoriích 2010, 2011 a 2012 -logevents:review,,20121231 poskytuje recenzní stránky od začátku do 31. prosince 2012 -logevents:review,Usr,20121231 dává uživatelům stránky s recenzemi v hodnotě Usr od začátku do 31. prosince 2012V některých případech musí být zadána jako -logevents:"move,Usr,20". |
-interwiki |
Pracovat na dané stránce a všech ekvivalentních stránkách v jiných jazycích. Toto lze například použít k boji proti spamu na více webech. Pozor: Toto způsobí, že bot upraví stránky na několika wiki webech, toto není dobře otestováno, proto si své úpravy zkontrolujte! |
-links |
Pracovat na všech stránkách, na které odkazuje daná stránka. Argument lze také zadat jako "-links:nazevodkazujicistranky". |
-liverecentchanges |
Pracovat na stránkách z živého kanálu posledních změn. Pokud se použije jako -liverecentchanges:x, provede se práce s x nedávnými změnami. |
-imagesused |
Pracovat se všemi obrázky, které se nacházejí na určité stránce. Lze také zadat jako "-imagesused:nazevodkazujicistranky". |
-newimages |
Pracovat na nejnovějších nových obrázcích. Pokud je zadáno jako -newimages:x, bude fungovat na x nejnovějších obrázcích. |
-newpages |
Pracovat na nejnovějších nových stránkách. Pokud je zadáno jako -newpages:x, bude fungovat na x nejnovějších stránkách. |
-recentchanges |
Pracovat na stránkách s nejnovějšími změnami. Pokud je zadáno jako -recentchanges:x, bude fungovat na x naposledy změněných stránkách. Pokud je zadáno jako -recentchanges:offset,duration, bude fungovat na stránkách změněných od 'offset' minut s časovým rozpětím 'duration' minut.
Příklady: |
-unconnectedpages |
Pracovat na nejnovějších nepropojených stránkách s repozitářem Wikibase. Zadáno jako -unconnectedpages:x, bude fungovat na x nejnovějších nepropojených stránkách. |
-ref |
Pracovat na všech stránkách, které odkazují na určitou stránku. Argument lze také zadat jako "-ref:nazevodkazovanestranky". |
-start |
Určuje, že robot má procházet abecedně všechny stránky na domovské wiki, počínaje pojmenovanou stránkou. Argument lze také zadat jako "-start:nazevstranky". Můžete také zahrnout jmenný prostor. Například "-start:Template:!" způsobí, že robot bude fungovat na všech stránkách v daném jmenném prostoru šablony. Výchozí hodnota je start:! |
-prefixindex |
Pracovat na stránkách začínajících společným prefixem. |
-transcludes |
Pracovat na všech stránkách, které používají určitou šablonu. Argument lze také zadat jako "-transcludes:nazev". |
-unusedfiles |
Pracovat na všech popisných stránkách obrázků/mediálních souborů, které se nikde nepoužívají. Argument může být zadán jako "-unusedfiles:n", kde n je maximální počet článků, na kterých se má pracovat. |
-lonelypages |
Pracovat na všech článcích, na které neodkazuje žádný jiný článek. Argument může být zadán jako "-lonelypages:n", kde n je maximální počet článků, na kterých se má pracovat. |
-unwatched |
Pracovat na všech článcích, které nikdo nesleduje. Argument může být zadán jako "-unwatched:n", kde n je maximální počet článků, na kterých se má pracovat. |
-property:name |
Pracovat na všech stránkách s daným názvem vlastnosti ze Special:PagesWithProp. |
-usercontribs |
Pracovat na všech článcích, které byly upraveny určitým uživatelem. (Příklad: -usercontribs:DumZiBoT.) |
-weblink |
Pracovat se všemi články, které obsahují externí odkaz na danou URL adresu. Lze zadat jako "-weblink:url" |
-withoutinterwiki |
Pracovat na všech stránkách, které nemají mezijazykové odkazy. Argument může být zadán jako "-withoutinterwiki:n", kde n je celková částka k načtení. |
-mysqlquery |
Přijímá řetězec dotazu MySQL, například "SELECT page_namespace, page_title, FROM page WHERE page_namespace = 0", a pracuje s výslednými stránkami. Viz Manual:Pywikibot/MySQL. |
-sparql |
Přijímá řetězec dotazu SPARQL SELECT včetně parametru ?item a pracuje s výslednými stránkami. |
-sparqlendpoint |
Zadejte URL koncového bodu SPARQL (volitelné). (Příklad: -sparqlendpoint:http://myserver.com/sparql) |
-searchitem |
Přijme hledaný řetězec a pracuje se stránkami Wikibase, které jej obsahují. Argument může být zadán jako "-searchitem:text", kde text je řetězec, který se má hledat, nebo "-searchitem:lang:text", kde lang je jazyk, ve kterém se mají položky vyhledávat. |
-random |
Pracovat s náhodnými stránkami vrácenými funkcí Special:Random. Lze také zadat jako "-random:n", kde n je počet vrácených stránek. |
-randomredirect |
Pracovat s náhodnými přesměrovanými stránkami vrácenými funkcí Special:RandomRedirect. Lze také zadat jako "-randomredirect:n", kde n je počet vrácených stránek. |
-google |
Pracovat na všech stránkách, které se nacházejí ve vyhledávání Google. Potřebujete licenční klíč pro Google Web API. Upozorňujeme, že Google již licenční klíče nevydává. Pokyny viz google_key v config.py. Argument lze také zadat jako "-google:hledanyretezec“. |
-yahoo |
Pracovat na všech stránkách, které se najdou ve vyhledávání Yahoo. Záleží na modulu pythonu pYsearch. Pokyny yahoo_appid naleznete v souboru config.py. |
-page |
Pracujte na jedné stránce. Argument lze také zadat jako "-page:nazevstranky" a pro více stránek jej lze zadat vícekrát. |
-pageid |
Pracovat na jednom ID stránky. Argument lze také zadat jako "-pageid:idstrahy1,idstanky2,." nebo "-pageid:'idstranky1|idstranky2|..'" a pro více stránek jej zadat vícekrát. |
-linter |
Pracovat na stránkách, které obsahují chyby typu lint. Rozšíření Linter musí být k dispozici na webu. -linter vybrat všechny kategorie. -linter:high, -linter:medium nebo -linter:low vyberte všechny kategorie pro danou prioritu. Jednotlivé kategorie lze vybírat čárkami, například v -linter:cat1,cat2,cat3 Přidání '/int' identifikuje ID Lintu, od kterého se má začít dotazovat: např. -linter:high/10000 -linter:show zobrazuje pouze dostupné kategorie. |
| Parametr | Popis |
|---|---|
-catfilter |
Filtrovat generátor stránek tak, aby zobrazoval pouze stránky v zadané kategorii. Formát argumentu viz generátor -cat. |
-grep |
Regulární výraz, který musí odpovídat článku, jinak stránka nebude vrácena. Lze zadat více hodnot -grep:regexpr a stránka bude vrácena, pokud obsah odpovídá některému z poskytnutých regulárních výrazů. Budou použity regulární výrazy nerozlišující velká a malá písmena a tečka odpovídá libovolnému znaku, včetně znaku nového řádku. |
-grepnot |
Jako -grep, ale vrátit stránku pouze v případě, že regulární výraz nesouhlasí. |
-intersect |
Pracovat na průniku všech zadaných generátorů. |
-limit |
Při použití s jakýmkoli jiným argumentem -limit:n určuje sadu stránek, pracuje celkem s maximálně n stránkami. |
-namespaces-namespace-ns |
Filtrujte generátor stránek tak, aby vracel pouze stránky v zadaných jmenných prostorech. Více čísel jmenných prostorů nebo názvů oddělte čárkami.
Příklady: -ns:0,2,4 -ns:Help,MediaWiki Pro vyloučení jmenného prostoru můžete použít úvodní řetězec "not". Příklady: -ns:not:2,3 -ns:not:Help,File Pokud se používá s generátory -newpages/-random/-randomredirect/-linter, musí být před zadáním -newpages/-random/-randomredirect/-linter poskytnuto -namespace/-ns. Pokud se používá s generátorem -recentchanges, účinnost se zlepší, pokud jsou před poskytnutím -recentchanges poskytnuty -namespace. Pokud se použije s generátorem -start, -namespace/-ns bude obsahovat pouze jednu hodnotu. |
-onlyif |
Tvrzení, které musí stránka obsahovat, jinak nebude položka vrácena. Formát je vlastnost=hodnota,kvalifikátor=hodnota. Lze předat více (nebo žádný) kvalifikátorů, oddělených čárkami.
Příklady: -onlyif:expression". |
-onlyifnot |
Tvrzení, které stránka nesmí obsahovat, jinak nebude položka vrácena. Použití a příklady viz výše uvedený -onlyif. |
-ql |
Filtrovat stránky podle kvality. Toto platí pouze v případě, že se contentmodel rovná 'proofread-page', jinak nemá žádný vliv. Platné hodnoty jsou v rozsahu 0–4. Více hodnot lze oddělit čárkou. |
-subpage |
Hodnota -subpage:n filtruje stránky pouze na ty, které mají hloubku n, tj. hloubka 0 filtruje všechny stránky, které jsou podstránkami, a hloubka 1 filtruje všechny stránky, které jsou podstránkami podstránek. |
-titleregex |
Regulární výraz, který musí odpovídat názvu článku, jinak stránka nebude vrácena. Lze zadat více hodnot -titleregex:regexpr a stránka bude vrácena, pokud se název shoduje s některým z poskytnutých regulárních výrazů. Budou použity regulární výrazy bez rozlišení velkých a malých písmen a tečka odpovídá libovolnému znaku. |
-titleregexnot |
Jako -titleregex, ale vrátit stránku pouze v případě, že regulární výraz nesouhlasí. |
Dále je podporován parametr purge, který na vybrané soubory aplikuje operaci purge namísto úpravy s hodnotou null.
Skript rozumí i některým dalším argumentům příkazového řádku:
| Parametr | Popis |
|---|---|
-botflag |
Vynutit příznak bota v případě úprav se změnami |
-converttitles |
(argument purge) V případě potřeby převést názvy na jiné varianty |
-forcelinkupdate |
(argument purge) Aktualizace tabulek odkazů |
-forcerecursivelinkupdate |
(argument purge) Aktualizovat tabulku odkazů a aktualizovat tabulky odkazů pro všechny stránky, které tuto stránku používají jako šablonu |
-redirects |
(argument purge) Automaticky vyřešit přesměrování |
Příklady
$ python3 touch.py -start:!
$ python3 touch.py -lang:fr -family:wiktionary -cat:anglais
$ python3 touch.py -lang:fr -family:wiktionary -transcludes:"pron-rég" -purge
Dostupné globální parametry
Tyto možnosti přepíší konfiguraci v nastavení user-config.py.
| Parametr | Popis | Proměnná konfigurace |
|---|---|---|
-dir:PATH |
Čtěte konfigurační data robota z adresáře daného PATH namísto z výchozího adresáře. | |
-config:file |
Název souboru konfigurace uživatele. Default is user-config.py. | user-config.py |
-lang:xx |
Nastavte jazyk wiki, na kterém chcete pracovat, a přepište konfiguraci v user-config.py. xx by měl být kód jazyka. | mylang |
-family:xyz |
Nastavte rodinu wiki, na které chcete pracovat, např. wikipedie, wikislovník, wikitravel, ... Tím přepíšete konfiguraci v user-config.py. | family |
-user:xyz |
Přihlaste se jako uživatel 'xyz' namísto výchozího uživatelského jména. | usernames |
-daemonize:xyz |
Okamžitě vraťte řízení do terminálu a přesměrujte stdout a stderr do souboru xyz. (použijte pouze pro roboty, které nevyžadují žádný vstup z stdin). | |
-help |
Zobrazí text nápovědy. | |
-log |
Povolte soubor protokolu pomocí výchozího názvu souboru 'script_name-bot.log' Protokoly budou uloženy v podadresáři logs. | log |
-log:xyz |
Povolte soubor protokolu pomocí 'xyz' jako názvu souboru. | logfilename |
-nolog |
Zakázat soubor protokolu (pokud je ve výchozím nastavení povolen). | |
-maxlag |
Nastaví nový parametr maxlag na počet sekund. Odložte úpravy bota během období zpoždění databázového serveru. Výchozí hodnota je nastavena na config.py | maxlag |
-putthrottle:n-pt:n-put_throttle:n |
Nastavte minimální dobu (v sekundách), po kterou bude robot čekat mezi ukládáním stránek. | put_throttle |
-debug:item-debug |
Povolte soubor protokolu a zahrňte rozsáhlá ladicí data pro komponentu "item" (pro všechny komponenty, pokud je použit druhý formulář). | debug_log |
-verbose-v |
Nechte robota poskytnout další výstup konzoly, který může být užitečný při ladění. | verbose_output |
-cosmeticchanges-cc |
Přepne nastavení cosmetic_changes provedené v config.py nebo user-config.py na jeho inverzní hodnotu a potlačí jej. Všechna ostatní nastavení a omezení zůstávají nedotčené. | cosmetic_changes |
-simulate |
Zakáže zápis na server. Užitečné pro testování a ladění nového kódu (pokud je zadán, neprovádí žádné skutečné změny, ale ukazuje pouze to, co by se změnilo). | simulate |
-<proměnná nastavení>:n |
Všechny dané číselné konfigurační proměnné můžete použít jako volbu a upravit je pomocí příkazového řádku. |