This script can be used to delete and undelete pages en masse. You will need an admin account on the relevant wiki. Also add:

usernames['wikipedia']['en'] = 'adminname'

to, where ['wikipedia'] is the name of the the family in which you are working on, and 'adminname' is the username.


$ python delete [-cat:categoryName|-page:pageName|...] [-summary:"text"] [-undelete] [-always]

Arguments edit

  • -page: Delete specified page
  • -ref: Delete all pages referring from a given page.
  • -images: Delete all images used on a given page.
  • -cat: Delete all pages in the given category.
  • -links: Delete all pages linked from a given page.
  • -always Don't prompt to delete pages, just do it.
  • -summary: Supply a custom edit summary.
  • -undelete: Actually undelete pages instead of deleting. Works only with -page and -file.
  • -file: Delete all pages listed in a given text file. The list should be of the format
    • # [[page1]]
    • # [[page2]]
    • etc.

Examples edit

  • Delete everything in the category "To delete" without prompting.
$ python delete -cat:"To delete" -always
  • Delete everything in the pages linked to the page, without prompting.
$ python delete "deletepage" -always
  • Delete everything in the speedy deletion category on the English Wikibooks.
$ python delete -lang:en -family:wikibooks -cat:"Candidates for speedy deletion"
  • Delete pages inside a text file:
$ python delete -file:nuke.txt -always -summary:"Because I feel like it"

The format of the text file should be as the following:

# [[Main Page]]
# [[Talk:Main Page]]
  • Restore pages:
$ python delete -undelete -file:respawn.txt -summary:"It was a foolish mistake"

Global arguments available

These options will override the configuration in 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
-lang:xx Set the language of the wiki you want to work on, overriding the configuration in 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 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 maxlag
Set the minimum time (in seconds) the bot will wait between saving pages. put_throttle
Enable the log file and include extensive debugging data for component "item" (for all components if the second form is used). debug_log
Have the bot provide additional console output that may be useful in debugging. verbose_output
Toggles the cosmetic_changes setting made in or 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.