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 19:56, 2 August 2010 (web). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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, underscores are replaced with spaces, and the first letter is capitalized. 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.)
  • 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.

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. This syntax is not recommended for watching users, because the leading user namespace will not be stripped (since it is different in every language).

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