RationalWiki:Bots
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 or make themselves technically bots so that repetitive tasks won't clog up Special:RecentChanges.
A current list of RW's bots can be found here (there are 54). Any of these which are generally applicable should have usage instructions on their user page.
Active bots[edit]
Edit filter[edit]
Blocks people who trigger certain edit filters.
Inferno Bot[edit]
The fifth incarnation of a talkpage archival bot. Configurable with a template. See userpage for instructions.
Old bots[edit]
Extended content |
---|
Archiver[edit]Approximately the fourth incarnation of a talk page archiving bot. Works the same as the others. Archivist[edit]Archives talkpages. See userpage for full instructions and details -- including how to run it, if FuzzyCatPotato ever disappears. CaptureBot4[edit]Captures links as an image and/or on archive.is. To capture it as an image and archive.is:
For only archive.is:
Full instructions on user page. MummificationBot[edit]Archives old discussions, like Pibot did for many years. It should work the same as pibot, and pages that previously used pibot should™ work. Basic instructions; copy/paste this at the top of a talkpage: {{Talkpage/Pibot |algo = old(30d) |archive = {{subst:NAMESPACE}}:{{subst:PAGENAME}}/Archive%(counter)d }} Full instructions on user page. RedirectBot[edit]Fixes double redirects and removes broken redirects. WigoBot[edit]Archives old WIGO entries. |
How to make your own[edit]
You can talk to the API at http://rationalwiki.org/w/api.php. See the MediaWiki help pages.
Pywikibot[edit]
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 generate_family_file.py http://rationalwiki.org/wiki/Main_Page rationalwiki
will give you a family file in pywikibot/families/rationalwiki_family.py
. The default will do fine for most cases.
You'll need to edit the user-config.py
:
mylang = 'en' family = 'rationalwiki' usernames['rationalwiki']['en'] = 'MummificationBot'
Finally, test your setup with python pwb.py 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 user-config.py
:
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())) sys.exit(1) print(user) usernames['rationalwiki']['en'] = user del user del valid
Now just set the RW_USER
environment variable before running the script:
RW_USER=MummificationBot python pwb.py login
An alternative is using separate Pywikibot directories (this is the documented way, but a bit silly).