Commons:Bots
Shortcuts: COM:BOTS • COM:BOT • COM:B
What is a bot?
A bot is an automated program that carries out repetitive tasks that would be tedious to do manually. Most bots are limited in the scope of their operations and concentrate on cleaning up in a specific area. Some bots run on the Tool Labs while others run on their operator's computer.
Permission to run a bot
All bots running on Wikimedia Commons must have advance permission to do so. Permission is needed whether or not the bot requires a bot flag.
Permission will be granted only in respect of the tasks that are listed in the bot request (tasks can be fairly general such as "uploading images" or "making localization changes to the Information template"). Bots must not be used to carry out different tasks for which permission has not been granted. Of course, bot operators are not expected to re-apply every time they want to implement a small alteration, but if the bot's functionality has been changed to carry out some significant new task then a new request should be filed. To request permission to run a bot, please go to Commons:Bots/Requests.
Bot accounts
Bots must be run from a separate user account from that used for general editing by the bot operator. In order to identify the account as a bot account, the username should normally include the word "Bot".
The contributions of a bot account remain the responsibility of its operator, who must be prominently identifiable on its user page. Upload bots are expected to supply correct licensing information and categorization (each file must belong to at least one category that describes its content or function). The bot operator is responsible for the prompt repair of any damage caused by a bot which operates incorrectly. Bot operators must ensure that they make themselves available for dealing with user queries relating to the bot, and that they promptly fix any identified bugs. Bot operators are encouraged to use a secure login method.
Bot accounts should not be used for contributions that do not fall within the scope of the bot's designated tasks. In particular, bot operators should not use a bot account to respond to messages related to the bot. Bot operators may wish to redirect a bot account's discussion page to their own.
Semi-automated tools (e.g. Javascript tools) are not normally considered to be bots and do not require a separate account, but some users choose to use a separate account for non-bot but high-speed editing.
Information on bots
The bot's user page should identify the bot as such, preferably using the {{Bot}} template. The following information should be clearly provided on that page, or on a page linked to it. Please make sure you have listed all this information before requesting bot permission.
- Who the creator/operator is and how they can best be contacted
- Details of the bot's task or tasks
- Whether the bot is manually assisted or runs automatically
- When it operates (continuously, intermittently, or at specified intervals)
- The bot's maximum edit rate (e.g. edits per minute)
- The language and/or program that it is running.
Bot speed
Bot operators should recognize that a bot making many requests or editing at a high speed has a much greater effect than the average contributor. Bots should therefore be conservative in their editing speed. A bot carrying out non-urgent tasks should not edit more frequently than once every 5 seconds. Bots carrying out urgent tasks, such as reverting vandalism, may edit faster. Unflagged bots should edit more slowly than flagged bots as their edits are visible in watchlists, and high-speed editing will swamp other users' lists.
Bot flag
Some but not all bots may be flagged with the bot flag. The effect of the flag is to hide bot edits from user watchlists, recent changes and new images lists. This prevents these lists from being swamped by bot edits, particularly where the bot makes large numbers of edits and/or uploads over a limited period. The bot flag can be removed as a result of inactivity.
The bot flag is effectively a statement of community trust, and confirms that the bot's edits are not likely to need manual checking.
Blocking of bots
Any admin may block a bot – without the autoblock option set – that is misbehaving if the operator is not immediately available to deal with the issue. In principle, an unapproved bot may be blocked, though in practice unless the bot is doing harm the operator should normally be asked to submit a retrospective bot request. If it is noticed that a bot is being used for tasks which are significantly different from those specified in the original bot request, the bot operator should be asked to make a fresh bot request which specifies the new tasks.
Notifications to upload bots
If you're uploading using your bot or offer your bot to third parties for uploading, by default, you will receive notifications about deletion requests etc. at your bot's talk page, or if you redirected this talk page to your user page, you'll receive them at your user page. If the third party should receive these messages or no messages should be sent to your bot's talk page at all, please list your bot accordingly at MediaWiki:Gadget-libCommons.js or ask someone to do so using {{Edit request}}
at the talk page and link back to this paragraph: [[Commons:Bots/en-ca#Notifications to upload bots]]
.
Bot Libraries
Bots can be written in almost any programming language. The choice of a language often depends on the experience of the bot writer, which languages s/he is familiar with, or on the availability of pre-developed libraries to perform the desired task. The following list includes several libraries to assist with bot tasks.
- Wiki.java (Java)
- DotNetWikiBot (C#)
- Pywikibot (Python)
- MediaWiki::Bot (Perl)
- botclasses.php (PHP)
- AddWiki (PHP)
- WikiapiJS (NodeJS) – JavaScript module to leverage MediaWiki API with simple wikitext parser, using CeJS[clarification needed] MediaWiki module. See Wikipedia bot examples on GitHub.
Useful bots that you can request services from
- ArchiverBot - automatically archives discussion pages.
- SpBot - automatically archives discussion pages.
- CommonsDelinker - can be commanded to universally replace images; move/rename/add categories.
- Rotatebot rotates pictures bearing the template {{Rotate}}
Active bots |
---|
Active bots
Service bots Providing services on request to any user, via a standard request system
Extensions
File upload
Maintenance
User assistants
|