User:HagermanBot~enwikiversity

Tasks

 * 1) Place the unsigned template on a talk page and requested pages when a user adds a comment and forgets to sign.
 * 2) Place the tilde template on the user's talk page when the user leaves two unsigned comments in a rolling 24-hour period.

Sandbox
If you'd like to test the behavior of the bot, you may use the HagermanBot sandbox.

Problems
If the bot leaves an unsigned template on an edit you made when it shouldn't have done so, please notify Hagerman making sure to include the page. Feel free to remove the unsigned template, it won't put it back in the same spot twice.

Turning it On
The bot is enabled by default for all pages under the talk namespaces. If you want the bot to monitor a talk page, you don't need to do anything. However, if you want it to monitor a non-talk page, place the page in the appropriate category and the bot will begin marking unsigned comments. It may take up to 5 minutes for the bot to begin signing comments after the category is applied.
 *  Category:Non-talk pages automatically signed by HagermanBot ]]  This will mark any unsigned comments on the page the category was applied to.
 *  Category:Non-talk pages with subpages automatically signed by HagermanBot ]]  This will mark any unsigned comments on the subpages of the page the category was applied to. It will not mark comments on the parent unless it includes both categories.

Turning it Off
If you want to turn it off, this bot supports three functions for disabling the engine:
 * One-Time: If you think an edit you are making to a talk page might be interpreted as a comment when it shouldn't be, putting !NOSIGN! somewhere in your edit summary will cause the bot to ignore your edit.
 * Article Permanent: If you do not wish to have the bot monitor a specific talk page, putting &lt;!--Disable HagermanBot--&gt; somewhere on the page will cause the bot to stop watching the page until the flag is removed. Note that it must be placed directly on your talk page and not on a template that is transcluded.
 * User Permanent: If you do not wish to have the bot mark unsigned comments left by you, you may follow the instructions at opting out.

Architecture

 * Interface: Windows Service
 * Programming Language: Visual C# .NET
 * Libraries Used: WikiFunctions.dll from the AWB project.

Conditions
In order for the bot to classify an edit as a new unsigned comment, the following conditions must be met:
 * The edit must fall under the Talk or User Talk namespace or an article with a special category.
 * The edit must only contain the addition of new lines and those lines must all be adjacent.
 * The edit must not already contain a signature in the added lines. A signature is determined by either the presence of a link to the User namespace, a link to the User talk namespace, or the string "(UTC)".
 * The edit must either create a new heading or exist as an indent under an existing heading.
 * The edit must not contain a template.

Monitoring
All recent changes to watched pages are immediately placed in a queue for the signing engine. When the page reaches the end of the queue, the signing engine retrieves the page diff from Wikipedia and analyzes the changes to determine whether it needs to mark it as an unsigned comment. During most times of the day, there are only one or two pages in front of it, and an unsigned template is marked a few seconds after the page is initially saved. However, during extremely busy time periods, the queue can have several hundred pages in front of it, and as a result, it might take up to 10 minutes for a comment to get signed. The queue operates on the FIFO principle, no prioritization is applied.

Clones
The following Wikimedia projects, at some point, ran a clone of HagermanBot:
 * English Wikipedia