Manuál:Pywikibot/touch.py
Git repozitář nadace Wikimedia obsahuje tento soubor: scripts/touch.py |
touch.py is a Pywikibot script used to go over multiple pages of a wiki, and edit them without changes.
This is for example used to get category links in templates working.
When a page needs to be changed in order to refresh all kinds of relations, touch.py can do the work. This script updates a record without making any changes. Technically, what it does is take each page and save it, without making any changes (null edit), thus refreshing the relations with categories and other relations. This usually doesn’t appear in the page history, however in rare cases it may result in a page history entry (usually due to misbehaving extensions, or when the previous editor managed to leave something in the page which is Pre-save transformed in the bot’s edit).
Scénář 1
When a category is added to a much used template, running touch.py will add the existing pages to the category.
Parametry
Basically touch.py understands the same like replace.py as well as the general parameters .
Dostupné generátory a filtry
Parametr | Popis |
---|---|
-cat |
Work on all pages which are in a specific category. Argument can also be given as "-cat:categoryname" or as "-cat:categoryname|fromtitle" (using # instead of | is also allowed in this one and the following) |
-catr |
Like -cat, but also recursively includes pages in subcategories, sub-subcategories etc. of the given category. Argument can also be given as "-catr:categoryname" or as "-catr:categoryname|fromtitle". |
-subcats |
Work on all subcategories of a specific category. Argument can also be given as "-subcats:categoryname" or as "-subcats:categoryname|fromtitle". |
-subcatsr |
Like -subcats, but also includes sub-subcategories etc. of the given category. Argument can also be given as "-subcatsr:categoryname" or as "-subcatsr:categoryname|fromtitle". |
-uncat |
Work on all pages which are not categorised. |
-uncatcat |
Work on all categories which are not categorised. |
-uncatfiles |
Work on all files which are not categorised. |
-file |
Read a list of pages to treat from the named text file. Page titles in the file may be either enclosed with brackets (example: [[Page]] ), or be separated by new lines. Argument can also be given as "-file:filename". |
-filelinks |
Work on all pages that use a certain image/media file. Argument can also be given as "-filelinks:filename". |
-search |
Work on all pages that are found in a MediaWiki search across all namespaces . |
-logevents |
Work on articles that were on a specified Special:Log. The value may be a comma separated list of these values:
logevent,username,start,end or for backward compatibility: logevent,username,total To use the default value, use an empty string. You have options for every type of logs given by the log event parameter which could be one of the following: 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 It uses the default number of pages 10. Examples: -logevents:move gives pages from move log (usually redirects) -logevents:delete,,20 gives 20 pages from deletion log -logevents:protect,Usr gives pages from protect by user Usr -logevents:patrol,Usr,20 gives 20 patroled pages by Usr -logevents:upload,,20121231,20100101 gives upload pages in the 2010s, 2011s, and 2012s -logevents:review,,20121231 gives review pages since the beginning till the 31 Dec 2012 -logevents:review,Usr,20121231 gives review pages by user Usr since the beginning till the 31 Dec 2012In some cases it must be given as -logevents:"move,Usr,20" |
-interwiki |
Work on the given page and all equivalent pages in other languages. This can, for example, be used to fight multi-site spamming. Attention: this will cause the bot to modify pages on several wiki sites, this is not well tested, so check your edits! |
-links |
Work on all pages that are linked from a certain page. Argument can also be given as "-links:linkingpagetitle". |
-liverecentchanges |
Work on pages from the live recent changes feed. If used as -liverecentchanges:x, work on x recent changes. |
-imagesused |
Work on all images that contained on a certain page. Can also be given as "-imagesused:linkingpagetitle". |
-newimages |
Work on the most recent new images. If given as -newimages:x, will work on x newest images. |
-newpages |
Work on the most recent new pages. If given as -newpages:x, will work on x newest pages. |
-recentchanges |
Work on the pages with the most recent changes. If given as -recentchanges:x , will work on the x most recently changed pages. If given as -recentchanges:offset,duration it will work on pages changed from 'offset' minutes with 'duration' minutes of timespan.
Examples: |
-unconnectedpages |
Work on the most recent unconnected pages to the Wikibase repository. Given as -unconnectedpages:x, will work on the x most recent unconnected pages. |
-ref |
Work on all pages that link to a certain page. Argument can also be given as "-ref:referredpagetitle". |
-start |
Specifies that the robot should go alphabetically through all pages on the home wiki, starting at the named page. Argument can also be given as "-start:pagetitle". You can also include a namespace. For example, "-start:Template:!" will make the bot work on all pages in the template namespace. default value is start:! |
-prefixindex |
Work on pages commencing with a common prefix. |
-transcludes |
Work on all pages that use a certain template. Argument can also be given as "-transcludes:Title". |
-unusedfiles |
Work on all description pages of images/media files that are not used anywhere. Argument can be given as "-unusedfiles:n" where n is the maximum number of articles to work on. |
-lonelypages |
Work on all articles that are not linked from any other article. Argument can be given as "-lonelypages:n" where n is the maximum number of articles to work on. |
-unwatched |
Work on all articles that are not watched by anyone. Argument can be given as "-unwatched:n" where n is the maximum number of articles to work on. |
-property:name |
Work on all pages with a given property name from Special:PagesWithProp. |
-usercontribs |
Work on all articles that were edited by a certain user. (Example : -usercontribs:DumZiBoT) |
-weblink |
Work on all articles that contain an external link to a given URL; may be given as "-weblink:url" |
-withoutinterwiki |
Work on all pages that don't have interlanguage links. Argument can be given as "-withoutinterwiki:n" where n is the total to fetch. |
-mysqlquery |
Takes a Mysql query string like "SELECT page_namespace, page_title, FROM page WHERE page_namespace = 0" and works on the resulting pages. See Manual:Pywikibot/MySQL . |
-sparql |
Takes a SPARQL SELECT query string including ?item and works on the resulting pages. |
-sparqlendpoint |
Specify SPARQL endpoint URL (optional). (Example : -sparqlendpoint:http://myserver.com/sparql) |
-searchitem |
Takes a search string and works on Wikibase pages that contain it. Argument can be given as "-searchitem:text", where text is the string to look for, or "-searchitem:lang:text", where lang is the language to search items in. |
-random |
Work on random pages returned by Special:Random. Can also be given as "-random:n" where n is the number of pages to be returned. |
-randomredirect |
Work on random redirect pages returned by Special:RandomRedirect. Can also be given as "-randomredirect:n" where n is the number of pages to be returned. |
-google |
Work on all pages that are found in a Google search. You need a Google Web API license key. Note that Google doesn't give out license keys anymore. See google_key in config.py for instructions. Argument can also be given as "-google:searchstring". |
-yahoo |
Work on all pages that are found in a Yahoo search. Depends on python module pYsearch. See yahoo_appid in config.py for instructions. |
-page |
Work on a single page. Argument can also be given as "-page:pagetitle", and supplied multiple times for multiple pages. |
-pageid |
Work on a single pageid. Argument can also be given as "-pageid:pageid1,pageid2,." or "-pageid:'pageid1|pageid2|..'" and supplied multiple times for multiple pages. |
-linter |
Work on pages that contains lint errors. Extension Linter must be available on the site. -linter select all categories. -linter:high, -linter:medium or -linter:low select all categories for that prio. Single categories can be selected with commas as in -linter:cat1,cat2,cat3 Adding '/int' identifies Lint ID to start querying from: e.g. -linter:high/10000 -linter:show just shows available categories. |
Parametr | Popis |
---|---|
-catfilter |
Filter the page generator to only yield pages in the specified category. See -cat generator for argument format. |
-grep |
A regular expression that needs to match the article otherwise the page won't be returned. Multiple -grep:regexpr can be provided and the page will be returned if content is matched by any of the regexpr provided. Case insensitive regular expressions will be used and dot matches any character, including a newline. |
-grepnot |
Like -grep, but return the page only if the regular expression does not match. |
-intersect |
Work on the intersection of all the provided generators. |
-limit |
When used with any other argument -limit:n specifies a set of pages, work on no more than n pages in total. |
-namespaces -namespace -ns |
Filter the page generator to only yield pages in the specified namespaces. Separate multiple namespace numbers or names with commas.
Examples: -ns:0,2,4 -ns:Help,MediaWiki You may use a preleading "not" to exclude the namespace. Examples: -ns:not:2,3 -ns:not:Help,File If used with -newpages/-random/-randomredirect/-linter generators, -namespace/-ns must be provided before -newpages/-random/-randomredirect/-linter. If used with -recentchanges generator, efficiency is improved if -namespace is provided before -recentchanges. If used with -start generator, -namespace/-ns shall contain only one value. |
-onlyif |
A claim the page needs to contain, otherwise the item won't be returned. The format is property=value,qualifier=value. Multiple (or none) qualifiers can be passed, separated by commas.
Examples: -onlyif:expression ". |
-onlyifnot |
A claim the page must not contain, otherwise the item won't be returned. For usage and examples, see -onlyif above. |
-ql |
Filter pages based on page quality. This is only applicable if contentmodel equals 'proofread-page', otherwise has no effects. Valid values are in range 0-4. Multiple values can be comma-separated. |
-subpage |
-subpage:n filters pages to only those that have depth n i.e. a depth of 0 filters out all pages that are subpages, and a depth of 1 filters out all pages that are subpages of subpages. |
-titleregex |
A regular expression that needs to match the article title otherwise the page won't be returned. Multiple -titleregex:regexpr can be provided and the page will be returned if title is matched by any of the regexpr provided. Case insensitive regular expressions will be used and dot matches any character. |
-titleregexnot |
Like -titleregex , but return the page only if the regular expression does not match. |
Furthermore the parameter purge is supported which applies a purge operation instead of a null edit to the selected files.
The script understands also some additional various command-line arguments:
Parametr | Popis |
---|---|
-botflag |
Force botflag in case of edits with changes |
-converttitles |
(purge argument) Convert titles to other variants if necessary |
-forcelinkupdate |
(purge argument) Update the links tables |
-forcerecursivelinkupdate |
(purge argument) Update the links table, and update the links tables for any page that uses this page as a template |
-redirects |
(purge argument) Automatically resolve redirects |
Ukázky
$ 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
Tato stránka je zastaralá. |
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. |