Jump to content

Manual:Pywikibot/add text.py

From mediawiki.org

This is a script which helps to add a text at the end of the page but above categories, interwiki and template for the stars of the interwiki (default setting), or add a text at the top of the page.

This needs Python with at least v2.7 as stated on Manual:Pywikibot/Installation .

Parameters

These command line parameters can be used to specify which pages to work on:

-cat Targets entries within a specific category
-page Use a page as generator
-file Read a list of pages to treat from the named text file. Page titles in the file must be enclosed with brackets or separated by newlines. Argument can also be given as "-file:filename".

Furthermore, the following command line parameters are supported:

-text Define which text to add
-talkpage Put the text onto the talk page instead
-summary Define the summary to use
-except Use a regex to check if the text is already in the page **DEPRECATED IN 6.3.0 - Use "-grepnot" instead**
-excepturl Use the html page as text where you want to see if there's the text, not the wiki-page.
-create Create the page if necessary. Note that talk pages are created already without of this option.
-createonly Only create the page but do not edit existing ones
-newimages Add text in the new images
-untagged Add text in the images that don't have any license template
-always If used, the bot won't ask if it should add the text specified
-up If used, put the text at the very top of the page *
-noreorder Disable reordering of categories

For more command line parameters, run the bot help command for example: python pwb.py add_text -help | more


Example

Adding a template to specific pages

It will add the text "{{Documentation subpage}}" at the very top of the pages with "Category:Template documentation", except for those which already include it.

$ python pwb.py add_text -cat:template_documentation -text:"{{Documentation subpage}}" -grepnot:"\{\{([Tt]emplate:|)(\s|)[Dd]ocumentation [Ss]ubpage" -up
  • -cat:template_documentation — only target entries categorized in the page of "Category:Template documentation"
  • -text:"{{Documentation subpage}}" — add the template "{{Documentation subpage}}" (excluding the quotes)
    • To insert return code, use "\n". But, if you use "-up" option, it becomes invalid.
  • -grepnot:"\{\{([Tt]emplate:|)(\s|)[Dd]ocumentation [Ss]ubpage" — regex commands to exclude entries which have this template already in the page
  • -up — put the text at the top of the page instead

Another example:

$ python pwb.py add_text -cat:catname -summary:"Bot: Adding a template" -text:"{{Something}}" -grepnot:"\{\{([Tt]emplate:|)(\s|)[Ss]omething" -up


Adding category to pages without any category

This is a real instance that is used on Wikipedia to put a template on a page without any category, because if there are any hidden categories, the page will be defined as categorized.

$ python pwb.py add_text -excepturl:"class='catlinks'>" -uncat -text:"{{Categorizzare}}" -grepnot:"\{\{([Tt]emplate:|)[Cc]ategorizzare" -summary:"Bot: Aggiungo template Categorizzare"


Global arguments available

These options will override the configuration in user-config.py settings.

Global options
Parameter Description Config variable
-dir:PATH Read the bot's configuration data from directory given by PATH, instead of from the default directory.  
-config:file The user config filename. Default is user-config.py. user-config.py
-lang:xx Set the language of the wiki you want to work on, overriding the configuration in user-config.py. xx should be the language code. mylang
-family:xyz Set the family of the wiki you want to work on, e.g. wikipedia, wiktionary, wikitravel, ... This will override the configuration in user-config.py. family
-user:xyz Log in as user 'xyz' instead of the default username. usernames
-daemonize:xyz Immediately return control to the terminal and redirect stdout and stderr to file xyz. (only use for bots that require no input from stdin).  
-help Show the help text.  
-log Enable the log file, using the default filename 'script_name-bot.log' Logs will be stored in the logs subdirectory. log
-log:xyz Enable the log file, using 'xyz' as the filename. logfilename
-nolog Disable the log file (if it is enabled by default).  
-maxlag Sets a new maxlag parameter to a number of seconds. Defer bot edits during periods of database server lag. Default is set by config.py maxlag
-putthrottle:n
-pt:n
-put_throttle:n
Set the minimum time (in seconds) the bot will wait between saving pages. put_throttle
-debug:item
-debug
Enable the log file and include extensive debugging data for component "item" (for all components if the second form is used). debug_log
-verbose
-v
Have the bot provide additional console output that may be useful in debugging. verbose_output
-cosmeticchanges
-cc
Toggles the cosmetic_changes setting made in config.py or user-config.py to its inverse and overrules it. All other settings and restrictions are untouched. cosmetic_changes
-simulate Disables writing to the server. Useful for testing and debugging of new code (if given, doesn't do any real changes, but only shows what would have been changed). simulate
-<config var>:n You may use all given numeric config variables as option and modify it with command line.