User:Crazycomputers/WatchlistBot/1.0

WatchlistBot is an XMPP bot that will allow XMPP users to maintain a watchlist that is similar to (but separate from) their watchlist on Wikipedia. The key difference is that when a page on a user's WatchlistBot watchlist is changed, they are immediately notified of the edit through their XMPP client.

If you like using WatchlistBot, you can put User:Crazycomputers/Userbox/WatchlistBot on your userpage to let others know about this project.

(Note that Google Talk is a XMPP service, so if you have a gmail account you are all set to begin using WatchlistBot.)

Usage
To begin using WatchlistBot, send a subscription request to watchlistbot@jabber.org. The bot should immediately approve this request. (Note that this is not an email address -- email sent to this address will bounce.)

Then simply send the message "help" to the bot for a command summary. The available commands are also documented here.

about
Display the bot's version and credits.

batch
Performs batch watchlist edits, such as adding or removing articles. The syntax is:

batch (add|remove) (articles)

Articles should be separated by newlines. This syntax was chosen to allow direct copying and pasting from Special:Watchlist/raw.

clear
Irreversibly removes all articles from your watchlist. You must issue this command as  or your request will be refused.

help
Displays a summary of these commands.

list
Displays your watchlist.

set
Sets/displays your variables. The following table lists the available variables and describes what they do.

Issuing the set command by itself will display your current settings. Otherwise, specify the variable you want to change and what you want to set it to. For example,.

stats
Display some statistics:


 * The time the bot was last restarted.
 * How many article edits and creations the bot has processed, and of those:
 * How many were in at least one person's watchlist.
 * How many messages were sent as a result.

unwatch
Unwatch an article. Same syntax as watch.

watch
Watch an article. Note that, unlike MediaWiki's watchlist, the corresponding talk page is not watched too. You must specifically add talk pages using this same command. Articles are also case-sensitive, and WatchlistBot will not attempt to correct any case errors.

Since 0.1.3, WatchlistBot recognizes the special case where you issue  -- in this case you will be alerted any time the user username makes an edit.

In the case where a user you are watching has edited an article you are watching, you will still only receive one message.

Examples:


 * -- Watch for changes to the User:Jimbo Wales page.
 * -- Watch for changes made by Jimbo Wales.

Roadmap

 * ASAP
 * Fix hanging. A bug in one of the libraries WatchlistBot uses has been fixed.
 * Gracefully handle disconnections from XMPP service. Should be fixed as of 0.1.5.
 * 0.2
 * Persist silence state for users.
 * Better handling of watch/unwatch. May include notifying the user if: Done.
 * The page they added is currently a redirect. (Let them know the target page so if they meant that page they can copy and paste it.)
 * The page they added doesn't exist. (Should catch typos, but may be intentional for e.g. CSD articles that keep getting created and aren't salted.)
 * 0.3
 * Support for other IM protocols besides XMPP. (This means support in the database schema and bot design that allow other protocols to be used.)
 * 0.4
 * Support for notices over AOL Instant Messenger.
 * Later
 * Watchlist categories, such that whole categories can be silenced. (Useful to put things like AIV and ANI in one list, and silence it when not actively "adminning" but still want to receive notices when one's talk page is edited.)

Platform
WatchlistBot runs on Mono, and uses MySQL to maintain watchlists. The XMPP connection is done through agsXMPP. Live article watching is done using code copied from VandalSniper, which uses SmartIrc4net.

Privacy
Since everything is stored on my computer, I have full access to everyone's watchlist. I will keep this information confidential to the best of my ability. If you are worried about privacy, take note of two things:


 * 1) I have no knowledge of your IP address.
 * 2) I don't know your Wikipedia account name unless it's part of your JID.

Picking an JID that differs sufficiently from your Wikipedia account name will ensure that I can't tie a specific watchlist to you.

Disclaimer
I provide absolutely no guarantee as to the correctness or timeliness of the information delivered by WatchlistBot. You cannot hold me responsible for information that it fails to deliver, or delivers incorrectly. You cannot hold me responsible for damages that occur arising from the use of, inability to use, or malfunctioning of this service.