Manual:Pywikibot/solve disambiguation.py

solve_disambiguation.py is a python bot script to help a human solve links to disambiguation pages by presenting a set of options.

Specify the disambiguation page on the command line. The program will pick up the page, and create a menu of all outbound links found on the page, with a unique number adjacent to each link. It will then automatically loop over all pages which refer to the disambiguation page, and show 30 characters of context on each side of the reference to help you make the decision between the alternatives. It will ask you to type the number of the appropriate replacement, and perform the change.

It is possible to choose to replace only the link (just type the number) or replace both link and link-text (type ' ' followed by the number).

Multiple references in one page will be scanned in order, but typing ' ' (next) on any one of them will leave the complete page unchanged. To leave only some reference unchanged, use the ' ' (skip) option.



Command line options (in addition to the general options for all bots):


 * -pos:XXXX
 * adds  as an alternative disambiguation


 * -just
 * Only use the alternatives given on the command line, do not read the page for other possibilities.


 * -redir
 * If the page is a redirect page, use the page redirected to as the (only) alternative; if not set, the pages linked to from the page redirected to are used. If the page is not a redirect page, this will raise an error.


 * -primary
 * "Primary topic" disambiguation (Begriffsklärung nach Modell 2). That's titles where one topic is much more important, the disambiguation page is saved somewhere else, and the important topic gets the nice name.  All links found on page   will be listed as options for the user, but the bot will still work on links to.


 * -primary:XY
 * Like the above, but use XY as the only alternative, instead of searching for alternatives in Keyword (disambiguation) . Note: this is the same as.


 * -file:XYZ
 * Reads a list of pages, which can for example be gotten through extract_names.py. XYZ is the name of the file from which the list is taken. If XYZ is not given, the user is asked for a filename.
 * Page titles should be listed one per line, without brackets.
 * The  parameter won't work if   is used.


 * -always:XY
 * Instead of asking the user what to do, always perform the same action. For example,   can be "r0", "u" or "2". Be careful with  this option, and check the changes made by the bot. Note that  some choices for XY don't make sense and will result in a loop, e.g., "l" or "m".


 * -main
 * Only check pages in the main namespace, not in the talk, wikipedia, user, etc. namespaces.

To complete a move of a page, one can use:

python solve_disambiguation.py -just -pos:New_Name Old_Name