User:Flcelloguy/Tool/2.0

From Wikipedia, the free encyclopedia

 /*Author: Flcelloguy
 *Program: Flcelloguy's Tool (Stats.java)
 *Version 2.0; released December 07 2005
 *Capabilities: Count edits, break down by namespace, count minor edits and calculate percentage
 *Please leave this block in. 
 *Code from http://en.wikipedia.org/wiki/User:Flcelloguy/Tool
 * [[User:Flcelloguy/Tool]]
 * Permission is granted to distribute freely, provided attribution is granted.
 * Note: To copy and paste, please click edit first and then highlight all, and then copy. I'm having some formatting issues in the "view" mode. Thanks!
 */
 
 import javax.swing.JOptionPane;
 import java.io.BufferedReader;
 import java.io.FileReader;
 import java.util.StringTokenizer;
 import java.io.*;
 import java.util.*;
 //import java.util.FileReader;
 
 public class Stats
 {
         private static int numEdits = 0;
         private static int minorEdits = 0;
         private static int User = 0;
         private static int Category = 0;
         private static int Image_talk= 0;
         private static int Imagew = 0;
         private static int MediaWiki_talk = 0;
         private static int MediaWiki = 0;
         private static int Talk = 0;
         private static int Template_talk = 0;
         private static int Template = 0;
         private static int User_talk = 0;
         private static int Wikipedia_talk = 0;
         private static int Wikipedia = 0;
         private static int Mainspace = 0;
        
        public static void main (String args[]) throws IOException
        {
                JOptionPane.showMessageDialog(null, 
                        "Flcelloguy's Tool \n Designed by Flcelloguy \n Statistics for editcounters", "Welcome!", 
                        JOptionPane.INFORMATION_MESSAGE);
                JOptionPane.showMessageDialog(null, 
                        "Current status: \n Editcount only \n Coming soon: \n Breakdown by namespace" + 
                                "\n User friendly version \n Edit summary usage \n Minor edits usage \n First edit date", "Information", 
                                JOptionPane.INFORMATION_MESSAGE);
                JOptionPane.showMessageDialog(null, 
                        "Number of edits: " + editcount(), "Results",
                                JOptionPane.INFORMATION_MESSAGE);
        }
        
        public static int editcount() throws IOException
        {
                FileReader reader = new FileReader("Input.txt");
                BufferedReader in = new BufferedReader(reader);
                String inputline = "";
                StringTokenizer token;
                
                System.out.println("Computing...");
                while (inputline != null)
                {
                        inputline = in.readLine();
                        if (inputline !=null)
                                token = new StringTokenizer(inputline);
                        else
                                break;
                        for (int i = 1; i<8; i++)
                        {
                                token.nextToken();
                        }
                        String input = token.nextToken();
                        //System.out.println(input);
                        
                  if (input.equals("m"))
                        {
                                minorEdits++;
                                input = token.nextToken();
                        }
                
                        if (input.equals("Wikipedia"))
                                Wikipedia_talk++;
                        else if (input.equalsIgnoreCase("User"))
                                User_talk++;
                        else if (input.equals("Template"))
                                Template_talk++;
                        else if (input.equals("MediaWiki"))
                                MediaWiki_talk++;
                        else if (input.equals("Image"))
                                Image_talk++;
                        else if (input.length()>5 && input.substring(0,5).equals("User:"))
                                User++;
                        else if (input.length()>5 && input.substring(0,5).equals("Talk:"))
                                Talk++;
                        else if (input.length()>6 && input.substring(0,6).equals("Image:"))
                                Imagew++;
                        else if (input.length()>9 && input.substring(0,9).equals("Category:"))
                                Category++;
                        else if (input.length()>9 && input.substring(0,9).equals("Template:"))
                                Template++;
                        else if (input.length()>10 && input.substring(0,10).equals("MediaWiki:"))
                                MediaWiki++;
                        else if (input.length()>10 && input.substring(0,10).equals("Wikipedia:"))
                                Wikipedia++;
                        else
                        {
                                Mainspace++;
                                //System.out.println("Mainspace added: " + input);
                        }
                        
                        numEdits++;
                }
                
                //Prints out statistics
                System.out.println("-------------------");
                System.out.println("Breakdown by namespace:");
                System.out.println("User: " + User);
                System.out.println("User talk: " + User_talk);   
                System.out.println("Category: " + Category);   
                System.out.println("Image: " + Imagew);   
                System.out.println("Image talk: " + Image_talk);   
                System.out.println("MediaWiki: " + MediaWiki);   
                System.out.println("MediaWiki talk: " + MediaWiki_talk);   
                System.out.println("Template: " + Template);   
                System.out.println("Template talk: " + Template_talk);   
                System.out.println("Project: " + Wikipedia);   
                System.out.println("Project talk: " + Wikipedia_talk);   
                System.out.println("Main (articles): " + Mainspace);   
                System.out.println("Article talk: " + Talk);                  
                System.out.println("-------------------");
                System.out.println("Overall statistics: ");
                System.out.println("Total edits: " + numEdits);
                System.out.println("Minor edits: " + minorEdits);
                System.out.println("Percentage of minor edits: " + (int)(((double)minorEdits)/numEdits * 100.0) + "%  *");
                System.out.println("* - percentage is always rounded down to nearest whole number percentage.");
                System.out.println("Percent edit summary: Not available yet.");
                System.out.println("-------------------");
                return numEdits;
        }
 }