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 22:52, 1 August 2010 (first revision). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

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.)

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/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 watch command description for item parsing rules.

Syntax: unwatch <article | user | network> item-specifier

watch

Watch an article, user, or network. (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.)

Article and user names are normalized according to most of the standard MediaWiki rules. For example, leading and trailing whitespace is removed, consecutive spaces are collapsed into one, and underscores are replaced with spaces. The notable exceptions to the standard rules are:

  • 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.)
  • 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.

When watching a user, any leading "User:" will be stripped. This is admittedly English-centric, and will probably be removed in a later version.

For articles and users, the following syntaxes are accepted:

  • Just the article or user name. Your language and project variables will be used to determine which project to watch.
  • "{language.project} item". For example, watching the article "{en.wikipedia} Cheese" will watch the article Cheese.
  • A URL to the article or user in question. (For users this will only work reliable on English-speaking projects. This may be fixed in a future release, or changed so that URLs may not be used to specify users.)

For networks, standard CIDR notation is accepted. The network identifier must be at least 16 bits to prevent bot spam or excessive resource consumption.

Currently, invalid languages or projects may be specified, such as "{foo.bar}". These items will still be added to your watchlist, but will not have any effect.

A comment may be added to each 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.

Syntax: watch <article | user | network> item-specifier [" # " comment]

web

Requests an authorization link to the web-based watchlist management interface. Links will expire after a certain amount of time, and requesting a link will invalidate any previous link.

The web interface allows mass deletion of watchlist items, single addition of items, and mass addition of items. Item specifiers are parsed the same way the bot parses them, so you may use simple article names (your bot variables will still be used to determine the project), the "{language.project} item" syntax, or full URLs.

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

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 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).