Jump to content

User:Crazycomputers/WatchlistBot

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Crazycomputers (talk | contribs) at 21:50, 9 February 2012 (Watchlist entry specification: add note about spaces). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
The new web management interface, which simplifies many watchlist operations.

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 types

Article
You will be alerted whenever the article is edited.
User
You will be alerted whenever the user performs an edit.
Network
You will be alerted whenever any IP address in the network performs an edit.
Whitelist
Edits performed by a whitelisted user will never be reported to you, and override all other types of watchlist entries.

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 less than 16 bits in length 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. (Note the spaces on either side of the number sign.) 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 watchlistbot@chrishowie.com in your XMPP client. 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>]

stats

Displays some operating statistics:

  • When the bot was last restarted.
  • How many notifications have been sent out since the bot restarted.
  • Whether the IRC connection is currently up, how long it has been up, and how many changes were processed during the current connection, as well as since the bot restarted.
  • How long each notifier has been up. ("Up" in this context usually means "connected to the server." So if the XMPP notifier is down, that means that the bot isn't connected to its XMPP server. Which you would never see unless you were running this command from a different chat network, of course.)

Syntax: stats

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]

Reporting problems

Unavailability

If the bot is not online, reporting the problem to any of my talk pages is unlikely to generate a swift response from me since I won't receive any messages alerting me about your report. The best way to reach me would be via one of my published real-time communication methods.

There is no need to report any downtime to me unless it exceeds a minute or two, since I will frequently restart the bot to apply updates. Usually this only takes a few seconds. If longer downtime is required, I will change the status message at the top of this page.

Bugs

Use this page's talk page to report any bugs. If possible, please include the commit identifier, which you can obtain by running the "about" command or by visiting the web interface. (If the bot is down, the web interface will still usually respond.) This will help me reproduce the problem in my test environment against the specific version you were using at the time.

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.

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.

Platform

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:

  1. I have no knowledge of your IP address.
  2. 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).