Bots

From Gamepedia Help Wiki
Jump to: navigation, search
Robot.png

A bot is a computer program that automatically retrieves or updates wiki pages when it is executed. In general, bots are used for repetitive maintenance tasks, whose volume and characteristics are too large to be performed manually by users.

Developing and executing bots is usually outside the role of normal users, requires programming experience, and must be done in coordination with the wiki's admins or other staff.

Bot user accounts

It is recommended that users that intend to do a lot of automation using bots create a separate user account for performing bot actions. Bot accounts should recognizably indicate which user they belong to, usually by appending "bot" to the user's primary account name.

Users that wish to create a bot user account should notify a bureaucrat or Gamepedia Staff on the wiki before doing so, as they can add the bot user group to the account using Special:UserRights.

Having a separate bot account is beneficial for a few reasons. First, it allows the bot operator to more easily recognize and revert their bot's edits if necessary, without accidentally reverting any of the edits made by their primary account. Additionally, bot accounts can be flagged with the bot user group. By default, edits by bot users performed with the API or a third party tool are hidden in Special:RecentChanges, which reduces clutter in the recent changes. Any edits made by an account marked with the bot user group will be marked by an lowercase letter B (b) next to their edits when viewed in Recent changes, and the visibility of these changes can be toggled using the "Show/hide bots" option.

Accessing the wiki with a bot

Bots do not access the wiki through the normal user interface. MediaWiki has an API (Application Programming Interface) available for this purpose. An API is a protocol for standardized communication between two computer programs.

Bots use several different tools and frameworks, the most popular being AutoWikiBrowser and Pywikibot. Several bot operators create their own frameworks, for fun or because of the many limitations that existing frameworks have.

Authentication

Because bots do not access the wiki the same as a regular user, they also use a special authentication system. This uses a password generator to create a special login for automated tools, accessible at Special:BotPasswords on any Gamepedia wiki. For more information on using the bot password for each bot tool, see Pywikibot and AutoWikiBrowser.

This method for setting up an account to use a bot or other external editors using the API interface was implemented on Gamepedia on March 1, 2017.

AutoWikiBrowser or Pywikibot?

When getting started with automation, one of the first decisions you must make is which bot tool to use. For most users, the choice is between AutoWikiBrowser, commonly abbreviated "AWB", and Pywikibot, commonly abbreviated "PWB". While many people use both, depending on the task, each tool has its pros and cons.

AWB

Pros:

  • Has a GUI instead of just being done through command prompt
  • Easier setup & lower barrier to entry as a result
  • Better at doing complex find-and-replace options

Cons:

  • Limited selection of generators, so editing lists of pages with complex criteria sometimes requires several steps
  • AWB is Windows-only (but can be run in Wine on Mac and Linux)

PWB

Pros:

  • Can delete, move, and create pages easily instead of just editing
  • Once you are familiar with the command line interface & available options, it's fewer clicks to accomplish some of the tasks that both tools can do
  • Can use a wider variety of page list generators
  • Can be run on most operating systems without requiring extra tools

Cons:

  • More difficult to set up and more difficult to learn
  • Harder to preview changes before making them

Custom bot development

Some advanced users have created their own bots and scripts to edit the wiki. These can be written in several languages, some of the most commonly used being JavaScript and Python. See mw:API:Client code for more information.

See also