/*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
 * <nowiki>[[User:Flcelloguy/Tool]]</nowiki>
 * 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.startsWith("User:"))
 				User++;
 			else if (input.length()>5 && input.startsWith("Talk:"))
 				Talk++;
 			else if (input.length()>6 && input.startsWith("Image:"))
 				Imagew++;
 			else if (input.length()>9 && input.startsWith("Category:"))
 				Category++;
 			else if (input.length()>9 && input.startsWith("Template:"))
 				Template++;
 			else if (input.length()>10 && input.startsWith("MediaWiki:"))
 				MediaWiki++;
 			else if (input.length()>10 && input.startsWith("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;
 	}
 }