This is an open-source Wikipedia bot written by a small number of people. This program is intended for use only by people who contribute constructively to Wikipedia and have advanced knowledge of computer programming. All code is copyright to Richard Cavell and Guenter Knauf. We license this to you under, at your option, the BSD license and/or the MIT license and/or the GPLv3 license. This project is hosted at SourceForge. It is run on Richard Cavell's computer as RichardcavellBot.
It is written in C, using the C99 standard. It was developed on Ubuntu 10.10 32-bit but should compile on any system that supports Standard C and libcurl. Unfortunately, there is some unavoidable platform-specific code (the sleepseconds() function in Communication.c and Editing.c), which should be easily ported to non-POSIX operating systems. This bot uses libcurl2. You need to have the libcurl2 development library and header files installed. XML parsing is done manually. All the variables that are worth fiddling with are in Variables.c. The bot's Wikipedia account details need to be in a file called Account.txt.
My priorities for Autobot are:
- It is an open-source project that can be used by any person who wishes to contribute constructively to Wikipedia.
- It is written in standard C (C99 dialect), using standard libraries.
- However, it only uses a few features of C99 that are specific to C99. The rest is written in C89.
- It uses a minimum amount of OS-specific or platform-specific code.
- It is as portable as possible, to any platform that supports C99.
- All possible error conditions are detected, reported, and gracefully handled.
- Bugs and errors are thoroughly described for the user.
I will not make any changes that gain execution speed or decrease executable file size or source code size, if that comes at the cost of reducing the quality of error detection and reporting, or otherwise at the risk of harming Wikipedia. It is not desired to introduce code paths that are platform-specific.
This program comes with no warranty. Backup all of your important data before
using it and don't let it edit Wikipedia unsupervised. This project is
licensed to you under, at your option, the BSD, MIT and/or GPLv3 licenses.
It is hosted at SourceForge.
The bot's Wikipedia account details need to be in the file Account.txt.
You also need to use command line options to identify the task. Output is
logged to Log.txt (unless --nolog is specified). If an error occurs,
information is saved to Debug.txt (unless --nodebug is used). Both files
are deleted on the next run.
The following tasks are available:
--rove report vandalism in [[Rove McManus]]
--fixrove automatically remove vandalism from [[Rove McManus]]
--status update the bot status page
--trial don't scan or improve Wikipedia
Optional command line parameters are :
-e , --verbose show all communications with Wikipedia
-d , --nodebug when a fatal error occurs, don't dump debug info to disk
-l , --nolog don't log to disk
-m , --highmaxlag don't slow down or fail if Wikipedia is lagging a bit
-n , --noloop exit after one improvement scan
-o , --noshutoff don't check the shutoff page
-p , --progress display a progress meter during Wikipedia accesses
-q , --quick speed everything up
-r , --persevere never give up trying to communicate with Wikipedia
-s , --silent suppress regular console output. Logging to disk still
occurs unless --nolog is specified. The --progress and
--verbose options still work and errors are still reported
-u , --simulate don't modify Wikipedia
-w , --lowmem use less memory
-h , --help display this message and then exit
-i , --info display Autobot usage info
-t , --tasks display available tasks
-v , --version display Autobot and libcurl version info, then exit