User:Subpagination Bot/Task 1

From Citizendium
< User:Subpagination Bot
Revision as of 16:57, 24 September 2007 by imported>Subpagination Bot (Intermediate log (details))
Jump to navigation Jump to search

The bot will go through all articles with a checklist template and convert them to the new CZ:Subpages technology. This is the start of step 4 of CZ:Subpages#A plan for The Big Subpagination.

In case things go wrong, the bot can be stopped by leaving a message on User:Subpagination Bot/Emergency stop. If that does not help, constables can stop it by blocking the account.

Details of the bot

  • The bot goes through all the pages in the main namespace.
  • It skips the page if one of the following conditions is met:
    • The title of the page contains a / (i.e., it's actually a subpage).
    • The page redirects to another page.
    • The page contains {{disambig}} (i.e., it's a disambiguation page).
    • The page is protected.
    • The page is actually Main Page.
    • The page already contains {{subpages}}.
    • The page contains an old template of the form {{subpagesN}} where N is a digit.
    • The talk page does not contain the checklist template.
  • If none of these conditions are met, then the bot converts the article to the subpage forms by going through the following steps (where XXX refers to the name of the article):
    • It creates XXX/Metadata and fills it with the data from the checklist.
    • It removes the checklist from the talk page and adds {{subpages}} at the top.
    • It creates XXX/Approved, containing only {{subpages}}.
    • It creates XXX/Unused, containing only {{subpages}}.
    • It adds {{subpages}} at the top of the article and it removes any categories.
  • To avoid overwhelming the servers, the bot will wait at least one second between reads, ten seconds between writes, and five minutes between every cluster of five writes.

Log

Log of a test run

To give an idea what it does, I ran the bot on the first ten articles starting with a J. The log of this test run follows.

As you can see, there were some errors in the program. After fixing them, I repeated the test run: