User:Crazycomputers/WatchlistBot
![]() | This bot is currently under development and is not yet available for public use. You may track its development on the development status page. This page contains user documentation that will be applicable to the new bot once it is launched. |

WatchlistBot is an XMPP bot that will allow 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 IM 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.)
Watchlist entry specification
All watchlist entries can be specified with a common syntax, with slight variations for each type of entry:
- For articles, users, and networks: A bare name, for example "Wikipedia:Sandbox". This will watch the specified item on your default wiki, according to your variables.
- For articles, users, and networks: A wiki-qualified name, for example "{en.wikipedia}Wikipedia:Sandbox". This will watch the specified item on the specified wiki.
- For articles: A URL to the article to watch. The wiki name will be extracted from the URL. (Note that this syntax can, but should not be used for watching users, because the user namespace will not be stripped. Thus, attempting to watch the user "http://en.wikipedia.org/wiki/User:Crazycomputers" will end up watching the user "User:Crazycomputers" (who does not exist) instead of the intended target "Crazycomputers".)
Networks must be specified as a CIDR block (the notation xxx.xxx.xxx.xxx/nn). As indicated above, you can specify the wiki on which to watch edits by this network using the "{language.project}" prefix. As a safeguard, the bot will not permit networks with a network identifier of less than 16 bits to be watched.
Article and usernames are normalized using a subset of MediaWiki's own normalization algorithm, with a few exceptions:
- Namespaces are not understood, so attempting to watch "user:crazycomputers" will result in watching "User:crazycomputers". Obviously, this will never actually yield any results. Always specify the exact item name. (This is due to the fact that namespaces vary from project to project and from language to language, and I'm not interested in constantly tweaking this data for the sake of a minor convenience.)
- The pound sign (#) and all trailing characters will be stripped. This is intended to make it easy to copy and paste URLs, without worrying if a section link was followed.
- Invalid characters in article names are not stripped, and will generate no errors. You are free to add the article "<>{}:" to your watchlist if you would like.
On projects like wiktionary, where the first letter of titles are not forced to be capitalized, the bot will not perform automatic capitalization either.(This is not yet true, and is considered a bug that will be fixed later.)
Additionally, a comment may be added to every type of watchlist item, by appending the text " # " followed by the item comment. When a change triggers a notification, any comment associated with the corresponding watchlist items will be included in the notification.
Attempting to watch an item on a wiki that does not exist will result in an error.
Usage
To begin using WatchlistBot, send a subscription request to (TBA). The bot should immediately approve this request. (Note that this is not an email address.)
Then simply send the message "help" to the bot for a command summary. The available commands are also documented here.
Commands
about
Display the bot's version and credits.
help
Displays a summary of these commands.
list
Displays all of the articles, users, or networks on your watchlist.
Syntax: list <articles | users | networks>
set
Sets or displays your variables. The following table lists the available variables and describes what they do.
Variable | Type | Default | Description |
---|---|---|---|
language | String | en | The default project language. |
project | String | wikipedia | The default project name. |
Syntax: set [<variable> <setting>]
unwatch
Unwatch an article. See the section Watchlist entry specification for the syntax of the item-specifier parameter.
Syntax: unwatch <article | user | network> item-specifier
unwhitelist
Remove a user from your whitelist. See the section Watchlist entry specification for the syntax of the user-specifier parameter.
Syntax: unwhitelist user-specifier
watch
Watch an article, user, or network. See the section Watchlist entry specification for the syntax of the item-specifier parameter.
(Note that, unlike MediaWiki's watchlist, watching an article does not implicitly watch the article's talk page. You must specifically add talk pages using this same command.)
Syntax: watch <article | user | network> item-specifier [" # " comment]
web
Requests an authorization link to the web-based watchlist management interface. Links will expire after five minutes, and requesting a link will invalidate any previous link. (Note that your session does not expire after five minutes, only the authentication link.)
The web interface allows mass deletion of watchlist items, mass alteration of item comments, single addition of items, and mass addition of items. Item specifiers are parsed according to the same Watchlist entry specification syntax that the bot uses.
whitelist
Whitelist a user, or display your whitelist. Edits by a user on your whitelist will never trigger a notification. See the section Watchlist entry specification for the syntax of the user-specifier parameter.
Syntax: whitelist [user-specifier]
Note on hounding
The ability to watch users and networks should not be construed as an endorsement of hounding. These features are provided to assist the counter-vandalism force when keeping tabs on problematic users or networks. Misuse of these features may lead to revocation of access to the bot.
Google Talk limitations
Messages received on a Google Talk account, when using the interface integrated with Gmail, are limited to 4000 characters. This limitation does not apply to Google Talk users who are using a proper XMPP client, such as Pidgin.
If you are using the Gmail-integrated client and are unable to view your entire watchlist due to this limitation, either use the "web" command documented above, or use an XMPP client instead.
Platform
WatchlistBot runs on Mono, and uses PostgreSQL to maintain watchlists. The XMPP connection is done through agsXMPP. Live article watching is done using code copied from VandalSniper, which uses SmartIrc4net. The web interface is built on the ASP.NET MVC Framework.
Privacy
As the bot developer and operator, I necessarily 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:
- I have no knowledge of your IP address.
- I don't know your Wikipedia account name unless it's part of your IM handle, or you are watching your userpage (and no other userpages).
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. You cannot hold me responsible for any data security breach that may occur, such as the exposure of the contents of your watchlist and/or your IM handle(s).