User:MilHistBot/AutoCheck.cs

using System; using System.Collections.Generic; using System.IO; using System.Text.RegularExpressions; using NDesk.Options;

public class AutoCheck {  private Bot bot;

private int unchanged; private int upgrade; private int newgrade; private int downgrade;

private int max     = 1; private bool debugs = false; private bool force  = false; private bool help   = false; private bool verbose = false; private Dictionary classes;

private bool compareClass (string oldClass, string botClass) {       if (null == classes) {           classes = new Dictionary {               { "Stub",  0 }, { "Start", 1 }, { "List", 1 }, { "C",    2 }, { "CL",   2 }, { "B",    3 }, { "BL",   3 }, };       }

if (oldClass.Equals ("")) {           newgrade++; return true; }

if (! classes.ContainsKey (oldClass)) {           throw new ApplicationException ("unknown class: '" + oldClass + "'"); }

int diff = classes[botClass] - classes[oldClass]; if (0 > diff) {           downgrade++; }       else if (0 == diff) {           unchanged++; return false; }       else if (0 < diff) {           upgrade++; }       return true; }

private void report {       bot.Cred.Showtime (String.Format("{0} articles newly rated, {1} downgraded, {2} upgraded, {3} unchanged - total {4}", newgrade, downgrade, upgrade, unchanged, newgrade + downgrade + upgrade + unchanged)); }

private void autoCheck (Page article, Page talk) {       try {           bot.Cred.Showtime (article.Title); article.Load ; talk.Load ; var template = talk.MilHist.ProjectTemplate; var oldClass = template.Class; var rating  = template.Rating; var botClass = rating.Class;

template.RemoveAll (@"^class$