User talk:Oskar Sigvardsson/List of administrators

Latest comment: 10 years ago by MediaWiki message delivery in topic Request for comment

User:NoSeptember asked on the reference desk if he could get his list of admins sorted. I quickly wrote some java code to do just that. I'm planning on updating it every month from his list, if I forget, please remind me :)

Here is the code I used (which is public domain, btw):

import java.io.*;
import java.util.Arrays;
import java.util.Date;
import java.util.Vector;
import java.util.Comparator;

public class Sorter {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {

		BufferedReader in = new BufferedReader(new FileReader("/home/oskar/admins.txt"));
		Vector admins = new Vector();
		String s;
		
		while((s = in.readLine())!= null) {
			if(s.indexOf("admin-abbr")>0)
				admins.add(new SimpleLine(s));
		}
		
		Object[] list = admins.toArray();
		Arrays.sort(list, new Comparator() {
			public int compare(Object o1, Object o2) {
				return ((SimpleLine)o1).getDate().compareTo(((SimpleLine)o2).getDate());
			}
			public boolean equals(Object obj) {
				return true;
			}
		});
		
		PrintStream printer = new PrintStream(new FileOutputStream("/home/oskar/admins-processed.txt"));
		
		for(int i = 0; i<list.length; i++)
			//System.out.println(((SimpleLine)list[i]).getLine());
			printer.println(((SimpleLine)list[i]).getLine());
		System.out.println("Done!");
		System.out.println(list.length + " lines processed");
	}

}

class SimpleLine {
	
	String line;
	Date date;
	
	public SimpleLine(String line)  {
		this.line = line;
		String substring = line.substring(line.indexOf("'''")+3, line.length());
		substring = substring.substring(0,substring.indexOf("'''")); 
		boolean loop = false;
		boolean loop2 = false;
		
		do {
			try {
				date = new Date(substring);
				loop = false;
			} catch(Exception e) {
				if(loop) {
					if(!loop2) {
						substring = substring.substring(0, substring.length()-2);
						substring += " Jan";
						loop2 = true;
					} else {
					e.printStackTrace();
					System.out.println(line);
					System.out.println(substring);
					System.exit(0);
					}
				}
				substring += " 1";
				loop = true;
			}
		} while(loop);
	}
	
	public String getLine() {
		return line;
	}
	
	public Date getDate() {
		return date;
	}
}

Note: this is BAAAAAAD code. Note the enourmous stupidity in using a variable with the name "substring". You get statements like

substring = substring.substring(0, substring.length()-2);

and

substring = substring.substring(0,substring.indexOf(""));

Let that be a lesson to all you kids! I literally whipped it up in a couple of minutes, so therefore it is a little sloppy. Please don't judge my l33t programming skills on this ;). The nested do/while-try/catch-ifs also are an especially filthy way of doing things.

Still, it works and it took no time to do, and that was all I wanted. Oskar 20:18, 15 October 2006 (UTC)Reply

Request for comment

edit

Hello there, a proposal regarding pre-adminship review has been raised at Village pump by Anna Frodesiak. Your comments here is very much appreciated. Many thanks. Jim Carter through MediaWiki message delivery (talk) 06:47, 28 May 2014 (UTC)Reply