Information icon.svg Our Community Standards are under review. Your comments and inputs are welcome on the relevant project talkpage.


From RationalWiki
Jump to: navigation, search

Bots (short for "robots") are (usually small) computer programs/scripts created to perform repetitive tasks or to ease routine maintenance of a website.

On wikis Bot is a class of user which is usually such a program, although some users have Bot alteregos so that repetitive tasks won't clog up Special:RecentChanges.

A current list of RW's bots can be found here (there are 51). Any of these which are generally applicable should have usage instructions on their user page.

Active bots[edit]

Inferno Bot[edit]

The fifth incarnation of a talkpage archival bot. Configurable with a template. See userpage for instructions.

Old bots[edit]

How to make your own[edit]

You can talk to the API at See the MediaWiki help pages.


It's probably easiest to use a framework like Pywikibot. You want to use the new "core" version, not the old "compat".

Getting started[edit]

Follow the installation instructions to install Pywikibot & dependencies (note: some systems also have packages for Pywikibot: [1] [2]).

Now create the rationalwiki family; this will tell Pywikibot how to interact with the RationalWiki API:

python3.4 rationalwiki

will give you a family file in pywikibot/families/ The default will do fine for most cases.

You'll need to edit the

mylang = 'en'
family = 'rationalwiki'
usernames['rationalwiki']['en'] = 'MummificationBot'

Finally, test your setup with python login, which should prompt for the login password for your bot, and then output Logged in on somewiki:lang as bot username. The password should be remembered.

Multiple accounts[edit]

Pywikibot only supports a single account name; for separate accounts you could use something along the lines of this in your

import os, sys

mylang = 'en'
family = 'rationalwiki'
user = os.getenv('RW_USER')
valid = {
    'MummificationBot': 'store password here if you want',
    'RedirectBot': 'store password here if you want',

if user not in valid.keys():
    print('No such user; valid users: {}'.format(valid.keys()))

usernames['rationalwiki']['en'] = user

del user
del valid

Now just set the RW_USER environment variable before running the script:

RW_USER=MummificationBot python login

An alternative is using separate Pywikibot directories (this is the documented way, but a bit silly).