User:MilHistBot/AutoStub.cs

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

public class AutoStub {  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 string filename;

private string checkpoint {       StreamReader streamReader = null; string line = null;

Console.WriteLine ("Checkpoint file is " + filename); if (File.Exists (filename)) {           try {               streamReader = new StreamReader (filename); line = streamReader.ReadLine ; }           catch (Exception e)            { bot.Cred.Warning (e.Message); }           finally {               if (null != streamReader) {                   streamReader.Close; }           }        }        Console.WriteLine ("Checkpoint is " + (null == line ? "null" : line)); return line; }

private void checkpoint (string line) {       StreamWriter streamWriter = null; try {           streamWriter = new StreamWriter (filename); streamWriter.WriteLine (line); }       catch (Exception e)        { bot.Cred.Warning (e.Message); }       finally {           if (null != streamWriter) {              streamWriter.Close ; }       }    }

private bool compareClass (string oldClass, string botClass) {       Dictionary 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;

Debug.WriteLine ("\tOriginal: " + template.Text); template.RemoveAll (@"^class$