Programming Turning Battle Logs into Usage Stats

Antar

is a Battle Server Administratoris a Programmeris a Super Moderatoris a Community Contributor
Official Data Miner
#1
As I'm sure many of you have seen, I recently took a crack at generating usage stats.

Unlike my predecessors, however, the only raw data I was able to access were the battle logs stored on the server. These logs, which are pretty much identical to the ones that get generated client-side, leave a lot to be desired--they only show the pokemon that appeared in the battle itself, they don't contain natures/items/EV spreads/movesets, and they don't tell the players' current ranking.

Also, they're in HTML. Great for turning into warstories, pretty annoying for trying to cull data from.

But, nonetheless, I managed to write a few python scripts which turn these battle logs into usage stats (what we're going to end up DOING with these stats is a question for another thread), and I'm posting them here. Feel free to make suggestions as to how to modify them or improve them--I'll need all the help I can get.
 

Antar

is a Battle Server Administratoris a Programmeris a Super Moderatoris a Community Contributor
Official Data Miner
#2
Course of Action

To turn battle logs into usage stats, here's what needs to be done:

  1. Identify the tier and whether the battle was rated.
  2. Make sure the battle meets with any arbitrary criteria we decide upon ("longer than 5 turns," "player has rating above 1000", "loser said gg after the battle...")
  3. Find all lines beginning with <div class="SendOut">
  4. Identify the name of the trainer and the species of the pokemon sent out (THANK GOD we play with Species clause). This is a bit tricky because the string is different depending on whether the pokemon was nicknamed or not.
  5. Remove redundant entries (to account for switching)
  6. Write the species of all pokemon used in the battle to a file (write the species name twice if both trainers used it, obviously).
  7. Make another script. This one will take that giant file and simply tally each pokemon's usage (doing this step separately, rather than keeping a running tally, prevents racing conditions if you're parallelizing the workload).
  8. Sort the usage stats.
  9. PROFIT!!!
 

Antar

is a Battle Server Administratoris a Programmeris a Super Moderatoris a Community Contributor
Official Data Miner
#3
LogReader.py

This script will take a battle log (server version 1.0.23) and write the names of all pokemon used in the battle to a file corresponding to the battle's tier.

Usage:
Code:
python LogReader.py "name-of-log-file.html"
Source:
Code:
import string
import sys
filename = str(sys.argv[1])
file = open(filename)
log = file.readlines()

if (len(log) < 15):
	sys.exit()
#determine tier
if log[2][0:25] != '<div class="TierSection">':
	sys.exit()
tier = log[2][string.find(log[2],"</b>")+4:len(log[2])-7]
if log[3][0:19] == '<div class="Rated">':
	rated = log[3][string.find(log[3],"</b>")+4:len(log[3])-7]
else:
	if log[5][0:19] == '<div class="Rated">':
		rated = log[5][string.find(log[5],"</b>")+4:len(log[5])-7]
	else:
		print "Can't find the rating"
		for line in range(0,15):
			print line
		sys.exit()

#make sure the battle lasted at least six turns (to discard early forfeits)
longEnough = False
for line in log:
	if line == '<div class="BeginTurn"><b><span style=\'color:#0000ff\'>Start of turn 6</span></b></div>\n':
		longEnough = True
		break
if longEnough == False:
	sys.exit()

#trainer = []
#species = []
ts = [] #handle in one array to allow for sorting
#find all "sent out" messages
for line in range(6,len(log)):
	if log[line][0:21] == '<div class="SendOut">':
		ttemp = log[line][21:string.find(log[line],' sent out ')]

		#determine whether the pokemon is nicknamed or not
		if log[line][len(log[line])-8] == ')':
			stemp = log[line][string.rfind(log[line],'(')+1:len(log[line])-8]
		else:
			stemp = log[line][string.rfind(log[line],'sent out ')+9:len(log[line])-8]

		#determine whether this entry is already in the list
		match = 0
		for i in range(0,len(ts)):
			if (ts[i][0] == ttemp) & (ts[i][1] == stemp):
				match = 1
				break
		if match == 0:
			ts.append([ttemp,stemp])

ts=sorted(ts, key=lambda ts:ts[0])

outname = "Raw/"+tier+" "+rated+".txt"
outfile=open(outname,'a')

outfile.write(str(ts[0][0]))
outfile.write("\n")
i=0
while (ts[i][0] == ts[0][0]):
	outfile.write(str(ts[i][1]))
	outfile.write("\n")
	i = i + 1
outfile.write("***\n")
outfile.write(str(ts[len(ts)-1][0]))
outfile.write("\n")
for j in range(i,len(ts)):
	outfile.write(str(ts[j][1]))
	outfile.write("\n")

outfile.write("---\n")
outfile.close()
Here's a new version that does quite a bit more--this one identifies not only usage but culls data for other "pokemetrics." It does this by keeping track of all matchups in a battle and the outcome of that matchup.

Code:
import string
import sys
filename = str(sys.argv[1])
file = open(filename)
log = file.readlines()

if (len(log) < 15):
	sys.exit()

oldWay = 1
#determine tier
if log[2][0:25] == '<div class="TierSection">':
	tier = log[2][string.find(log[2],"</b>")+4:len(log[2])-7]

	if log[3][0:19] == '<div class="Rated">':
		rated = log[3][string.find(log[3],"</b>")+4:len(log[3])-7]
	else:
		if log[5][0:19] == '<div class="Rated">':
			rated = log[5][string.find(log[5],"</b>")+4:len(log[5])-7]
		else:
			print "Can't find the rating for "+filename
			for line in range(0,15):
				print log[line]
			sys.exit()
else:
	if log[5][0:25] != '<div class="TierSection">':
		print "Can't find the tier for "+filename
		sys.exit()
	tier = log[5][string.find(log[5],"</b>")+4:len(log[5])-7]
	if log[6][0:19] == '<div class="Rated">':
		rated = log[6][string.find(log[6],"</b>")+4:len(log[6])-7]
	else:
		if log[8][0:19] == '<div class="Rated">':
			rated = log[8][string.find(log[8],"</b>")+4:len(log[8])-7]
		else:
			print "Can't find the rating for "+filename
			for line in range(0,15):
				print log[line]
			sys.exit()

#make sure the battle lasted at least six turns (to discard early forfeits)
longEnough = False
for line in log:
	if line == '<div class="BeginTurn"><b><span style=\'color:#0000ff\'>Start of turn 6</span></b></div>\n':
		longEnough = True
		break
if longEnough == False:
	sys.exit()

#get info on the trainers & pokes involved
ts = []
skip = 0
if oldWay == 0:
	for line in range(1,len(log)):
		if log[line][0:19] == '<div class="Teams">':
			for x in range(0,2):
				trainer = log[line+x][50:string.rfind(log[line+x],"'s team:")]
				if string.find(trainer,"send out") > -1:
					print trainer+" is a dick."
					sys.exit()
				stemp = ""
				for i in range(string.rfind(log[line+x],"</span></b>")+11,len(log[line+x])):
					if log[line+x][i:i+3] == ' / ':
						ts.append([trainer,stemp])
						stemp=""
						skip = 3
					if log[line+x][i] == '<':
						break
					if skip > 0:
						skip=skip-1
					else:
						stemp = stemp+log[line+x][i]
				ts.append([trainer,stemp])
			break

if (line == len(log)) or oldWay == 1: #it's an old log, so find pokes the old way
	#find all "sent out" messages
	for line in range(5,len(log)):
		if log[line][0:21] == '<div class="SendOut">':
			ttemp = log[line][21:string.find(log[line],' sent out ')]
			#determine whether the pokemon is nicknamed or not
			if log[line][len(log[line])-8] == ')':
				stemp = log[line][string.rfind(log[line],'(')+1:len(log[line])-8]
			else:
				stemp = log[line][string.rfind(log[line],'sent out ')+9:len(log[line])-8]

			#determine whether this entry is already in the list
			match = 0
			for i in range(0,len(ts)):
				if (ts[i][0] == ttemp) & (ts[i][1] == stemp):
					match = 1
					break
			if match == 0:
				ts.append([ttemp,stemp])
	ts=sorted(ts, key=lambda ts:ts[0])
	#gotta fill in the gaps
	i=0
	while (ts[i][0] == ts[0][0]):
		i=i+1
	if i<6:
		for j in range(i,6):
			ts.append([ts[0][0],"???"])
	ts=sorted(ts, key=lambda ts:ts[0])
	if len(ts)<12:
		i=len(ts)
		for j in range(i,12):
			ts.append([ts[6][0],"???"])

#find where battle starts
active = [-1,-1]
t=0
for line in range(1,len(log)):
	if log[line][0:21] == '<div class="SendOut">':
		for x in range(0,2):
			#ID trainer
			trainer = log[line+x][21:string.find(log[line+x],' sent out ')]
			if trainer == ts[0][0]:
				t=0
			else:
				t=1
			#it matters whether the poke is nicknamed or not
			if log[line+x][len(log[line+x])-8] == ')':
				species = log[line+x][string.rfind(log[line+x],'(')+1:len(log[line+x])-8]
			else:
				species = log[line+x][string.rfind(log[line+x],'sent out ')+9:len(log[line+x])-8]
			for i in range(0,6):
				if species == ts[6*t+i][1]:
					active[t] = i
					break
		break
start = line +2

#metrics get declared here
turnsOut = [] #turns out on the field (a measure of stall)
matchups = [] #poke1, poke2, what happened

for i in range(0,12):
	turnsOut.append(0)

#parse the damn log

#flags
roar = 0
uturn = 0
ko = 0
switch = 0
doubleSwitch = -1
uturnko = 0
ignore = 0

for line in range(start,len(log)):
	#identify what kind of message is on this line
	linetype = log[line][12:string.find(log[line],'">')]

	if linetype == "BeginTurn":
		#reset for start of turn
		roar = uturn = switch = ko = uturnko = 0
		doubleSwitch = -1

		#Mark each poke as having been out for an additional turn
		turnsOut[active[0]]=turnsOut[active[0]]+1
		turnsOut[active[1]+6]=turnsOut[active[1]+6]+1

	if linetype == "UseAttack": #check for Roar, etc.; U-Turn, etc.
		#identify move
		move = log[line][string.rfind(log[line],"'>")+2:len(log[line])-19]
		if move in ["Roar","Whirlwind","Circle Throw","Dragon Tail"]:
			roar = 1
		elif move in ["U-Turn","Volt Switch","Baton Pass"]:
			if line+3 < len(log):
				if log[line][12:string.find(log[line],'">')] == "SendBack":
					uturn = 1

	elif linetype == "ItemMessage": #check for Red Card, Eject Button
		#search for relevant items
		if string.rfind(log[line],"Red Card") > -1:
			roar = 1
		elif string.rfind(log[line],"Eject Button") > -1:
			uturn = 1

	elif linetype == "Ko": #KO
		ko = ko+1
		
		#make sure it's not the end of the battle
		o = p = 0
		if line+2 < len(log):
			o = 1
		if line+1 < len(log):
			p = 1
		if log[line+2*o][12:string.find(log[line+2*o],'">')] == "BattleEnd":
			pokes = [ts[active[0]][1],ts[active[1]+6][1]]
			matchup=pokes[0]+' vs. '+pokes[1]+': '
			if ko == 1:
				matchup = matchup + ts[active[t]+6*t][1] + " was KOed"
			elif ko == 2:
				matchup = matchup + "double down"
			else:
				matchup = matchup + "no clue what happened"
			matchups.append(matchup)
		elif log[line+p][12:string.find(log[line+p],'">')] == "SendBack":
			uturnko=1
	elif linetype == "SendBack": #switch out
		switch = 1
	elif linetype == "SendOut":
		#ID trainer
		trainer = log[line][21:string.find(log[line],' sent out ')]
		if trainer == ts[0][0]:
			t=0
		else:
			t=1
		
		#make sure it's not a double-switch
		o = 0
		if line+2 < len(log):
			o = 1
		if ignore == 1:
			ignore = 0
		elif (o == 1) and (log[line+2*o][12:string.find(log[line+2*o],'">')] == "SendBack"):
			doubleSwitch = active[t]+t*6
		else:
			#close out old matchup
			if doubleSwitch > -1:
				pokes = [ts[active[0]][1],ts[doubleSwitch][1]]
			else:
				pokes = [ts[active[0]][1],ts[active[1]+6][1]]
			
			pokes=sorted(pokes, key=lambda pokes:pokes)
			matchup=pokes[0]+' vs. '+pokes[1]+': '
			if doubleSwitch > -1:
				matchup = matchup + "double switch"
			elif (uturnko == 1):
				matchup = matchup + ts[active[(t+1)%2]+((t+1)%2)*6][1] + " was u-turn KOed"
				ignore = 1
			elif ko == 1:
				matchup = matchup + ts[active[t]+6*t][1] + " was KOed"
			elif ko == 2:
				matchup = matchup + "double down"
				ignore = 1
			elif roar == 1:
				matchup = matchup + ts[active[t]+6*t][1] + " was forced out"
			elif (uturn == 1) or (switch == 1):
				matchup = matchup + ts[active[t]+6*t][1] + " was switched out"
			else:
				matchup = matchup + "no clue what happened"
			matchups.append(matchup)

		#new matchup!
		uturn = roar = 0
		#it matters whether the poke is nicknamed or not
		if log[line][len(log[line])-8] == ')':
			species = log[line][string.rfind(log[line],'(')+1:len(log[line])-8]
		else:
			species = log[line][string.rfind(log[line],'sent out ')+9:len(log[line])-8]
		for i in range(0,6):
			if species == ts[6*t+i][1]:
				active[t] = i
				break
outname = "Raw/"+tier+" "+rated+".txt"
outfile=open(outname,'a')

outfile.write(str(ts[0][0]))
outfile.write("\n")
i=0
while (ts[i][0] == ts[0][0]):
	outfile.write(ts[i][1]+" ("+str(turnsOut[i])+")\n")
	i = i + 1
outfile.write("***\n")
outfile.write(str(ts[len(ts)-1][0]))
outfile.write("\n")
for j in range(i,len(ts)):
	outfile.write(ts[j][1]+" ("+str(turnsOut[j])+")\n")
outfile.write("@@@\n")
for line in matchups:
	outfile.write(line+"\n")
outfile.write("---\n")
outfile.close()
2011/09/14 -- Instead of just writing the species names, this version gives the trainer's names, too, and divides up the pokemon used in the battle by their teams.
 

Antar

is a Battle Server Administratoris a Programmeris a Super Moderatoris a Community Contributor
Official Data Miner
#4
StatCounter.py

Once the LogReader has been run over the set of battle logs, you're left with a bunch of pokemon names and not much else. StatCounter.py tallies these lists and turns them into usage stats.

I'm planning to modify this script soon to have the end result appear in a forum-friendly option, rather than the excel-friendly csv it currently does.

Usage:
Code:
python StatCounter.py "Raw/[Tier].txt"
where [Tier] is the tier you want to generate the stats for, e.g. "Raw/Standard OU Rated.txt"

Source:
Code:
import string
import sys

file = open("pokemons.txt")
pokelist = file.readlines()
file.close()

lsnum = []
lsname = []
for line in range(0,len(pokelist)):
	lsnum.append(pokelist[line][0:str.find(pokelist[line],':')])
	lsname.append(pokelist[line][str.find(pokelist[line],' ')+1:len(pokelist[line])])
filename = str(sys.argv[1])
file = open(filename)
species = file.readlines()
battleCount = 0
teamCount = 0
counter = [0 for i in range(len(lsnum))]
trainerNextLine=True
for entry in range(0,len(species)):
	found = False
	if trainerNextLine:
		trainer = species[entry]
		trainerNextLine = False
		ctemp = []
	else:
		if species[entry] == "***\n" or species[entry] == "---\n":
			trainerNextLine = True
			#decide whether to count the team or not
			#if you were going to compare the trainer name against a database,
			#you'd do it here.
			if len(ctemp) == 6: #only count teams with all six pokemon
				for i in ctemp:
					counter[i] = counter[i]+1.0 #rather than weighting equally, we
					#could use the trainer ratings db to weight these... 
				teamCount = teamCount+1
			
			if species[entry] == "---\n":
				battleCount=battleCount+1
		else:
			for i in range(0,len(lsnum)):
				if species[entry] == lsname[i]:
					ctemp.append(i)
					found = True
					break
			if not found:
				print species[entry]+" not found!"
				sys.exit()
total = sum(counter)

#for appearance-only form variations, we gotta manually correct (blegh)
counter[172] = counter[172] + counter[173] #spiky pichu
for i in range(507,534):
	counter[202] = counter[202]+counter[i] #unown
counter[352] = counter[352] + counter[553] + counter[554] + counter[555] #castform--if this is an issue, I will be EXTREMELY surprised
counter[413] = counter[413] + counter[551] + counter[552] #burmy
counter[422] = counter[422] + counter[556]  #cherrim
counter[423] = counter[423] + counter[557] #shellos
counter[424] = counter[424] + counter[558] #gastrodon
counter[615] = counter[615] + counter[616] #basculin
counter[621] = counter[621] + counter[622] #darmanitan
counter[652] = counter[652] + counter[653] + counter[654] + counter[655] #deerling
counter[656] = counter[656] + counter[657] + counter[658] + counter[659] #sawsbuck
counter[721] = counter[721] + counter[722] #meloetta
for i in range(507,534):
	counter[i] = 0
counter[173] = counter[553] = counter[554] = counter[555] = counter[551] = counter[552] = counter[556] = counter[557] = counter[558] = counter[616] = counter[622] = counter[653] = counter[654] = counter[655] = counter[657] = counter[658] = counter[659] = counter[722] = 0

#sort by usage
pokes = []
for i in range(0,len(lsname)):
	pokes.append([lsname[i][0:len(lsname[i])-1],counter[i]])
pokes=sorted(pokes, key=lambda pokes:-pokes[1])

print " Total battles: "+str(battleCount)
print " Total teams: "+str(teamCount)
print " Total pokemon: "+str(total)
print " + ---- + --------------- + ------ + ------- + "
print " | Rank | Pokemon         | Usage  | Percent | "
print " + ---- + --------------- + ------ + ------- + "
for i in range(0,len(pokes)):
	if pokes[i][1] == 0:
		break
	print ' | %-4d | %-15s | %-6d | %6.3f%% |' % (i+1,pokes[i][0],pokes[i][1],100.0*pokes[i][1]/teamCount)


#csv output
#for i in range(len(lsnum)):
#	if (counter[i] > 0):
#		print lsnum[i]+","+lsname[i][0:len(lsname[i])-1]+","+str(counter[i])+","+str(round(100.0*counter[i]/battleCount/2,5))+"%"
2011/09/14 -- Updated for compatibility with new LogReader.py (and to make use of the new data). Also, this implementation only counts teams with six pokemon (but you can comment that part out quite easily).


Code:
import string
import sys

file = open("pokemons.txt")
pokelist = file.readlines()
file.close()

lsnum = []
lsname = []
for line in range(0,len(pokelist)):
	lsnum.append(pokelist[line][0:str.find(pokelist[line],':')])
	lsname.append(pokelist[line][str.find(pokelist[line],' ')+1:len(pokelist[line])])
filename = str(sys.argv[1])
file = open(filename)
species = file.readlines()
battleCount = 0
counter = [0 for i in range(len(lsnum))]
for entry in range(0,len(species)):
	if species[entry] == "---\n":
		battleCount=battleCount+1
	else:
		for i in range(0,len(lsnum)):
			if species[entry] == lsname[i]:
				counter[i]=counter[i]+1
				break
total = sum(counter)

#for appearance-only form variations, we gotta manually correct (blegh)
counter[172] = counter[172] + counter[173] #spiky pichu
for i in range(507,534):
	counter[202] = counter[202]+counter[i] #unown
counter[352] = counter[352] + counter[553] + counter[554] + counter[555] #castform--if this is an issue, I will be EXTREMELY surprised
counter[413] = counter[413] + counter[551] + counter[552] #burmy
counter[422] = counter[422] + counter[556]  #cherrim
counter[423] = counter[423] + counter[557] #shellos
counter[424] = counter[424] + counter[558] #gastrodon
counter[615] = counter[615] + counter[616] #basculin
counter[621] = counter[621] + counter[622] #darmanitan
counter[652] = counter[652] + counter[653] + counter[654] + counter[655] #deerling
counter[656] = counter[656] + counter[657] + counter[658] + counter[659] #sawsbuck
counter[721] = counter[721] + counter[722] #meloetta
for i in range(507,534):
	counter[i] = 0
counter[173] = counter[553] = counter[554] = counter[555] = counter[551] = counter[552] = counter[556] = counter[557] = counter[558] = counter[616] = counter[622] = counter[653] = counter[654] = counter[655] = counter[657] = counter[658] = counter[659] = counter[722] = 0

print "Total battles: "+str(battleCount)
print "Total pokemon: "+str(total)
for i in range(len(lsnum)):
	if (counter[i] > 0):
		print lsnum[i]+","+lsname[i][0:len(lsname[i])-1]+","+str(counter[i])+","+str(round(100.0*counter[i]/battleCount/2,5))+"%"
This version only counts teams where the user had a rating greater than or equal to 1337 at the time I pulled the player rankings. An example "ranking.txt" is included below.

Usage:
Code:
python StatCounter1337.py Raw/[Tier].txt
Sample "rankings.txt" (all this info is publicly available on the Smogon server, so I don't feel bad about posting it):
Code:
1	ojama	1629
2	jamy	1601
3	forblaze	1577
4	alura	1546
5	kfljqoiugqr	1540
6	marcelodk	1529
7	-derk-	1525
8	achilles steel	1511
9	_fable_	1499
10	wilson46	1490
11	dqryhghtty	1489
12	emeral	1484
13	walrusman	1484
14	- ninjaswag -	1475
15	mynism	1472
16	carloo	1469
17	perroflauta -	1468
18	asdegwasfafwe	1464
19	machete	1456
20	dc	1452
21	lizardman	1452
22	quentin tarantino	1444
23	jynn	1443
24	-who	1439
25	nigger4life	1436
26	old habits die hard	1436
27	migrain	1435
28	bluestarformod	1433
29	[sky] chapolin	1432
30	truth lies	1432
31	benis	1431
32	my_luck_stinks	1430
33	betterthanfolg	1429
34	juanela	1429
35	sturm	1425
36	ziah	1425
37	asdasdasd	1421
38	thrall of demogorgon	1420
39	grimm70	1418
40	meat grinder	1418
41	macbeth	1417
42	77killer	1416
43	yobeto	1415
44	sandstreamer	1414
45	alexthephantom	1413
46	mostwanted	1410
47	blue eyess	1409
48	schweinsteiger	1408
49	cesc fabregas.	1400
50	delta 2777	1400
51	fortuna	1396
52	gator	1396
53	bkc	1395
54	mbh	1390
55	anarmt	1389
56	itzgator	1389
57	blue star test	1387
58	jawbreaker	1385
59	gatorz	1383
60	selaphiel	1383
61	shrang	1383
62	gatorade	1381
63	emelianenko	1380
64	patolegend	1380
65	chengu	1378
66	ashworth	1375
67	dyprax	1375
68	gym leader morty	1375
69	datguy	1373
70	boss life	1372
71	tofnohazardswtf	1372
72	novacane novacane	1370
73	rachel starr	1368
74	mbh.	1366
75	roxou	1366
76	akaye47	1364
77	apex	1364
78	kidsexchange	1363
79	lutin	1362
80	js second alt	1361
81	tyrogue	1361
82	bristlepine	1360
83	mbh-	1360
84	wirk	1360
85	thefourthchaser	1359
86	tsu	1359
87	juvenile	1356
88	fmp786	1355
89	blue star	1354
90	m.e.	1354
91	white thor	1353
92	kyogre547	1352
93	crametrain	1351
94	earthworm	1351
95	chronic	1350
96	princess peach	1350
97	jrrrrrrr	1347
98	stuntest	1347
99	dusknoirs	1345
100	ohsnapppp	1345
101	blarajan	1344
102	fried rhys	1344
103	lightz911	1344
104	m.k draco	1344
105	sjcrew	1344
106	venezuela rocks	1344
107	cacaroto	1343
108	sasukito	1343
109	symphonyx64	1343
110	car ramrod	1342
111	nror	1342
112	suhnny	1341
113	woodchuck	1341
114	_gold_	1340
115	greenskies	1340
116	metallix z	1340
117	ijustsuck	1339
118	kaos2	1339
119	the kyle	1339
120	cool kid	1337
121	f7 phoenix	1337
122	left brain	1337
123	sandmanlulz	1337
124	thalegend	1336
125	x5dragon	1336
126	taylor	1333
127	tjacks	1332
128	motagua	1331
129	the dog days	1331
130	chimpakt	1330
131	typhon	1328
132	[vet]rfranklinz	1327
133	lebronjames	1327
134	jht	1326
135	krack	1326
136	boogeyman	1325
137	lady rose	1324
138	raikiri.	1324
139	on the beach	1323
140	without sin	1322
141	squirrel	1321
142	wings.	1321
143	sizzirp	1320
144	toshimelonhead	1319
145	broken condom	1318
146	kuduro	1318
147	leitao	1318
148	pearl	1318
149	tom jobim	1318
150	-hbk-	1316
151	alex walls	1316
152	jimera0	1316
153	brbuzines	1315
154	flame of faith	1314
155	tito	1314
156	the wonder years	1313
157	-bat	1312
158	saijo	1312
159	silentrevolver	1312
160	umbreon91	1312
161	[fsky] theebay	1311
162	mmf	1311
163	not in love	1311
164	alirrath	1309
165	themaskedmarauder	1309
166	i dun get it	1308
167	letsdothis	1308
168	supahgassy	1308
169	valkyriev9	1308
170	dreiful	1307
171	tacos	1307
172	datyuof	1306
173	hana-auta sanchou	1306
174	magister vulcan	1306
175	celebi_vor	1305
176	-mass.destruction	1304
177	-wilson46	1304
178	baggy guy	1304
179	hombre	1304
180	kinglypuff	1304
181	gr8astard	1302
182	hype	1302
183	giorgosss	1301
184	dbolt	1300
185	- willr	1299
186	ablon	1299
187	silva-test	1299
188	colette	1297
189	dead i porto alegre	1297
190	koolbeans	1297
191	lady bug	1297
192	sunchuck	1297
193	taco bennett	1296
194	getsum	1295
195	thescarecrow	1295
196	boorego	1294
197	frostfire	1294
198	akimbo slice	1293
199	leolion99066	1293
200	noodlez	1293
201	pokemonking4life2	1293
202	bloodseeker	1291
203	pimflois	1291
204	pokemonking4life	1291
205	rudy290987	1289
206	stone_cold22	1289
207	kevin garrett	1288
208	krasnopesky	1288
209	mr.sexy	1288
210	barkoff	1287
211	cm.	1287
212	free candy	1287
213	wtf dawgg	1287
214	x-avier	1287
215	samos	1286
216	[hp]sekiam	1285
217	eternal	1285
218	chacal	1284
219	taylorgangordie	1284
220	whitequeen	1284
221	ir.	1283
222	fizz	1282
223	molly and polly	1282
224	vcreatorr	1281
225	joshuaelite	1280
226	mcg93	1280
227	yakumo chen	1280
228	darrenpwns	1279
229	moar fire	1279
230	vinc2612	1279
231	dahlia	1278
232	eo ut mortus	1278
233	kd24 no hazards	1278
234	lolcat	1278
235	little g	1277
236	oodles	1277
237	bihi	1276
238	mehbear	1276
239	no no nono	1275
240	promp	1275
241	akyes	1274
242	jesus cristal	1274
243	lunar	1274
244	taxi driver	1274
245	trytestt	1274
246	dialacestarvy	1273
247	ether burst	1273
248	exoh	1273
249	ghelmss	1273
250	based gawd	1272
251	carpe diem	1272
252	downtothetriarii	1272
253	mikey	1271
254	rlols	1271
255	stallypapos	1271
256	[sakura]	1270
257	blinkgram	1270
258	darren_test	1270
259	srk1214	1270
260	the shadow knight	1269
261	time	1268
262	andviet is the best	1267
263	deathxshinigami	1267
264	dunnolol	1267
265	mien	1266
266	[gvv]rairyann	1265
267	accidentalgreed	1265
268	accordion	1265
269	shiny1	1265
270	milliarde	1264
271	nightshift	1264
272	blackshadowwave	1263
273	lcampoy8	1263
274	pizza	1263
275	rankingsystemsucks2	1263
276	yuki nagato	1263
277	ananas	1262
278	marsus43	1262
279	paquito testing	1262
280	raze	1262
281	surfer rosa	1262
282	zzazzdsa806	1262
283	all of the lights	1261
284	wcar	1261
285	[fl]kairyutest	1260
286	doll life	1260
287	superfly	1260
288	jonny7	1259
289	hellpowna	1258
290	sunbeam	1258
291	i dont get pussy	1257
292	of mice and men	1257
293	frezealt	1256
294	naddleh	1256
295	d0nut	1255
296	mindgamesss	1255
297	prince consort	1255
298	zeee	1255
299	delko	1254
300	diana taurasi	1254
301	malkaviano	1254
302	plentyofpaper654	1254
303	random musings	1254
304	ald	1253
305	cobra unit	1253
306	find battle button	1253
307	never ready to leave	1253
308	tsuke	1253
309	walle	1253
310	him	1252
311	pikablue	1252
312	violatic	1252
313	dragondanceswampert	1251
314	omgblahz	1251
315	romeo romeo	1251
316	scraftyusar	1251
317	shotta	1251
318	tapsumbong	1251
319	uxieftw	1251
320	bloo	1250
321	yelworc	1250
322	-godhatesus666	1249
323	perroflauta	1249
324	webby	1249
325	the hitman	1248
326	evil death inc.	1247
327	ginganinja	1247
328	incognito	1247
329	lovely	1247
330	pl0x	1247
331	pokefreak 77	1247
332	shinyazelf	1247
333	[uw] proman	1246
334	testting	1246
335	gay luigi	1245
336	wuachimanolito	1245
337	gbk	1244
338	pokmi	1244
339	skoll	1244
340	c_13	1243
341	dakichi	1243
342	ftckghjg	1243
343	saru-kun	1243
344	silverqueen	1243
345	zephyr	1243
346	captkirby	1242
347	golden sun	1242
348	kyu4bi real	1242
349	lp	1242
350	luxus1	1242
351	poppycock	1242
352	0bey stall	1241
353	avira	1241
354	kidch	1241
355	sexysceptilez	1241
356	sunderful	1241
357	t n t	1241
358	ze da pipa	1241
359	dancing with dragons	1240
360	pepe botella	1240
361	rydro	1240
362	etilqs_kj78hp	1239
363	tm 87	1239
364	- rainswag -	1238
365	hohoho	1238
366	northstar	1238
367	simple as	1238
368	stunt dw	1238
369	theanomaly	1238
370	diego forlan	1237
371	manu	1237
372	phaynom	1237
373	rolling in the deep	1237
374	inviiincible	1236
375	nubagator	1236
376	lucarios	1235
377	tezeon	1235
378	blackout city	1234
379	dead kennedy	1234
380	enterprise	1234
381	farfromhell	1234
382	fuck jewish people	1234
383	guesswhoo	1234
384	missile soldier	1234
385	twannes	1234
386	[tk]boobee	1232
387	arminius	1232
388	higher lights	1232
389	shyriu	1232
390	the ace	1232
391	-alice-	1231
392	ala.	1231
393	bachiste	1231
394	barracuda [test]	1231
395	foster	1231
396	jucaa	1231
397	morty-	1231
398	sarenji	1231
399	darkloic	1230
400	ianh992	1230
401	kgc	1230
402	snes master ki	1230
403	trashheap	1230
404	enz0	1229
405	epp	1229
406	m dragon	1229
407	rolyat	1229
408	save the universe	1229
409	whitesocks	1229
410	zeusmemnon	1229
411	[test]d.gray man	1228
412	keldeo525	1228
413	kirb test	1228
414	love for you	1228
415	razza	1228
416	super mario bro	1228
417	300	1227
418	day tripper	1227
419	dead i rps100	1227
420	dracofire	1227
421	ground zero	1227
422	hkyace19	1227
423	jucaa offense	1227
424	landorus is badass	1227
425	massive attack	1227
426	mike kmz	1227
427	nails	1227
428	sayan	1227
429	so far away.	1227
430	tehyx	1227
431	thousand sunny 2nd	1227
432	blackened	1226
433	dark_azelf	1226
434	head for the hills	1226
435	hihida	1226
436	nite	1226
437	paradox	1226
438	smooth criminal	1226
439	sultan of swing	1226
440	taylor martinez	1226
441	changos	1225
442	cicαdα.	1225
443	docter guy	1225
444	feldt	1225
445	grimm70 rmt	1225
446	hannahh	1225
447	kier	1225
448	mr. l5	1225
449	nachos	1225
450	reitschule	1225
451	seravee	1225
452	smith will	1225
453	heartless	1224
454	linck129	1224
455	notsonoobish	1224
456	sky might fall	1224
457	tydiane	1224
458	vengeanceofvolvagia	1224
459	evil	1223
460	finlygupfk	1223
461	gabriel o goleiro	1223
462	litepearl	1223
463	lockeness	1223
464	mojanbo	1223
465	paquito chocolatero	1223
466	sgv	1223
467	tenente darksector	1223
468	ectoplasma	1222
469	fakehaydentroll	1222
470	lolcat-challenge	1222
471	nari23	1222
472	neil211	1222
473	patop	1222
474	serenade of colors	1222
475	xoxotiffany	1222
476	ace the creator	1221
477	chokmi	1221
478	creepshow	1221
479	jeonjiyoon	1221
480	myso	1221
481	q-ball	1221
482	tobspin	1221
483	ultra alfa	1221
484	butterfreeak	1220
485	cotaman	1220
486	hommer s.	1220
487	ice d yan	1220
488	pasy_g	1220
489	[stats po] eeveeto	1219
490	solar_thunder	1219
491	terminal velocity	1219
492	-kitty.	1218
493	dead i dead	1218
494	exsoldier	1218
495	nambiri	1218
496	steventhegent	1218
497	zeroxjustice	1218
498	addassdadsadsa	1217
499	eggs	1217
500	johnny knoxville	1217
501	bloo_cold22	1216
502	dietrich	1216
503	kenal	1216
504	mmachamp	1216
505	beowulf	1214
506	g-sus	1214
507	generic	1214
508	italiapiranha	1214
509	magnegro	1214
510	rematch727	1214
511	shyam	1214
512	skinhea	1214
513	theegay69	1214
514	chao	1213
515	fishh	1213
516	izzy28	1213
517	jeck95	1213
518	rockhp31	1213
519	sniffle puzz	1213
520	ultimate john	1213
521	bonesawz	1212
522	gladyoucame	1212
523	i troll u weather	1212
524	irrelevant	1212
525	plah	1212
526	tauros	1212
527	vrai	1212
528	feral_brute	1211
529	shakeitup	1211
530	zanaxsa	1211
531	[aod] solar_thunder	1210
532	bears	1210
533	burningman	1210
534	gbagcn63	1210
535	northwind	1210
536	ffuplygnik	1209
537	la situacion	1209
538	lolcat-po	1209
539	the worst player	1209
540	god-eyes	1208
541	mr. l6	1208
542	razza 2.0	1208
543	-fresh2death	1207
544	-okara	1207
545	ashworth dude	1207
546	bigchill	1207
547	i wuv scofield	1207
548	myzozoa	1207
549	tvht	1207
550	[imp]blm	1206
551	check	1206
552	dan-lo	1206
553	voyager	1206
554	ace combat	1205
555	dfrog	1205
556	hihi	1205
557	jim321	1205
558	paddicusmaximussss	1205
559	shinki	1205
560	the fifth hour	1205
561	chomprush	1204
562	dennis	1204
563	ekaj	1204
564	kikoonoob	1204
565	macklemore	1204
566	stradlin	1204
567	tescs	1204
568	wallace	1204
569	alphaq	1203
570	already dead	1203
571	aznshasta34	1203
572	nirvana	1203
573	shark skin	1203
574	starlight edge	1203
575	sunydelight	1203
576	tupacplaysmons	1203
577	wakeup_	1203
578	aq	1202
579	d.gray man	1202
580	deinosaur	1202
581	exaccus	1202
582	kingdra	1202
583	sfasd	1202
584	swaggin	1202
585	[ub]daisyisasexygirl	1201
586	business casual	1201
587	iliektestin	1201
588	pratiado.	1201
589	reize	1201
590	square root	1201
591	zzazzdsa707	1201
592	zzazzdsa759	1201
593	chanman	1200
594	dark-stone	1200
595	didyoumissme	1200
596	gezhart	1200
597	lady azure	1200
598	rudd	1200
599	xtra dwc	1200
600	[rs]zhi	1199
601	ciele	1199
602	misslemonade	1199
603	zzazzdsa811	1199
604	zzazzdsa776	1198
605	dakichi972	1197
606	im on one	1197
607	nyan dog	1197
608	remlabmez	1197
609	adfslkhaoifh	1196
610	almost illegal	1196
611	pokemontrainer01	1196
612	shadow_ninja22	1196
613	steez	1196
614	wildfirexiii	1196
615	7014gree	1195
616	aquas core	1195
617	beki	1195
618	luh xd	1195
619	mynicroak	1195
620	oualidos	1195
621	pineappleman	1195
622	tamaaa	1195
623	[o3o] cookie	1194
624	blah23	1194
625	lampeskaermmedvand	1194
626	real nigga chillin	1194
627	sich	1194
628	tay-tay	1194
629	trolling in pokemon	1194
630	chowder	1193
631	dont judge me	1193
632	erratic	1193
633	gimmick[mortislux]	1193
634	ifm	1193
635	n13r	1193
636	[spdy] lass	1192
637	coolpeople33	1192
638	fatecrashers	1192
639	harold saxon	1192
640	loca people	1192
641	no holds barred	1192
642	raikiri	1192
643	ronaldo7	1192
644	ultimaweapownage	1192
645	victini493	1192
646	winged angel	1192
647	.i want to be free.	1191
648	bored	1191
649	drekken57	1191
650	ilovenejikage	1191
651	karatedude	1191
652	kuladiamond	1191
653	nyan cat	1191
654	rsfdw	1191
655	shiny n00b	1191
656	best093	1190
657	equilibrium	1190
658	lamppost #dwc	1190
659	moman	1190
660	mreon17	1190
661	old yeller	1190
662	ryo c	1190
663	tao pai pai	1190
664	zzazzdsa705	1190
665	-bluethunder-	1189
666	-feytan-	1189
667	gareth brown	1189
668	gier	1189
669	lehran	1189
670	lent et grave	1189
671	texas cloverleaf	1189
672	[sky] kael	1188
673	brotherhood	1188
674	closure	1188
675	crech	1188
676	crv	1188
677	fedor	1188
678	ffs	1188
679	kiss me baby	1188
680	kkkkk	1188
681	play me homie	1188
682	rwr	1188
683	smogon university	1188
684	explosion	1187
685	rankingsyste	1187
686	sargento 69	1187
687	-aidenfrost-	1186
688	[sky] rydro	1186
689	agent nigman	1186
690	dont lose	1186
691	kami no ko	1186
692	mewotesting	1186
693	one-ted	1186
694	predatorbat	1186
695	rad	1186
696	rainclouds	1186
697	arkani	1185
698	derk the porn	1185
699	ecksdee	1185
700	lord adonis	1185
701	palmer	1185
702	reks	1185
703	sucky meta	1185
704	the storm	1185
705	ala	1184
706	clearly rain	1184
707	epicturtle	1184
708	excaisfornoobs	1184
709	rg3	1184
710	-testing-	1183
711	abusing brokenstuffs	1183
712	black lotus	1183
713	champion eo	1183
714	ghostpro	1183
715	haruka.	1183
716	luxus2	1183
717	practice671	1183
718	the ultimate warrior	1183
719	weezy.f	1183
720	0154	1182
721	_ingress.test	1182
722	bluemon	1182
723	centrallimit_theorem	1182
724	eastwood	1182
725	eye of tiger	1182
726	hi der	1182
727	jimi	1182
728	night burst	1182
729	raspberry	1182
730	welpisuck	1182
731	zack drake	1182
732	[dr]gladiator	1181
733	darkoness21	1181
734	furai	1181
735	groeman	1181
736	rockinrobin	1181
737	skyscraper	1181
738	tropical thunder	1181
739	eyebrows down	1180
740	kosheira	1180
741	sj hero	1180
742	spiders	1180
743	aegir	1179
744	alpha ruiners ftw	1179
745	canserbero	1179
746	casey90	1179
747	dyingwarrior	1179
748	kinbovs	1179
749	lisa miskovsky	1179
750	prankster	1179
751	sanddnigger	1179
752	test.r	1179
753	zealot	1179
754	-kitkat.	1178
755	-stone-	1178
756	afrit	1178
757	darkxy	1178
758	jdfhjef	1178
759	mess	1178
760	raikiri-test	1178
761	arphire	1177
762	bigjohnny00	1177
763	cazthedogwatcher	1177
764	levitate	1177
765	spain wins	1177
766	ti apro	1177
767	younglink27	1177
768	aivar	1176
769	flamboyant	1176
770	kg6	1176
771	kobe sucks	1176
772	lusso	1176
773	mrapesh1t	1176
774	psychotic affair	1176
775	rainbow warrior	1176
776	aab5	1175
777	ardorin	1175
778	brocklesnar	1175
779	franciele	1175
780	niap	1175
781	sing for absolution	1175
782	toge	1175
783	yee	1175
784	zzazzdsa793	1175
785	-gayht owner-	1174
786	blueexorcist	1174
787	by myself	1174
788	careless	1174
789	charizard24	1174
790	edward chris vn muir	1174
791	huemon	1174
792	meison	1174
793	slasdasda	1174
794	soto	1174
795	v.create	1174
796	artan	1173
797	blingo	1173
798	blue19	1173
799	handy bag	1173
800	mcrandom	1173
801	scarecrow test	1173
802	shotta.1	1173
803	silky heart	1173
804	[bwfl]whazzuap	1172
805	bruce dickinson	1172
806	chenn	1172
807	herzgold-ho-oh	1172
808	hilarious	1172
809	ignominous princess	1172
810	luis suarez	1172
811	power-	1172
812	ryo a	1172
813	sapph	1172
814	sawk	1172
815	ala-	1171
816	andre m	1171
817	doradus	1171
818	gerald93	1171
819	monsieur biscuit	1171
820	paranoia	1171
821	thunderbag	1171
822	bouffoo	1170
823	ewdsfddsf	1170
824	lets go sunning	1170
825	sandlover	1170
826	silvos	1170
827	zzazzdsa758	1170
828	-bam-	1169
829	[hp]quorra	1169
830	[roq] ninjacalibur	1169
831	graverobber	1169
832	hii	1169
833	light-kun	1169
834	luk skylwaker	1169
835	mmf is gritty	1169
836	n3x	1169
837	old man larry	1169
838	pocket	1169
839	promiscuosfrog	1169
840	smelly123	1169
841	tehy2	1169
842	the glory	1169
843	toshibaa	1169
844	drambuie	1168
845	kilimanjaaro	1168
846	notthemonker	1168
847	prime time	1168
848	yobetoo	1168
849	-lucozade	1167
850	[dr] moonwalker	1167
851	ban doryuuzu	1167
852	error01	1167
853	gary f. oak	1167
854	gen. empoleon	1167
855	godbaka	1167
856	great wall	1167
857	jaouyerhjv	1167
858	jayjinde1	1167
859	joeyboy12134	1167
860	kiman52	1167
861	meop	1167
862	moves like jagger	1167
863	perroflauta-	1167
864	roshi	1167
865	soul of mel	1167
866	soul ulquiorra	1167
867	starfucker	1167
868	vaporeon.	1167
869	windie	1167
870	faraquet	1166
871	gaijin	1166
872	nigga the gansta	1166
873	pilo	1166
874	puppa	1166
875	tehyy	1166
876	check in my pocket	1165
877	forever stats	1165
878	pablo sandoval	1165
879	portal gun	1165
880	s14rich	1165
881	testingtesting123	1165
882	thorinater	1165
883	tom dwan	1165
884	twerk team	1165
885	zzazzdsa825	1165
886	.rainbow dash-	1164
887	chupi	1164
888	hermione granger	1164
889	hiscarly	1164
890	humfrey	1164
891	iron_knuckle_	1164
892	joemetro	1164
893	lokt	1164
894	makaveli_the_don	1164
895	r10	1164
896	tibbs	1164
897	tone	1164
898	darkpwnd merda	1163
899	dragoneye2011	1163
900	jamji69	1163
901	peskypisky	1163
902	ryfle	1163
903	zollven	1163
904	[tcd]crimson	1162
905	anoxx	1162
906	christos21	1162
907	duality	1162
908	hot coffee	1162
909	ololololololol	1162
910	remyc	1162
911	soul hero	1162
912	-love.faith	1161
913	amne	1161
914	angel in the night	1161
915	chimpaction	1161
916	cyberzero	1161
917	mr. mime	1161
918	shake it	1161
919	stereo hearts	1161
920	zepherz	1161
921	-jgrey-	1160
922	antequera	1160
923	arcthunder	1160
924	hegemoth	1160
925	imtrying	1160
926	lass	1160
927	rain go away	1160
928	roelfvander tele	1160
929	rydro star	1160
930	teen spirit	1160
931	tempesstt	1160
932	the fear	1160
933	warrior	1160
934	zoness	1160
935	alleneby	1159
936	f	1159
937	genova	1159
938	gortyuty	1159
939	however	1159
940	master kai	1159
941	ploufei	1159
942	robisaurus	1159
943	tcdisc	1159
944	widget corp	1159
945	yao n	1159
946	zedric	1159
947	[tv]rai2	1158
948	aab3	1158
949	ats	1158
950	bcam0991	1158
951	bharmalalm	1158
952	chillcat	1158
953	dnight	1158
954	doran	1158
955	epic sax guy	1158
956	jamesland0568	1158
957	magister vulcanus	1158
958	mango9191	1158
959	mazakala-r	1158
960	msyu	1158
961	n1	1158
962	noobao	1158
963	rectalranger	1158
964	tripledouble	1158
965	zzazzdsa709	1158
966	[map]crimsoncobra117	1157
967	[teg]resident evil	1157
968	alaska.	1157
969	aprics	1157
970	chadwick	1157
971	fell too fast	1157
972	hommer	1157
973	icewitch	1157
974	la tormenta	1157
975	lafondaonfire	1157
976	quicksilver1	1157
977	snsd	1157
978	steven snype	1157
979	theeepicturtle	1157
980	zoidbergz	1157
981	17days	1156
982	[cope] black lc	1156
983	dogs blood	1156
984	flame of justice	1156
985	helixzero	1156
986	justin bieber xoxo	1156
987	kenn305 test 2	1156
988	levy tran [test]	1156
989	limping pendulum	1156
990	pkml	1156
991	pokemonking4life5	1156
992	si o fra ro cess	1156
993	the tyrant	1156
994	zoidberg	1156
995	-e_e-	1155
996	.123	1155
997	abdc	1155
998	axe	1155
999	free cheetos	1155
1000	koolidge	1155
1001	ohaiii	1155
1002	semi charmed life	1155
1003	z3qm90da	1155
1004	zzazzdsa817	1155
1005	-for.love-	1154
1006	.ala.	1154
1007	[sd]axounay	1154
1008	annanicki	1154
1009	blastoise	1154
1010	bonglover420	1154
1011	cutie patootie 123	1154
1012	hedonism	1154
1013	n0name	1154
1014	skyapples	1154
1015	strange feelings	1154
1016	135611	1153
1017	atm	1153
1018	cescken	1153
1019	chrisrandom91	1153
1020	demi	1153
1021	denissss	1153
1022	france is stupid	1153
1023	hitsugaya test	1153
1024	latios_pwns777	1153
1025	parkour.	1153
1026	raging delibird	1153
1027	red eagles	1153
1028	sand nigga	1153
1029	scrooge-test	1153
1030	swaggernator	1153
1031	terryrina	1153
1032	themagicman	1153
1033	x5dnite	1153
1034	agammemnon	1152
1035	celsius	1152
1036	dragonman	1152
1037	excatron	1152
1038	ezlo	1152
1039	farmerwithshotgun	1152
1040	fdg	1152
1041	ggggggggggg	1152
1042	gizmo	1152
1043	gravenimage	1152
1044	husani	1152
1045	sentry gun	1152
1046	smack down	1152
1047	tfc[aldaron clause]	1152
1048	-smirk	1151
1049	aquos	1151
1050	con derecho a roze	1151
1051	dark dreamer	1151
1052	darksector	1151
1053	hyper_k	1151
1054	l.von matternhorn	1151
1055	lolal	1151
1056	lolcat the boss	1151
1057	moep	1151
1058	neoseth	1151
1059	old spice man	1151
1060	pengie	1151
1061	stardust dragon	1151
1062	test zaraki-link	1151
1063	tetrakarn	1151
1064	wishh	1151
1065	zdrup15	1151
1066	[dgm] meyric	1150
1067	[pro]drakcelebi59	1150
1068	[sky] blue star	1150
1069	aliciaq	1150
1070	blue_star	1150
1071	brave iii	1150
1072	captain blue	1150
1073	dfdsfsd	1150
1074	dori	1150
1075	extended address	1150
1076	hanke please return	1150
1077	jarardomartino	1150
1078	kill me sarah	1150
1079	little girly	1150
1080	mahrla	1150
1081	mikedecisnthere	1150
1082	stallion	1150
1083	toushinou kyouko	1150
1084	[test]dark pulse94	1149
1085	alal	1149
1086	avenger	1149
1087	burp	1149
1088	cacaro	1149
1089	cadenza	1149
1090	casimiro lateta	1149
1091	elesa	1149
1092	girls gone wild	1149
1093	heyo	1149
1094	hydronium	1149
1095	intentional loses	1149
1096	kanak0	1149
1097	keisuke-kun	1149
1098	mihnea	1149
1099	neopolitan dreams	1149
1100	peppywil	1149
1101	radiobear	1149
1102	tehbeast	1149
1103	that noob	1149
1104	this shit aint ou	1149
1105	wonderous	1149
1106	ya	1149
1107	.icristiano95.	1148
1108	c.ronaldo	1148
1109	dances with dragons	1148
1110	freebird	1148
1111	i love garchomp	1148
1112	kenn305 test	1148
1113	mcnugget	1148
1114	optimistic	1148
1115	raijin	1148
1116	yaytears	1148
1117	[test] levy tran	1147
1118	[tk]jmagician	1147
1119	beerenmeister	1147
1120	christina sierra.	1147
1121	dekeract	1147
1122	mcmedwc	1147
1123	smc	1147
1124	stigma	1147
1125	tayra	1147
1126	test the waters	1147
1127	wingz2	1147
1128	098	1146
1129	725	1146
1130	[dr] lucarios	1146
1131	android17.	1146
1132	antelope	1146
1133	demon.	1146
1134	desp3 [test]	1146
1135	dudeman	1146
1136	farukon	1146
1137	godknows	1146
1138	got you all in check	1146
1139	groudonvert	1146
1140	hyoga	1146
1141	kaos3	1146
1142	knightofthewind	1146
1143	l.michels	1146
1144	lekboy	1146
1145	lucario_skywalker	1146
1146	manmuu	1146
1147	snup	1146
1148	southern island	1146
1149	viagra.	1146
1150	youkill	1146
1151	zackachoo	1146
1152	zzazzdsa821	1146
1153	[dr] lost.	1145
1154	basket bros.	1145
1155	bean	1145
1156	fire blast	1145
1157	ingeniousbanana	1145
1158	l.messi	1145
1159	lucas.	1145
1160	marshall.law	1145
1161	noob321	1145
1162	rufinito	1145
1163	spockrodgers	1145
1164	squirt	1145
1165	the legend tamer	1145
1166	tom and friends	1145
1167	watch me blast	1145
1168	zzazzdsa748	1145
1169	-testalexthephantom-	1144
1170	[kerwyn]	1144
1171	[ww]salamander	1144
1172	a. greed	1144
1173	aab	1144
1174	choice	1144
1175	docter guys	1144
1176	goivensoven	1144
1177	johning john	1144
1178	kungpoo	1144
1179	masuorre	1144
1180	steamedfish	1144
1181	-x	1143
1182	2112121	1143
1183	[alphas] lost.	1143
1184	[dkw]totopimp12	1143
1185	[dr]gladiador	1143
1186	arachnidsgrip	1143
1187	lampeskaermice	1143
1188	lunar howl	1143
1189	mate	1143
1190	megidolaon	1143
1191	miles edgeworth xvii	1143
1192	moooo	1143
1193	quizical	1143
1194	sango	1143
1195	sharstall	1143
1196	supertouch	1143
1197	the doldrums	1143
1198	whappity whappity	1143
1199	yeahithinkimpretty	1143
1200	-redthunder-	1142
1201	-supremacist	1142
1202	[dr]element	1142
1203	bobber	1142
1204	c24	1142
1205	foodnetwork	1142
1206	fukrocks	1142
1207	furaiiiii	1142
1208	kaos	1142
1209	ksubi	1142
1210	okocha	1142
1211	rega[testing]	1142
1212	soulous[sand]	1142
1213	uhasf	1142
1214	.killyour.fuuparents	1141
1215	[ep]tene	1141
1216	[gt] likeag6	1141
1217	ahmeezy	1141
1218	bart	1141
1219	bluechocobo	1141
1220	cabor	1141
1221	cancun	1141
1222	caz z z z	1141
1223	cinik	1141
1224	doppelsoldner	1141
1225	drunkagainalt	1141
1226	haxed-cr1	1141
1227	itstoostrong	1141
1228	marsus 43	1141
1229	panda express	1141
1230	pavement	1141
1231	prem	1141
1232	sascha	1141
1233	suntt123	1141
1234	the google knight	1141
1235	uclafan101	1141
1236	waltermelon	1141
1237	wdfamatt	1141
1238	whatahw	1141
1239	xtratoe	1141
1240	.allez.om.	1140
1241	[hp] daisen - g.s.	1140
1242	[thc] ss0	1140
1243	blizzspamftw	1140
1244	body bag	1140
1245	cityofsins	1140
1246	eowirath	1140
1247	gg manolo	1140
1248	ilan55	1140
1249	jutha	1140
1250	lets test	1140
1251	lutra	1140
1252	mattalt	1140
1253	petope	1140
1254	zanax	1140
1255	4channer	1139
1256	[dr]caetano93	1139
1257	[tic]resident evil	1139
1258	atomous	1139
1259	blarajan t	1139
1260	borogoves	1139
1261	bypass river	1139
1262	darkvirus	1139
1263	flaming salamander	1139
1264	goforthewin	1139
1265	hyper k	1139
1266	lonelyness	1139
1267	parasol hor	1139
1268	pkn range	1139
1269	red_1	1139
1270	stress	1139
1271	t3rr0r 3rr0r	1139
1272	the man2	1139
1273	yukimura	1139
1274	-first of the list-	1138
1275	1mpact	1138
1276	desp3	1138
1277	desperation	1138
1278	determination	1138
1279	get pawns like a dog	1138
1280	im bulllkkkyyyy	1138
1281	im haxer	1138
1282	l.messi [test]	1138
1283	lofty	1138
1284	luck.me.	1138
1285	mirai	1138
1286	mpi	1138
1287	nelson-x	1138
1288	oiudfopdf	1138
1289	perroflauta.	1138
1290	qwertyasdf	1138
1291	sinned	1138
1292	-azao	1137
1293	aeolus	1137
1294	blarajan r	1137
1295	buckles	1137
1296	chirisu	1137
1297	enea.	1137
1298	gurrdurr	1137
1299	lets play bingo	1137
1300	lightenergy	1137
1301	lizmo	1137
1302	lolololol	1137
1303	lookahere	1137
1304	mat[cg]	1137
1305	piikaone	1137
1306	quetza	1137
1307	seven deadly sins	1137
1308	sirtommy	1137
1309	testeverywhere	1137
1310	treeco12	1137
1311	what limits?	1137
1312	woot	1137
1313	zed lep	1137
1314	-levy tran-	1136
1315	[aquarius] kanto	1136
1316	[dw] ala	1136
1317	[test]train	1136
1318	bip	1136
1319	bp o_o	1136
1320	deconstruct	1136
1321	diogosj	1136
1322	gentle man -test-	1136
1323	gigapflanze	1136
1324	icey the king of ice	1136
1325	illusion reaver	1136
1326	kng lemons	1136
1327	miaumiau	1136
1328	mr mime	1136
1329	rampant crow	1136
1330	redzz	1136
1331	tha boss sks	1136
1332	[ep]kixem	1135
1333	[m]elanie [i]glesias	1135
1334	absolute	1135
1335	ajh	1135
1336	darksectorthekickass	1135
1337	gamefaqs	1135
1338	iphone 4	1135
1339	lati0s	1135
1340	lolcat-challange	1135
1341	orange	1135
1342	sharan	1135
1343	shizuo	1135
1344	sirkamili123	1135
1345	stole this bitch	1135
1346	stowns.	1135
1347	terraquaza	1135
1348	-cricri95	1134
1349	-dl- yong kakashi	1134
1350	[dr] sparky	1134
1351	aladwc	1134
1352	bad meets evil	1134
1353	carousel	1134
1354	chapolin	1134
1355	cn	1134
1356	dinnerdate	1134
1357	dwarventemper	1134
1358	herax	1134
1359	je parle francais	1134
1360	monzaemon	1134
1361	speechless	1134
1362	tehya	1134
1363	theebay [2]	1134
1364	war nerve	1134
1365	.cristiano95.	1133
1366	.robert -	1133
1367	[tfa]umarth	1133
1368	_altagracia_	1133
1369	aliens exist	1133
1370	atcq	1133
1371	c4lcul4t0r	1133
1372	caballero madchine	1133
1373	darthsneak	1133
1374	far too tired	1133
1375	gi styles	1133
1376	im bullllkkkkyyy	1133
1377	jdtyjyuj	1133
1378	kaluun	1133
1379	lashae	1133
1380	n2	1133
1381	nejikage	1133
1382	notension	1133
1383	parkway drive	1133
1384	silentdirge	1133
1385	sqqueee	1133
1386	virgin	1133
1387	woodchuck.dw.chall	1133
1388	ximperial	1133
1389	yugiohvn	1133
1390	zelos wilder.	1133
1391	[aod] el chavo	1132
1392	[imp]drako	1132
1393	[os]jeiize	1132
1394	[ss] zell	1132
1395	[tss]myles	1132
1396	akane	1132
1397	alphatron	1132
1398	anachronism	1132
1399	dezza	1132
1400	gimmick[4]	1132
1401	isse	1132
1402	metadraxis	1132
1403	onicon	1132
1404	ringer	1132
1405	shining through	1132
1406	thefifthchaser	1132
1407	truth lies beneath	1132
1408	wth1987	1132
1409	zzazzdsa804	1132
1410	cranberry	1131
1411	csi	1131
1412	des2	1131
1413	dungeon master	1131
1414	fagballs	1131
1415	haxismy2ndweakness	1131
1416	hello friend	1131
1417	internet tough guy	1131
1418	jirachi73	1131
1419	kirinmon	1131
1420	lucifer	1131
1421	lxnburger	1131
1422	menta92	1131
1423	momentus	1131
1424	rebornn	1131
1425	sopka	1131
1426	spongenoob	1131
1427	straightouttasmogon	1131
1428	thuglife	1131
1429	1goaway	1130
1430	816	1130
1431	[dkwl]totopimp	1130
1432	[tus]mcq	1130
1433	average	1130
1434	blood omen	1130
1435	breack on through	1130
1436	bump	1130
1437	faegnegae	1130
1438	glycerine2	1130
1439	inferno838	1130
1440	irrelevantesting	1130
1441	lady porter	1130
1442	lamedefond	1130
1443	lycheee	1130
1444	pr0suseb0unce	1130
1445	rare eagles	1130
1446	rhetoric ink	1130
1447	right places	1130
1448	slivius	1130
1449	tehyz	1130
1450	teronaattori	1130
1451	vieguerre	1130
1452	vive la mort	1130
1453	water warrior	1130
1454	1nvalid	1129
1455	[test]meggatron	1129
1456	aenea	1129
1457	archaicmarionette	1129
1458	asuya-3	1129
1459	donald	1129
1460	dracomalfoy	1129
1461	fuck ma mere	1129
1462	harrypotter	1129
1463	i hate this game.	1129
1464	irapeyou	1129
1465	iresar	1129
1466	jcpdragonx	1129
1467	kuronoyume	1129
1468	latiax	1129
1469	mag	1129
1470	mcaaron	1129
1471	mexyc	1129
1472	mikecarp	1129
1473	nice	1129
1474	obey ec	1129
1475	s-skunk	1129
1476	samurai spirit	1129
1477	smith	1129
1478	snow dreams	1129
1479	texas ranger	1129
1480	tyranno	1129
1481	wdfafdnx	1129
1482	za	1129
1483	.loic.remy.	1128
1484	a time instant	1128
1485	ashba	1128
1486	badday	1128
1487	bartman101	1128
1488	basedgawd	1128
1489	blast	1128
1490	candice	1128
1491	cemetery gates	1128
1492	doublehorse	1128
1493	faux haux	1128
1494	heyyou93	1128
1495	kyu4bi	1128
1496	macachinking lol	1128
1497	nigslam	1128
1498	paoz	1128
1499	quicksilver	1128
1500	sam0sonite	1128
1501	soonies	1128
1502	sot	1128
1503	syrim	1128
1504	testingrishi[ou]	1128
1505	xzsr	1128
1506	zzazzdsa802	1128
1507	aab2	1127
1508	allenby	1127
1509	big sean	1127
1510	blazogar	1127
1511	bluewind	1127
1512	boneyards.	1127
1513	breath of fire	1127
1514	frezetest	1127
1515	haxa	1127
1516	i m a testeur	1127
1517	kazu-pyon	1127
1518	naixin	1127
1519	ojarajajaraj	1127
1520	permanewb	1127
1521	princeton labyrinth	1127
1522	raintalk	1127
1523	rosevee	1127
1524	sunworst weather	1127
1525	te gano	1127
1526	uhfdf	1127
1527	why not.	1127
1528	agammemnon dwc	1126
1529	blightbringa	1126
1530	cstick	1126
1531	daniel negreanu	1126
1532	engy	1126
1533	gimme some more	1126
1534	holigans	1126
1535	kooper	1126
1536	kurapica	1126
1537	magiscoder	1126
1538	meangryandyouloser	1126
1539	pasy	1126
1540	pokemaniac bill	1126
1541	pokemon brat 1	1126
1542	sup4hippo	1126
1543	tarano	1126
1544	-kages- deidara	1125
1545	aprilisbad	1125
1546	cadenas von cruel	1125
1547	cz.	1125
1548	dragoknight	1125
1549	ermac	1125
1550	gentleman rapture	1125
1551	gto	1125
1552	henry clay	1125
1553	hp	1125
1554	jarboy	1125
1555	jiro	1125
1556	justincase	1125
1557	mannyfanaz	1125
1558	p477	1125
1559	paolo-alts-	1125
1560	pkmntrainer	1125
1561	rudolf	1125
1562	scarypeople	1125
1563	shiny13uster	1125
1564	sinful_desire	1125
1565	smashinnpassin	1125
1566	testo	1125
1567	tonymontana	1125
1568	zzazzdsa822	1125
1569	[ptob]hipstarr[h]	1124
1570	adri	1124
1571	american gods	1124
1572	arigolderchi	1124
1573	bruno [lop-rs]	1124
1574	faze.	1124
1575	golden apple	1124
1576	gus bus	1124
1577	hid	1124
1578	highlighter_503	1124
1579	lampeskaerm7	1124
1580	lucariofan44	1124
1581	makaveli	1124
1582	melissa	1124
1583	northmen	1124
1584	panik	1124
1585	rydro.	1124
1586	sgv.	1124
1587	soap soap	1124
1588	suicide.mec	1124
1589	themomentyoubeen	1124
1590	[dkw]redrun	1123
1591	[imp]motto	1123
1592	arcano	1123
1593	asdegwasfafwee	1123
1594	assdasadsdadas	1123
1595	ballard	1123
1596	bloowind	1123
1597	chicken legs	1123
1598	chillaang	1123
1599	dark lord sanyo	1123
1600	dick face	1123
1601	fast teambuilder!	1123
1602	garyfuckingoak	1123
1603	generator	1123
1604	gri	1123
1605	guttingham	1123
1606	haiell	1123
1607	hyperion	1123
1608	jayx	1123
1609	jollyroger_havok	1123
1610	kurosaki-san	1123
1611	likemike	1123
1612	miss fortune	1123
1613	nearr	1123
1614	nothing.	1123
1615	omglolitsj	1123
1616	play_dirty_bitch	1123
1617	reztyrane	1123
1618	s.diddy	1123
1619	smogon world order	1123
1620	take it slowly	1123
1621	themadyak	1123
1622	xsnwxkevbot	1123
1623	102	1122
1624	alpha 2777	1122
1625	button	1122
1626	d-nite	1122
1627	dpg2172	1122
1628	drough	1122
1629	eternaldw	1122
1630	f40ph	1122
1631	flame rush	1122
1632	folaishu	1122
1633	gregory s idler	1122
1634	holy sword dude	1122
1635	killerman126	1122
1636	luciledu13.	1122
1637	myzozoadw	1122
1638	nigslay66	1122
1639	squirtlestar	1122
1640	superboy	1122
1641	thugswag	1122
1642	zzazzdsa72	1122
1643	zzazzdsa807	1122
1644	1337_5	1121
1645	306	1121
1646	[sc-ld] docteur m	1121
1647	arad	1121
1648	assketchup9001	1121
1649	black bastard	1121
1650	boeira	1121
1651	brawley	1121
1652	carcinogeneticist	1121
1653	colonelsanders	1121
1654	darkpenguin67	1121
1655	db97531	1121
1656	dynasmon	1121
1657	ehero strato	1121
1658	gym leader janine	1121
1659	hancock	1121
1660	hiyo9u	1121
1661	jessica_snsd	1121
1662	killyourfuuparents.	1121
1663	kjah	1121
1664	lizardmandwc	1121
1665	miht	1121
1666	mukuro	1121
1667	never ruin me	1121
1668	no name2	1121
1669	omnidex	1121
1670	rbcss	1121
1671	scrooge	1121
1672	sonic3	1121
1673	suggy	1121
1674	swuido	1121
1675	taikoubou	1121
1676	tof	1121
1677	trollasao	1121
1678	turnaround	1121
1679	unscrupulous	1121
1680	-acetrainer dawn-	1120
1681	.cricri95.	1120
1682	[wtf hu] pink	1120
1683	athleteandy1	1120
1684	ay ryde my bycicle	1120
1685	big boy talk	1120
1686	can u take the heat	1120
1687	dark-psiana	1120
1688	enabler	1120
1689	foresurf	1120
1690	groloukoum	1120
1691	lampeskaerm11	1120
1692	lethalizer	1120
1693	logic	1120
1694	manatee	1120
1695	mrhsim	1120
1696	parad	1120
1697	rainny	1120
1698	ruff night rly	1120
1699	ryu_954	1120
1700	sayword	1120
1701	scot	1120
1702	trollololol	1120
1703	umadraini	1120
1704	[test[meep meep	1119
1705	anartya	1119
1706	big pecks	1119
1707	d. guetta	1119
1708	dkdkdkdkdkdkdk	1119
1709	dr. tenma	1119
1710	dragon quest	1119
1711	dream eater	1119
1712	fighttotheglory.	1119
1713	frochtejohgurt	1119
1714	frostguy	1119
1715	goodluck.	1119
1716	herbguy	1119
1717	jailbreak	1119
1718	jellyo	1119
1719	latios is badass	1119
1720	muni	1119
1721	r4ndom0	1119
1722	rokutheeternal	1119
1723	syaoran	1119
1724	tttttt	1119
1725	- vsf -	1118
1726	-simon-	1118
1727	110hydro	1118
1728	[md] guest69	1118
1729	azoniccs2	1118
1730	bouvym	1118
1731	chaosnoob13	1118
1732	cheer up	1118
1733	darkmaster77	1118
1734	dj pon-3	1118
1735	dontronn	1118
1736	gdk	1118
1737	lateo	1118
1738	ludvina	1118
1739	master maestro	1118
1740	noob kid	1118
1741	plem	1118
1742	rbcs	1118
1743	shinyrelicanth	1118
1744	shy	1118
1745	skynet is here	1118
1746	slickdamasta	1118
1747	snoupinet	1118
1748	speek leet	1118
1749	thegreensalde	1118
1750	voltaire	1118
1751	-dr.shin-	1117
1752	[fs]dionysus	1117
1753	acetrainer dawn.	1117
1754	altagracia	1117
1755	apapapapapa	1117
1756	baton pass is poopy	1117
1757	chuie	1117
1758	costalola	1117
1759	dust in the wind	1117
1760	farewell sarajevo	1117
1761	genxim	1117
1762	iforgotmypassword	1117
1763	jajajaja	1117
1764	jl delarue	1117
1765	lampeskaermtest4	1117
1766	money men	1117
1767	ohhhhhhhhhhsnap	1117
1768	pitch black	1117
1769	playtime	1117
1770	raichuguardian	1117
1771	shining latios	1117
1772	simplory guy	1117
1773	speedboostvi	1117
1774	the perfect storm	1117
1775	the truth	1117
1776	tommie vee	1117
1777	tox	1117
1778	tullido	1117
1779	turnerrr	1117
1780	young money	1117
1781	zzazzdsa745	1117
1782	-entrenador n-	1116
1783	[cbt] before	1116
1784	amarillo test	1116
1785	biancucci	1116
1786	blitzkrompf	1116
1787	brain leech	1116
1788	cancer to smogon	1116
1789	carambola vermelha	1116
1790	cornybird	1116
1791	donesomethingright	1116
1792	dukem	1116
1793	garn[test]	1116
1794	gerbot15	1116
1795	metsrsobad	1116
1796	ocean song	1116
1797	peekaboo	1116
1798	santa clauz 119	1116
1799	saucy23	1116
1800	shadow_k	1116
1801	sweetlicious	1116
1802	tsubasa	1116
1803	viktor vaughn	1116
1804	water gun sucks	1116
1805	-kitty.kat	1115
1806	[cw] samu	1115
1807	[cw]smexqueen	1115
1808	[d_p]d_p	1115
1809	[dr] bruno lima tst	1115
1810	[dr] robert	1115
1811	[exorcist] test man	1115
1812	_melanie iglesias_	1115
1813	alien mw	1115
1814	apple lotion	1115
1815	cocoliso	1115
1816	crazyeights	1115
1817	da 6	1115
1818	darmanima	1115
1819	dj pon-4	1115
1820	dwyers.	1115
1821	fisherington	1115
1822	fuck oceania	1115
1823	helios	1115
1824	inhuman rampage	1115
1825	jack sparrow	1115
1826	kippers	1115
1827	koolbeans-testy	1115
1828	latibp	1115
1829	marisa kirisame	1115
1830	mr. 0	1115
1831	notty	1115
1832	pauper	1115
1833	pinto the penes	1115
1834	sharpteeth	1115
1835	splitee	1115
1836	steelyphil	1115
1837	tenshinhan	1115
1838	winds of hope	1115
1839	wonka trainer	1115
1840	zzazzdsa419	1115
1841	zzazzdsa769	1115
1842	ícaro	1115
1843	akatsuki-power	1114
1844	charmander2416	1114
1845	darkfalls	1114
1846	flibbertigibbet	1114
1847	haunterfan	1114
1848	larry david	1114
1849	lars the iii	1114
1850	ljihdefz	1114
1851	professor lamb	1114
1852	raj	1114
1853	ryuusaki	1114
1854	skill>hax	1114
1855	solterona	1114
1856	the poet	1114
1857	underteaker-test	1114
1858	undisputed	1114
1859	valentinetest	1114
1860	xjean	1114
1861	zzazzdsa702	1114
1862	[dr] teddy	1113
1863	[s]kland	1113
1864	[toast] go	1113
1865	alpha rwinner	1113
1866	battlerkevin	1113
1867	boundary	1113
1868	butajiri	1113
1869	disposable puppets	1113
1870	donay	1113
1871	dont break the oat	1113
1872	drbaus	1113
1873	esctate	1113
1874	foxxy	1113
1875	hiimgaywhataboutu	1113
1876	im testing you	1113
1877	jocaflame	1113
1878	john stone	1113
1879	lightflight	1113
1880	monkey wrench	1113
1881	motioncity	1113
1882	old scenes	1113
1883	pkmnbrendan	1113
1884	sigiwill	1113
1885	th3 j3w king	1113
1886	titi.	1113
1887	trololo man	1113
1888	vassak	1113
1889	weedle	1113
1890	wingz	1113
1891	zedekrom	1113
1892	-link	1112
1893	.oface	1112
1894	[dl] pr0 pantz	1112
1895	[dr]sugac	1112
1896	aleva	1112
1897	aviator	1112
1898	barba branca	1112
1899	chou toshio	1112
1900	ckwnz	1112
1901	coppa-me-not	1112
1902	fullautodeath	1112
1903	kuchiki byakuya	1112
1904	lampman	1112
1905	mcnut	1112
1906	ol rosco	1112
1907	pandorasbox	1112
1908	rsquared	1112
1909	schmoll	1112
1910	superseedot-alt	1112
1911	teh umby	1112
1912	terrance	1112
1913	testing stuffs again	1112
1914	thericanboy	1112
1915	tranne te	1112
1916	uuuuu55555	1112
1917	wifi guest555	1112
1918	witttttttttt	1112
1919	wtfsssss	1112
1920	zarco	1112
1921	898	1111
1922	a-m-e-r-i-c-a-n-t	1111
1923	aj8-0	1111
1924	alaskansteamedwolf	1111
1925	basti	1111
1926	bluewind is a boss	1111
1927	brain damage	1111
1928	brian.	1111
1929	d-rod 8605	1111
1930	fucking die	1111
1931	jirachi.	1111
1932	macdonaldz	1111
1933	mary skarm	1111
1934	michel_telo	1111
1935	mikewando	1111
1936	mlg poke	1111
1937	monopoly	1111
1938	number4	1111
1939	pedrock	1111
1940	poliwash	1111
1941	py turle	1111
1942	rundas	1111
1943	steiner01	1111
1944	still tomorrow	1111
1945	test_	1111
1946	tobybro	1111
1947	toshayi	1111
1948	toshiistesting	1111
1949	yao n5	1111
1950	-jasmine_	1110
1951	[hp] l.e.a.	1110
1952	[md]shiny-sd-scizor	1110
1953	[tcd]anis	1110
1954	bada	1110
1955	bloooke	1110
1956	blunts4life	1110
1957	bomber	1110
1958	britch	1110
1959	charro	1110
1960	das bs	1110
1961	derankererer	1110
1962	exorcist19	1110
1963	hikoshi.	1110
1964	lampeskaerm8	1110
1965	lonewolf	1110
1966	magma	1110
1967	modestespeon	1110
1968	prism	1110
1969	ragingdelibird	1110
1970	rigadog	1110
1971	shibirudon	1110
1972	stathakis	1110
1973	suicunelover44	1110
1974	tpo3	1110
1975	tudepar	1110
1976	whatadrag	1110
1977	zombie inc.	1110
1978	-motive	1109
1979	.perche-	1109
1980	[at] peter	1109
1981	[dr]ultimate247	1109
1982	[ker]win	1109
1983	aimi	1109
1984	backtobw	1109
1985	bitch3127	1109
1986	bowsers evil test	1109
1987	clipper	1109
1988	divixel	1109
1989	dv8	1109
1990	el mono canibal	1109
1991	gawain	1109
1992	gears of war 3	1109
1993	haxed-hv2d	1109
1994	ii sapph ii	1109
1995	iravage	1109
1996	juan gabriel	1109
1997	kbxe	1109
1998	megadeth	1109
1999	monotypetesting	1109
2000	perfume over bath	1109
2001	pkikoj	1109
2002	pottery	1109
2003	prof.	1109
2004	ragammemnon	1109
2005	sighguy.testing	1109
2006	tragedy.	1109
2007	uturn	1109
2008	w_w	1109
2009	wobbyhood	1109
2010	xtrashine	1109
2011	yimboslice	1109
2012	zubat	1109
2013	[imp]placebo effect	1108
2014	[imperial]firelred	1108
2015	[team neo]yobeto	1108
2016	ah.	1108
2017	albus potter	1108
2018	annamolly	1108
2019	btp.	1108
2020	castle in the sky	1108
2021	curtains732	1108
2022	da hui	1108
2023	dangerrrrr	1108
2024	emperor j	1108
2025	fan	1108
2026	filipv	1108
2027	flywinged	1108
2028	freepenguin	1108
2029	freze	1108
2030	gemini storm	1108
2031	ghelmss2	1108
2032	haxed-cr	1108
2033	jkaa	1108
2034	kaku	1108
2035	kast	1108
2036	kuhndog	1108
2037	lampeskaermnw1	1108
2038	lk.	1108
2039	lolnub	1108
2040	massacre	1108
2041	mr tweetums	1108
2042	mr.sexy[testing]	1108
2043	shohcolat	1108
2044	wrong hole	1108
2045	youjustgothaxed	1108
2046	zazzy	1108
2047	-zeal-	1107
2048	[hp]soulwind	1107
2049	[o3o] flame	1107
2050	[sv]pkalvaro	1107
2051	anyways	1107
2052	callmedelitab	1107
2053	captain america	1107
2054	ctc boo	1107
2055	d-bray	1107
2056	dancefloor	1107
2057	darthdiglett	1107
2058	dead bird	1107
2059	flinchfuse	1107
2060	gaios	1107
2061	gow	1107
2062	hahahohohuhu	1107
2063	hyperbeem_xx	1107
2064	i will lose	1107
2065	i will win	1107
2066	icicle	1107
2067	jimmer fredette	1107
2068	jme	1107
2069	kd24	1107
2070	krokokoko	1107
2071	lattest	1107
2072	llx	1107
2073	mercurian	1107
2074	microflation	1107
2075	minipete	1107
2076	mordecai	1107
2077	musi	1107
2078	nds1	1107
2079	northman	1107
2080	omniphus	1107
2081	onononononononokusu	1107
2082	shelling ford	1107
2083	sorabain	1107
2084	the godfather	1107
2085	twin winds	1107
2086	universal magnetism	1107
2087	uvwxyz9	1107
2088	w	1107
2089	worldwide choppers	1107
2090	zeroooo	1107
2091	zzazzdsa235	1107
2092	-lord hyumongs	1106
2093	-pk da truth-	1106
2094	[cwc]rickbp1	1106
2095	asdegwasfafw	1106
2096	blue aqua rabbit	1106
2097	boshy	1106
2098	crying lightning	1106
2099	davidness	1106
2100	delicious	1106
2101	endymionnyc	1106
2102	gbagcn62	1106
2103	gengar .	1106
2104	grrsaw	1106
2105	gs trainer [ita]	1106
2106	hail noob	1106
2107	hyperhyperhyperhyper	1106
2108	indie rokkers	1106
2109	jamiroquai	1106
2110	jealous	1106
2111	kill me	1106
2112	mcmanaman	1106
2113	mindfuck	1106
2114	nails #dwc	1106
2115	nixhex	1106
2116	pageup	1106
2117	pakma master	1106
2118	pata pata	1106
2119	revise.	1106
2120	saya-chan	1106
2121	shadow fang	1106
2122	silent exchange	1106
2123	sirkamili12	1106
2124	spaniard	1106
2125	testdz	1106
2126	testpanda4	1106
2127	testscx	1106
2128	twistyyy	1106
2129	veteran pkmn trainer	1106
2130	yaboi	1106
2131	zealous	1106
2132	-gabranth-	1105
2133	-thebesthere	1105
2134	-zoteck-	1105
2135	[gt rookie] destino	1105
2136	bingo	1105
2137	bladeezz1	1105
2138	demonikuski	1105
2139	djokovic	1105
2140	dragonboy2	1105
2141	fall	1105
2142	flapiflapo	1105
2143	frb	1105
2144	frizy	1105
2145	g unit	1105
2146	g_roman93	1105
2147	haxed-m5	1105
2148	hiker billy	1105
2149	ho hum	1105
2150	kaosk	1105
2151	kool-aid	1105
2152	machote	1105
2153	mang_donalds	1105
2154	maxlk12345	1105
2155	ns	1105
2156	puzh	1105
2157	sain	1105
2158	saucy3.0	1105
2159	soulous[skion]	1105
2160	the tyranitar	1105
2161	ttc tyler	1105
2162	tu padre	1105
2163	-rayfrost-	1104
2164	[ hell ] flipee	1104
2165	[at] ald	1104
2166	[fsky]thee [test]	1104
2167	at least you tried	1104
2168	ba-bash	1104
2169	bigboss	1104
2170	blue_thunder	1104
2171	dark horse	1104
2172	dkid	1104
2173	el.tuerie.	1104
2174	gabe newell.	1104
2175	gasseh g	1104
2176	gentleman	1104
2177	hardcore	1104
2178	hol	1104
2179	itoi6	1104
2180	kill me plz lol.	1104
2181	lord pepo	1104
2182	maddoglewis	1104
2183	maybe today	1104
2184	metalsonicmk72	1104
2185	mlx	1104
2186	motherfcuku	1104
2187	mycooly	1104
2188	notorious b.i.g	1104
2189	potator	1104
2190	reuniscraf	1104
2191	sasson	1104
2192	sinoble	1104
2193	the one winged angel	1104
2194	the yello submarine	1104
2195	trance	1104
2196	val pescador	1104
2197	zan	1104
2198	zzazzdsa779	1104
2199	-cricri95-	1103
2200	-kittykat-	1103
2201	[imp]drakotest	1103
2202	[rs]lord ledian	1103
2203	_riako_	1103
2204	aeromence	1103
2205	big threats	1103
2206	browners	1103
2207	brunnhilda	1103
2208	cicci	1103
2209	corneria	1103
2210	dark mole	1103
2211	deuxhero	1103
2212	drixx	1103
2213	dsupreme	1103
2214	enemy[test]	1103
2215	examining	1103
2216	flyingscyther	1103
2217	funke	1103
2218	geoffrey leonard	1103
2219	haxbinger	1103
2220	kanashimi	1103
2221	karch	1103
2222	kwstas_kwstas	1103
2223	lenoob	1103
2224	minizaid	1103
2225	mr. mackey	1103
2226	norwood ranger	1103
2227	nubster	1103
2228	party rock	1103
2229	phoneticallidocious	1103
2230	quizzing	1103
2231	reshulon to loko	1103
2232	scooter	1103
2233	suburvia	1103
2234	the heat	1103
2235	turnpike	1103
2236	uraga	1103
2237	vielieis	1103
2238	vinc dwc	1103
2239	xxmatterdestroyer9xx	1103
2240	-hi-	1102
2241	-kat	1102
2242	337	1102
2243	[os] jeiize	1102
2244	[sky] fralda	1102
2245	badow	1102
2246	blackthunder	1102
2247	celadon	1102
2248	d6 pokez of painn	1102
2249	dj-pon3	1102
2250	eriatarka	1102
2251	ero.	1102
2252	espydw	1102
2253	evian	1102
2254	fattyboy69	1102
2255	friture	1102
2256	gador	1102
2257	golden_shun	1102
2258	gur	1102
2259	hero iv	1102
2260	hornyoldman	1102
2261	killer crane	1102
2262	kronos	1102
2263	kyotowolf	1102
2264	lgmlegend	1102
2265	ludo	1102
2266	marvel	1102
2267	md ftw	1102
2268	mr. xyz	1102
2269	mr.hammered	1102
2270	ninja cheezit	1102
2271	nuke	1102
2272	ohwowisuck	1102
2273	pene erecto	1102
2274	peromust	1102
2275	poséidon	1102
2276	raseri	1102
2277	redcamel63	1102
2278	sarcasm	1102
2279	saucybp	1102
2280	sirius b	1102
2281	smexqueen	1102
2282	soulous[sluke]	1102
2283	sq	1102
2284	staraptor	1102
2285	supersaiyan.	1102
2286	the rebiirth	1102
2287	theoneunknown	1102
2288	toshidwc	1102
2289	tosme	1102
2290	vappo	1102
2291	weegee12334	1102
2292	xiayuna	1102
2293	-cloud.	1101
2294	[akainulol]	1101
2295	[tk]boobee v2	1101
2296	amia miley	1101
2297	ashesxx	1101
2298	cuisson de rageux	1101
2299	dark sanyo	1101
2300	diocletian	1101
2301	faladran	1101
2302	farquhar	1101
2303	faytz	1101
2304	fireapril	1101
2305	foonciah	1101
2306	fuzzydice624	1101
2307	golden slumbers	1101
2308	hohohoho	1101
2309	i am a big haxxor	1101
2310	i do it	1101
2311	i go all out	1101
2312	icristiano95	1101
2313	jameson	1101
2314	karros	1101
2315	king big cheese	1101
2316	latiswagg	1101
2317	likearobot	1101
2318	m.o.p - leitao	1101
2319	mango19191	1101
2320	moop	1101
2321	mr. mi	1101
2322	ntsocial	1101
2323	old chap	1101
2324	ou_tiples_king	1101
2325	pipsi	1101
2326	ragemaster	1101
2327	shellder	1101
2328	skyy jon	1101
2329	tingting	1101
2330	trainerr	1101
2331	zetez	1101
2332	4sunshine	1100
2333	[fs] too damn cute	1100
2334	[imp]pkmtrainerblue	1100
2335	[nwo] lass	1100
2336	adjunct	1100
2337	americanlights	1100
2338	dondonkun	1100
2339	feelingreal	1100
2340	grachomp	1100
2341	greenturtlez	1100
2342	haxed-hv2	1100
2343	haxed-y1	1100
2344	human	1100
2345	isuckrealylbad	1100
2346	kd24-weather	1100
2347	legitcrit	1100
2348	m phoenix	1100
2349	melandru	1100
2350	millobellus	1100
2351	morty	1100
2352	muses	1100
2353	next.	1100
2354	pikmin	1100
2355	plausable	1100
2356	poe	1100
2357	proteus	1100
2358	psykout22	1100
2359	scary children	1100
2360	smashbros	1100
2361	tantalum	1100
2362	thatguy123	1100
2363	tofdw	1100
2364	viewme	1100
2365	-manaphy-	1099
2366	[m/s]menta92	1099
2367	bikenoob	1099
2368	bladeezz xsand5	1099
2369	c.c.c	1099
2370	counterteam	1099
2371	dat girl	1099
2372	davidpwns	1099
2373	db22	1099
2374	deoxys152	1099
2375	eh est un looser	1099
2376	eksdee	1099
2377	fire nigga	1099
2378	harsha[5]	1099
2379	homunculi	1099
2380	kafei-	1099
2381	kalinka	1099
2382	known mafia	1099
2383	lightningrook	1099
2384	lightsalot	1099
2385	llll	1099
2386	ludwig	1099
2387	me gusta	1099
2388	paolo-alt-test	1099
2389	pttp come back	1099
2390	ramirez	1099
2391	schelling	1099
2392	schrodinger	1099
2393	smashlloyd20	1099
2394	smurfy	1099
2395	soneca beta	1099
2396	spikychenn	1099
2397	sufi	1099
2398	sunset valley	1099
2399	the lightning master	1099
2400	tik	1099
2401	vintage	1099
2402	xmusex	1099
2403	y u no evolve	1099
2404	zapdos_trainer	1099
2405	zzazzdsa106	1099
2406	zzazzdsa318	1099
2407	103	1098
2408	[cc]sucka_punch	1098
2409	[fl] wogoru	1098
2410	[jst]2	1098
2411	[o3o] smash	1098
2412	[rrts]argus	1098
2413	[test]levy tran	1098
2414	bantersaurus	1098
2415	bladeezz sun [test1]	1098
2416	chocolate scizor	1098
2417	costatsoc	1098
2418	crazygio1	1098
2419	defiant	1098
2420	distantstar	1098
2421	dr. shipman	1098
2422	dreamrealm	1098
2423	ekfgioqbcjdbfi	1098
2424	epicragequit	1098
2425	everyday im	1098
2426	fie	1098
2427	fordan	1098
2428	furaiii	1098
2429	genies bro	1098
2430	gentle man	1098
2431	guildmage	1098
2432	halloran	1098
2433	haxmagnetz	1098
2434	hlaalu	1098
2435	is you rollin?	1098
2436	j1213	1098
2437	kort	1098
2438	mew420	1098
2439	milanor	1098
2440	movingup	1098
2441	ob halo god	1098
2442	old miserable fool	1098
2443	pk.mysterkryptoniano	1098
2444	ploufe	1098
2445	propokeplayer-jay	1098
2446	sand of dream	1098
2447	sauceyyboii	1098
2448	shalalaa	1098
2449	sideline story	1098
2450	spiderkingn	1098
2451	stuckey	1098
2452	toastydw	1098
2453	tra-la-la	1098
2454	trips	1098
2455	umadrain	1098
2456	vss	1098
2457	w-e	1098
2458	white wizard	1098
2459	z66667	1098
2460	zantar	1098
2461	-hatebreeder	1097
2462	[imperial]diego	1097
2463	[teamneo] fboseason	1097
2464	[tss]draco123	1097
2465	absolutezero90	1097
2466	animan	1097
2467	beanio12	1097
2468	blackstar	1097
2469	dcf	1097
2470	derrick rose	1097
2471	dont ch me plz	1097
2472	emma bunton	1097
2473	gargar	1097
2474	hippo hop	1097
2475	indicalmasindo	1097
2476	ise	1097
2477	itest	1097
2478	kirkhammet	1097
2479	langston hughes	1097
2480	latin 4fun	1097
Note that I stopped collecting at this point.

Source:
Code:
import string
import sys

file = open("pokemons.txt")
pokelist = file.readlines()
file.close()

lsnum = []
lsname = []
for line in range(0,len(pokelist)):
	lsnum.append(pokelist[line][0:str.find(pokelist[line],':')])
	lsname.append(pokelist[line][str.find(pokelist[line],' ')+1:len(pokelist[line])])

file = open("rankings.txt")
ratings = file.readlines()
file.close()

elite = []
for line in ratings:
	if int(line[str.rfind(line,'\t')+1:len(line)-1]) < 1337:
		break
	elite.append(line[str.find(line,'\t')+1:str.rfind(line,'\t')])


filename = str(sys.argv[1])
file = open(filename)
species = file.readlines()
battleCount = 0
teamCount = 0
counter = [0 for i in range(len(lsnum))]
trainerNextLine=True
for entry in range(0,len(species)):
	found = False
	if trainerNextLine:
		trainer = species[entry][0:len(species[entry])-1]
		trainerNextLine = False
		ctemp = []
	else:
		if species[entry] == "***\n" or species[entry] == "---\n":
			trainerNextLine = True
			#decide whether to count the team or not
			#if you were going to compare the trainer name against a database,
			#you'd do it here.
			if trainer in elite:
			#if len(ctemp) == 6: #only count teams with all six pokemon
				for i in ctemp:
					counter[i] = counter[i]+1.0 #rather than weighting equally, we
				#could use the trainer ratings db to weight these... 
				teamCount = teamCount+1
			
			if species[entry] == "---\n":
				battleCount=battleCount+1
		else:
			for i in range(0,len(lsnum)):
				if species[entry] == lsname[i]:
					ctemp.append(i)
					found = True
					break
			if not found:
				print species[entry]+" not found!"
				sys.exit()
total = sum(counter)

#for appearance-only form variations, we gotta manually correct (blegh)
counter[172] = counter[172] + counter[173] #spiky pichu
for i in range(507,534):
	counter[202] = counter[202]+counter[i] #unown
counter[352] = counter[352] + counter[553] + counter[554] + counter[555] #castform--if this is an issue, I will be EXTREMELY surprised
counter[413] = counter[413] + counter[551] + counter[552] #burmy
counter[422] = counter[422] + counter[556]  #cherrim
counter[423] = counter[423] + counter[557] #shellos
counter[424] = counter[424] + counter[558] #gastrodon
counter[615] = counter[615] + counter[616] #basculin
counter[621] = counter[621] + counter[622] #darmanitan
counter[652] = counter[652] + counter[653] + counter[654] + counter[655] #deerling
counter[656] = counter[656] + counter[657] + counter[658] + counter[659] #sawsbuck
counter[721] = counter[721] + counter[722] #meloetta
for i in range(507,534):
	counter[i] = 0
counter[173] = counter[553] = counter[554] = counter[555] = counter[551] = counter[552] = counter[556] = counter[557] = counter[558] = counter[616] = counter[622] = counter[653] = counter[654] = counter[655] = counter[657] = counter[658] = counter[659] = counter[722] = 0

#sort by usage
pokes = []
for i in range(0,len(lsname)):
	pokes.append([lsname[i][0:len(lsname[i])-1],counter[i]])
pokes=sorted(pokes, key=lambda pokes:-pokes[1])

print " Total battles: "+str(battleCount)
print " Total teams: "+str(teamCount)
print " Total pokemon: "+str(int(total))
print " + ---- + --------------- + ------ + ------- + "
print " | Rank | Pokemon         | Usage  | Percent | "
print " + ---- + --------------- + ------ + ------- + "
for i in range(0,len(pokes)):
	if pokes[i][1] == 0:
		break
	print ' | %-4d | %-15s | %-6d | %6.3f%% |' % (i+1,pokes[i][0],pokes[i][1],100.0*pokes[i][1]/total*6.0)


#csv output
#for i in range(len(lsnum)):
#	if (counter[i] > 0):
#		print lsnum[i]+","+lsname[i][0:len(lsname[i])-1]+","+str(counter[i])+","+str(round(100.0*counter[i]/battleCount/2,5))+"%"
This version is designed to function with "LogReaderOnCrack.py" and generates a table containing not only usage stats, but two relevant "pokemetrics." It also creates an "encounter matrix" that keeps track of what happens when two pokemon go head-to-head, but I'm not sure how it process it yet (hence, pickle it for later).

Usage:
Code:
python StatCounter.py "Raw/[Tier].txt" matrix.p
where matrix.p is the name of the file where you're going to dump your matrix.

Source:
Code:
import string
import sys
import cPickle as pickle

file = open("pokemons.txt")
pokelist = file.readlines()
file.close()

lsnum = []
lsname = []
for line in range(0,len(pokelist)):
	lsnum.append(pokelist[line][0:str.find(pokelist[line],':')])
	lsname.append(pokelist[line][str.find(pokelist[line],' ')+1:len(pokelist[line])])
filename = str(sys.argv[1])
file = open(filename)
species = file.readlines()
battleCount = 0
teamCount = 0
counter = [0 for i in range(len(lsnum))]
realCounter = [0 for i in range(len(lsnum))]
turnCounter = [0 for i in range(len(lsnum))]
encounterMatrix = [[[0 for k in range(9)] for j in range(len(lsnum))] for i in range(len(lsnum))]
trainerNextLine=True
eventNextLine=False
for entry in range(0,len(species)):
	found = False
	if trainerNextLine:
		trainer = species[entry]
		trainerNextLine = False
		ctemp = []
		turnt = []
	elif eventNextLine:
		if species[entry] == "---\n":
			eventNextLine = False
			trainerNextLine = True
			battleCount=battleCount+1
		else:
			poke1 = species[entry][0:string.find(species[entry]," vs.")]
			poke2 = species[entry][string.find(species[entry]," vs.")+5:string.find(species[entry],":")]
			event = species[entry][string.find(species[entry],":")+2:len(species[entry])-1]
			#ID pokemon involved
			for i in range(0,len(lsnum)):
				if poke1+"\n" == lsname[i]:
					break
			if i == len(lsnum):
				print poke1+" not found!"
				sys.exit()
			for j in range(0,len(lsnum)):
				if poke2+"\n" == lsname[j]:
					break
			if j == len(lsnum):
				print poke2+" not found!"
				sys.exit()
			#ID event type
			e = f = -1
			if (event == "double down"):
				e = f = 2
			elif (event == "double switch"):
				e = f = 5
			elif (event == "no clue what happened"):
				e = f = 8
			else:
				poke = event[0:string.find(event," was")]
				event2 = event[len(poke)+5:len(event)]
				p = 1
				if poke1 == poke:
					p = 0
				elif poke2 != poke:
					print "Houston, we have a problem."
					print entry
					sys.exit()
				if (event2 == "KOed") or (event2 == "u-turn KOed"):
					e = p
					f = (p+1)%2
				elif (event2 == "switched out"):
					e = p+3
					f = (p+1)%2+3
				elif (event2 == "forced out"):
					e = p+6
					f = (p+1)%2+6
				else:
					print "Houston, we have a problem."
					print entry
					sys.exit()
				encounterMatrix[i][j][e] = encounterMatrix[i][j][e]+1
				encounterMatrix[j][i][f] = encounterMatrix[j][i][f]+1

	elif species[entry] == "***\n" or species[entry] == "@@@\n":
			if species[entry] == "***\n":
				trainerNextLine = True
			else:
				eventNextLine = True
			#decide whether to count the team or not
			#if you were going to compare the trainer name against a database,
			#you'd do it here.
			#if len(ctemp) == 6: #only count teams with all six pokemon
			for i in range(len(ctemp)):
				counter[ctemp[i]] = counter[ctemp[i]]+1.0 #rather than weighting equally, we
				turnCounter[ctemp[i]] = turnCounter[ctemp[i]]+turnt[i]
				if turnt[i] > 0:
					realCounter[ctemp[i]] = realCounter[ctemp[i]]+1.0
				#could use the trainer ratings db to weight these... 
			teamCount = teamCount+1
			
	else:
		stemp = species[entry][0:string.rfind(species[entry]," (")]+"\n"
		turns = eval(species[entry][string.rfind(species[entry]," (")+2:string.rfind(species[entry],")")])
		if stemp != "???\n":
			for i in range(0,len(lsnum)):
				if stemp == lsname[i]:
					ctemp.append(i)
					turnt.append(turns)
					found = True
					break
			if not found:
				print stemp+" not found!"
				sys.exit()
total = sum(counter)
for i in range(len(lsnum)):
	if realCounter[i] > 0:
		turnCounter[i] = turnCounter[i]/realCounter[i]

pickle.dump(encounterMatrix,open(sys.argv[2],"w"))

pokes = []
for i in range(0,len(lsname)):
	pokes.append([lsname[i][0:len(lsname[i])-1],counter[i],realCounter[i],0,turnCounter[i]])
	for j in range(0,len(lsname)):
		pokes[i][3] = pokes[i][3] + encounterMatrix[i][j][1]+encounterMatrix[i][j][2]
	if pokes[i][2] > 0:
		pokes[i][3] = pokes[i][3]/pokes[i][2]

#for appearance-only form variations, we gotta manually correct (blegh)
for j in range(1,5):
	pokes[172][j] = pokes[172][j] + pokes[173][j] #spiky pichu
	for i in range(507,534):
		pokes[202][j] = pokes[202][j]+pokes[i][j] #unown
	pokes[352][j] = pokes[352][j] + pokes[553][j] + pokes[554][j] + pokes[555][j] #castform--if this is an issue, I will be EXTREMELY surprised
	pokes[413][j] = pokes[413][j] + pokes[551][j] + pokes[552][j] #burmy
	pokes[422][j] = pokes[422][j] + pokes[556][j]  #cherrim
	pokes[423][j] = pokes[423][j] + pokes[557][j] #shellos
	pokes[424][j] = pokes[424][j] + pokes[558][j] #gastrodon
	pokes[615][j] = pokes[615][j] + pokes[616][j] #basculin
	pokes[621][j] = pokes[621][j] + pokes[622][j] #darmanitan
	pokes[652][j] = pokes[652][j] + pokes[653][j] + pokes[654][j] + pokes[655][j] #deerling
	pokes[656][j] = pokes[656][j] + pokes[657][j] + pokes[658][j] + pokes[659][j] #sawsbuck
	pokes[721][j] = pokes[721][j] + pokes[722][j] #meloetta
	for i in range(507,534):
		pokes[i][j] = 0
	pokes[173][j] = pokes[553][j] = pokes[554][j] = pokes[555][j] = pokes[551][j] = pokes[552][j] = pokes[556][j] = pokes[557][j] = pokes[558][j] = pokes[616][j] = pokes[622][j] = pokes[653][j] = pokes[654][j] = pokes[655][j] = pokes[657][j] = pokes[658][j] = pokes[659][j] = pokes[722][j] = 0

#sort by usage
pokes=sorted(pokes, key=lambda pokes:-pokes[1])
l=1
print " Total battles: "+str(battleCount)
print " Total teams: "+str(teamCount)
print " Total pokemon: "+str(int(total))
print " + ---- + --------------- + ------ + ------ + ------ + ------- + "
print " | Rank | Pokemon         | Usage  | KOs/b  | Turns/b| Percent | "
print " + ---- + --------------- + ------ + ------ + ------ + ------- + "
for i in range(0,len(pokes)):
	if pokes[i][1] == 0:
		break
	print ' | %-4d | %-15s | %-6d | %6.3f | %6.3f | %6.3f%% |' % (l,pokes[i][0],pokes[i][1],pokes[i][3],pokes[i][4],100.0*pokes[i][1]/total*6.0)
	l=l+1
l=1
print " + ---- + --------------- + ------ + ------ + ------ + ------- + "
print
print "Sorted by KOs/battle"
pokes=sorted(pokes, key=lambda pokes:-pokes[3])
print " + ---- + --------------- + ------ + ------ + ------ + ------- + "
print " | Rank | Pokemon         | Usage  | KOs/b  | Turns/b| Percent | "
print " + ---- + --------------- + ------ + ------ + ------ + ------- + "
for i in range(0,len(pokes)):
	if pokes[i][1] == 0:
		break
	if (pokes[i][1] > 100) or (100.0*pokes[i][1]/total*6.0 > 1.0): #otherwise you get all sorts of silliness
		print ' | %-4d | %-15s | %-6d | %6.3f | %6.3f | %6.3f%% |' % (l,pokes[i][0],pokes[i][1],pokes[i][3],pokes[i][4],100.0*pokes[i][1]/total*6.0)
		l=l+1
l=1
print " + ---- + --------------- + ------ + ------ + ------ + ------- + "
print
print "Sorted by Turns in/battle"
pokes=sorted(pokes, key=lambda pokes:-pokes[4])
print " + ---- + --------------- + ------ + ------ + ------ + ------- + "
print " | Rank | Pokemon         | Usage  | KOs/b  | Turns/b| Percent | "
print " + ---- + --------------- + ------ + ------ + ------ + ------- + "
for i in range(0,len(pokes)):
	if pokes[i][1] == 0:
		break
	if (pokes[i][1] > 100) or (100.0*pokes[i][1]/total*6.0 > 1.0): #otherwise you get all sorts of silliness
		print ' | %-4d | %-15s | %-6d | %6.3f | %6.3f | %6.3f%% |' % (l,pokes[i][0],pokes[i][1],pokes[i][3],pokes[i][4],100.0*pokes[i][1]/total*6.0)
		l=l+1

print " + ---- + --------------- + ------ + ------ + ------ + ------- + "
#csv output
#for i in range(len(lsnum)):
#	if (counter[i] > 0):
#		print lsnum[i]+","+lsname[i][0:len(lsname[i])-1]+","+str(counter[i])+","+str(round(100.0*counter[i]/battleCount/2,5))+"%"
 

Antar

is a Battle Server Administratoris a Programmeris a Super Moderatoris a Community Contributor
Official Data Miner
#5
RunMe.sh

Putting it all together, I wrote a bash script to compile stats for the entire month on my Linux computer.

The computer has multiple processor cores, so I did some parallelizing to make use of them.

File Structure:
  • RunMe.sh sits in a folder with my two python scripts.
  • The month's battle logs are all in a folder called "2011-08".
  • In that folder are sub-folders for each day's logs (example: "2011-08-05").
  • Back in the main folder where the scripts sit, there are two empty folders, called "Raw" and "Usage". "Raw" will contain the lists of pokemon, while "Usage" will contain the stats.
Usage:
Code:
$./RunMe.sh
Source:
Code:
rm Raw/*
rm Stats/*

maxjobs=6 #set to number of multiprocessors

for  i in 2011-08/* 
do
	for j in "$i"/*
	do
		jobcnt=(`jobs -p`)
		while [ ${#jobcnt[@]} -ge $maxjobs ]
		do
			jobcnt=(`jobs -p`)
		done
		echo Processing $j
		python LogReader.py "$j" &
	done

#serial version:
#	for j in "$i"/*
#	do
#		echo Processing $j
#		python LogReader.py "$j"
#	done

done
wait




#stupid tier name changes--gotta consolidate...
cat "Raw/BW LC Rated.txt" >> "Raw/Standard LC Rated.txt"
cat "Raw/BW LC Unrated.txt" >> "Raw/Standard LC Unrated.txt"
cat "Raw/BW OU Rated.txt" >> "Raw/Standard OU Rated.txt"
cat "Raw/BW OU Unrated.txt" >> "Raw/Standard OU Unrated.txt"
cat "Raw/BW UU Rated.txt" >> "Raw/Standard UU Rated.txt"
cat "Raw/BW UU Unrated.txt" >> "Raw/Standard UU Unrated.txt"
cat "Raw/BW RU Rated.txt" >> "Raw/Standard RU Rated.txt"
cat "Raw/BW RU Unrated.txt" >> "Raw/Standard RU Unrated.txt"
cat "Raw/BW Uber Rated.txt" >> "Raw/Standard Ubers Rated.txt"
cat "Raw/BW Uber Unrated.txt" >> "Raw/Standard Ubers Unrated.txt"
rm "Raw/BW*.txt"

echo Compiling Stats...
for i in Raw/*; do python StatCounter.py "$i" > "Stats/${i/Raw}" ; done
 

Antar

is a Battle Server Administratoris a Programmeris a Super Moderatoris a Community Contributor
Official Data Miner
#6
Miscellaneous Scripts

For a file in the "Raw" folder (list of pokemon used in battle), this script will generate a list of the number of pokemon used in each battle. This list can then be imported into an analysis program for easy binning and plotting.

Usage:
Code:
python PPB.py "Raw/[Tier].txt" > [output.dat]
Example plot:


Source:
Code:
import string
import sys

filename = str(sys.argv[1])
file = open(filename)
species = file.readlines()

ppb=0

for entry in range(0,len(species)):
	if species[entry] == "---\n":
		print ppb
		ppb = 0
	else:
		ppb = ppb+1


Reads in a standard Smogon usage table and turns it into a csv sorted by species. Useful for comparing pokemon usage from month to month, or for doing statistics on multiple months.

Usage:
Code:
python TableReader.py file.txt
Source:
Code:
import string
import sys

file = open("pokemons.txt")
pokelist = file.readlines()
file.close()

lsname = []
for line in range(0,len(pokelist)):
	lsname.append(pokelist[line][str.find(pokelist[line],' ')+1:len(pokelist[line])-1])

filename = str(sys.argv[1])
file = open(filename)

table=file.readlines()

counter = [0 for i in range(len(lsname))]
for i in range(5,len(table)):
	j=26
	found = False
	while found == False:
		j=j-1
		if table[i][j] != ' ':
			found = True		

	name = table[i][10:j+1]
	found = False
	for j in range(0,len(lsname)):
		if name == lsname[j]:
			counter[j]=eval(table[i][string.rfind(table[i],' ',0,40)+1:43])
			found = True
			break
	if found == False:
		print name+" not found..."
		sys.exit()

for i in range(len(lsname)):
	print lsname[i][0:len(lsname[i])]+","+str(counter[i])
I modified the PO source code in a really simple way to get it to write player rankings to the console (which can, of course, be redirected to file) whenever I view them on PO (getting around the "can't copy/paste" issue). Unfortunately, you still need to navigate through each and every page of the rankings in order to get all the stats, and rapid-paging is flagged by the PO server as being "overactive," and it has a tendency to kick you. This means you have to log back in, RELOAD the page, and find where you left off. If you do this, you end up with a LOT of redundant entries. This script will remove the redundant entries.

Usage:
Code:
python RemoveRedundancy.py filename.txt
Source:
Code:
import string
import sys

filename = str(sys.argv[1])
file = open(filename)

ranking=file.readlines()

i=0
while i < len(ranking):
	rank = int(ranking[i][0:str.find(ranking[i],'\t')])
	if rank < i+1:
		del ranking[i]
	else:
		if rank > i+1:
			print "You screwed up."
			sys.exit()
		else:
			i=i+1

for line in ranking:
	print line[0:len(line)-1]
This script combines data from the previous three months, with weighting given by the ratio of 20-3-1. It needs the CSVs generated by TableReader.py as its inputs, although if I were less lazy, i could rewrite it to work with the standard usage tables.

Usage:
Code:
python ThreeMonth.py ThreeMonthsAgo.csv TwoMonthsAgo.csv LastMonth.csv
Source:
Code:
import csv
import string
import sys

may = []
jun = []
aug = []
maycsv = csv.reader(open(sys.argv[1], 'rb'), delimiter=',')
for line in maycsv:
	may.append([line[0],eval(line[1])])
juncsv = csv.reader(open(sys.argv[2], 'rb'), delimiter=',')
for line in juncsv:
	jun.append([line[0],eval(line[1])])
augcsv = csv.reader(open(sys.argv[3], 'rb'), delimiter=',')
for line in augcsv:
	aug.append([line[0],eval(line[1])])

counter = [0 for i in range(len(aug))]
for i in range(0,len(aug)):
	counter[i] = (1.0*may[i][1] + 3.0*jun[i][1] + 20.0*aug[i][1])/24.0
	#counter[i] = (3.0*jun[i][1] + 20.0*aug[i][1])/23.0

pokes = []
for i in range(0,len(aug)):
	pokes.append([aug[i][0],counter[i]])
pokes=sorted(pokes, key=lambda pokes:-pokes[1])

print
print
print
print " + ---- + --------------- + ------ + ------- + "
print " | Rank | Pokemon         | Usage  | Percent | "
print " + ---- + --------------- + ------ + ------- + "
for i in range(0,len(pokes)):
	if pokes[i][1] == 0:
		break
	print ' | %-4d | %-15s | %-6d | %6.3f%% |' % (i+1,pokes[i][0],0,pokes[i][1])
This code takes the usage tables and pulls out the list of pokemon that have a usage greater than 3.41%.

Usage:
Code:
python PullOU.py filename.txt
Source:
Code:
import string
import sys

file = open("pokemons.txt")
pokelist = file.readlines()
file.close()

lsname = []
for line in range(0,len(pokelist)):
	lsname.append(pokelist[line][str.find(pokelist[line],' ')+1:len(pokelist[line])-1])

filename = str(sys.argv[1])
file = open(filename)

table=file.readlines()

counter = [0 for i in range(len(lsname))]
for i in range(6,len(table)):
	j=26
	found = False
	while found == False:
		j=j-1
		if table[i][j] != ' ':
			found = True		

	name = table[i][10:j+1]
	found = False
	for j in range(0,len(lsname)):
		if name == lsname[j]:
			counter[j]=eval(table[i][string.rfind(table[i],' ',0,40)+1:43])
			found = True
			break
	if found == False:
		print name+" not found..."
		sys.exit()
outstring = ''
for i in range(0,len(lsname)):
	if counter[i] > 3.41:
		outstring = outstring+"\n"+lsname[i][0:len(lsname[i])]
print outstring
If you take the lists of pokemon in each tier from PullOU.py and put them in one file, you don't *quite* have a tier list yet, since pokemon that moved up a tier will be shown twice, and pokemon that moved down a tier will disappear altogether. So this program takes the previous tier list and the current "tier list" (as generated through PullOU.py and some fancy concatenation--you'll need to put in Ubers and BL yourself) and generates a NEW tier list, perfect for posting on forums. Note that the old and new tier list files that the program takes as inputs are NOT in the same format. I've included two sample files for reference.

Usage:
Code:
python Tiers.py currentTiers.txt oldTiers.txt
Example of currentTiers.txt
Code:
Arceus
Blaziken
Darkrai
Deoxys-A
Deoxys
Dialga
Garchomp
Giratina
Giratina-O
Groudon
Ho-Oh
Kyogre
Lugia
Manaphy
Mewtwo
Palkia
Rayquaza
Reshiram
Shaymin-S
Zekrom

Venusaur
Ninetales
Tentacruel
Gengar
Starmie
Gyarados
Vaporeon
Dragonite
Politoed
Espeon
Forretress
Scizor
Skarmory
Blissey
Tyranitar
Celebi
Swampert
Breloom
Salamence
Metagross
Latias
Latios
Jirachi
Infernape
Gastrodon
Bronzong
Lucario
Hippowdon
Toxicroak
Magnezone
Gliscor
Mamoswine
Heatran
Rotom-W
Deoxys-S
Excadrill
Conkeldurr
Scrafty
Reuniclus
Jellicent
Ferrothorn
Chandelure
Haxorus
Mienshao
Hydreigon
Volcarona
Terrakion
Virizion
Thundurus
Landorus

Espeon
Kyurem
Staraptor
Wobbuffet

Blastoise
Nidoqueen
Nidoking
Venomoth
Arcanine
Slowbro
Chansey
Jolteon
Snorlax
Zapdos
Mew
Crobat
Azumarill
Umbreon
Heracross
Houndoom
Kingdra
Donphan
Hitmontop
Raikou
Suicune
Celebi
Sceptile
Flygon
Milotic
Dusclops
Registeel
Empoleon
Roserade
Ambipom
Mismagius
Hippopotas
Abomasnow
Weavile
Rhyperior
Togekiss
Mamoswine
Gallade
Froslass
Uxie
Azelf
Shaymin
Rotom-H
Deoxys-D
Victini
Zoroark
Escavalier
Bisharp
Cobalion

Blastoise
Sandslash
Clefable
Venomoth
Primeape
Poliwrath
Alakazam
Magneton
Hitmonchan
Omastar
Kabutops
Moltres
Typhlosion
Quagsire
Umbreon
Slowking
Gligar
Steelix
Qwilfish
Smeargle
Miltank
Entei
Sceptile
Hariyama
Aggron
Medicham
Manectric
Sharpedo
Crawdaunt
Claydol
Gastrodon
Honchkrow
Munchlax
Drapion
Rhyperior
Electivire
Magmortar
Yanmega
Porygon-Z
Gallade
Dusknoir
Uxie
Cresselia
Rotom-C
Scolipede
Lilligant
Krookodile
Cofagrigus
Galvantula
Ferroseed
Durant
Example of oldTiers.txt
Code:
Arceus
Blaziken
Darkrai
Deoxys-A
Deoxys
Dialga
Garchomp
Giratina
Giratina-O
Groudon
Ho-Oh
Kyogre
Lugia
Manaphy
Mewtwo
Palkia
Rayquaza
Reshiram
Shaymin-S
Zekrom

Blissey
Breloom
Bronzong
Chandelure
Cloyster
Conkeldurr
Darmanitan
Deoxys-S
Dragonite
Excadrill
Ferrothorn
Forretress
Gengar
Gliscor
Gyarados
Haxorus
Heatran
Hippowdon
Hydreigon
Infernape
Jellicent
Jirachi
Landorus
Latias
Latios
Lucario
Machamp
Magnezone
Metagross
Mienshao
Ninetales
Politoed
Porygon2
Reuniclus
Rotom-W
Salamence
Scizor
Scrafty
Skarmory
Starmie
Swampert
Tentacruel
Terrakion
Thundurus
Tornadus
Toxicroak
Tyranitar
Vaporeon
Venusaur
Virizion
Volcarona
Whimsicott

Espeon
Kyurem
Staraptor
Wobbuffet

Abomasnow
Aerodactyl
Ambipom
Arcanine
Azelf
Azumarill
Bisharp
Celebi
Chansey
Charizard
Cobalion
Crobat
Deoxys-D
Donphan
Dusclops
Empoleon
Escavalier
Flygon
Froslass
Heracross
Hippopotas
Hitmontop
Houndoom
Jolteon
Kingdra
Mamoswine
Mew
Milotic
Mismagius
Nidoking
Nidoqueen
Raikou
Registeel
Roserade
Rotom-H
Sawsbuck
Shaymin
Sigilyph
Slowbro
Snorlax
Spiritomb
Suicune
Tangrowth
Togekiss
Victini
Victreebel
Weavile
Xatu
Zapdos
Zoroark
Source (since I've got UBB stuff in here, you're going to want to look at the source--hit the "quote" button):
Code:
import string
import sys

#read in files
file = open("pokemons.txt")
pokelist = file.readlines()
file.close()
file=open(str(sys.argv[1]))
curList = file.readlines() #current lists
file.close()
file=open(str(sys.argv[2]))
oldList = file.readlines() #previous cycle's tiers
file.close()

#parse files into tier lists
curUber = []
curOU = []
curBL = []
curUU = []
curRU = []

tn = 0
for line in curList:
	if line == '\n':
		tn = tn+1
	elif tn == 0:
		curUber.append(line)
	elif tn == 1:
		curOU.append(line)
	elif tn == 2:
		curBL.append(line)
	elif tn == 3:
		curUU.append(line)
	elif tn == 4:
		curRU.append(line)
	else:
		print "You screwed up, bub."
		sys.exit()
oldUber = []
oldOU = []
oldBL = []
oldUU = []

tn = 0
for line in oldList:
	if line == '\n':
		tn = tn+1
	elif tn == 0:
		oldUber.append(line)
	elif tn == 1:
		oldOU.append(line)
	elif tn == 2:
		oldBL.append(line)
	elif tn == 3:
		oldUU.append(line)
	else:
		print "You screwed up, bub."
		sys.exit()
		
	

tiers = []
for line in range(0,len(pokelist)):
	tn = 5
	name = pokelist[line][str.find(pokelist[line],' ')+1:len(pokelist[line])-1]

	#identify current tier
	for i in range(0,len(curUber)):
		if name == curUber[i][0:len(curUber[i])-1]:
			tn = 0
			break
	if tn == 5:
		for i in range(0,len(curOU)):
			if name == curOU[i][0:len(curOU[i])-1]:
				tn = 1
				break
	if tn == 5:
		for i in range(0,len(curBL)):
			if name == curBL[i][0:len(curBL[i])-1]:
				tn = 2
				break
	if tn == 5:
		for i in range(0,len(curUU)):
			if name == curUU[i][0:len(curUU[i])-1]:
				tn = 3
				break
	if tn == 5:
		for i in range(0,len(curRU)):
			if name == curRU[i][0:len(curRU[i])-1]:
				tn = 4
				break

	#make sure the poke isn't "NU" because it fell down a tier
	if tn == 5:
		otn = 5
		for i in range(0,len(oldUber)):
			if name == oldUber[i][0:len(oldUber[i])-1]:
				otn = 0
				break
		if otn == 5:
			for i in range(0,len(oldOU)):
				if name == oldOU[i][0:len(oldOU[i])-1]:
					otn = 1
					break
		if tn == 5:
			for i in range(0,len(oldBL)):
				if name == oldBL[i][0:len(oldBL[i])-1]:
					otn = 2
					break
		if tn == 5:
			for i in range(0,len(oldUU)):
				if name == oldUU[i][0:len(oldUU[i])-1]:
					otn = 3
					break
		#no need to search RU
		if otn == 0:
			tn = 1 #not that I think anyone if coming off the Ubers list
		elif otn == 1:
			tn = 3 #OU to UU (we don't want 'em going straight to BL)
		elif otn == 2:
			tn = 3 #coming off the BL list. Put 'em back in UU
		elif otn == 3:
			tn = 4 #UU to RU
	
	#get name of tier
	if tn == 0:
		tier = 'Uber'
	elif tn == 1:
		tier = 'OU'
	elif tn == 2:
		tier = 'BL'
	elif tn == 3:
		tier = 'UU'
	elif tn == 4:
		tier = 'RU'
	elif tn == 5:
		tier = 'NU'

	tiers.append([tn,name,tier])

tiers=sorted(tiers, key=lambda tiers:tiers[0])
print '[B]Uber[/B]\n[CODE]'
print tiers[0][1]
for i in range(1,len(tiers)):
	if tiers[i][0] == 5:
		break
	if tiers[i][0] > tiers[i-1][0]:
		print '
\n\n'+tiers[2]+'\n
Code:
\n'+tiers[i][1]
	else:
		print tiers[i][1]
print '
'[/CODE]
 
#7
Smogon isn't really friendly to developers, isn't it?
Anyway, do you have any idea on what to do with this stats? I have a similiar problem: i made a script that converts PO binary usage stats into MySQL db, which allows generating any kind of statistics, yet I can't think of anything usefull...
 

Antar

is a Battle Server Administratoris a Programmeris a Super Moderatoris a Community Contributor
Official Data Miner
#8
do you have any idea on what to do with this stats?
That's what we've been discussing here.

i made a script that converts PO binary usage stats...
do you have any specific knowledge of whether the Smogon server is still generating this data? Because if it is, with your help, I'll be able to parse it, and all the problems described in the thread above will vanish.
 
#9
do you have any specific knowledge of whether the Smogon server is still generating this data? Because if it is, with your help, I'll be able to parse it, and all the problems described in the thread above will vanish.
I'm pretty sure it is, it's done by server plugin and since Smogon provides limited usage stats each month, I assume they collect it. You need too ask the new server administartor for that though.
I used Beta's stats since they are always available.

As for the script, here's the package (nevermind russian, just press the big black button).
It's my second python script (after Hello, world!), so it might be coded pretty poorly.
The idea is pretty simple: It converts PO's binary files directly into MyISAM files (this is the fastest way) and adds necessary files (db structure and Index file) from templates so it can be used by MySQL.
The data there is exactly as it present in PO's files, here's the code that generates it.
 

Antar

is a Battle Server Administratoris a Programmeris a Super Moderatoris a Community Contributor
Official Data Miner
#10
I'm pretty sure it is, it's done by server plugin and since Smogon provides limited usage stats each month
That's actually the big issue--the plugin was causing the server to crash, so they had to disable it. That's why I've had to write all these scripts.

Or so is my understanding...
 
#11
I remember having an issue like this, but wasn't it fixed?
Your client version (1.0.30) doesn't match with the server's (1.0.23).
Oh, nevermind...
I guess we have to wait untill Smogon gets better with server handling.
 

Tomahawk

If you don't like stroopwafels you got to flikker op
is a Team Rater Alumnusis a Smogon Media Contributor Alumnus
#12
While this is obviously pretty cool, I have one question: does this only take into account battles where 'Save Log' is on? Cause then the stats would be kinda off...
 

Antar

is a Battle Server Administratoris a Programmeris a Super Moderatoris a Community Contributor
Official Data Miner
#13
While this is obviously pretty cool, I have one question: does this only take into account battles where 'Save Log' is on? Cause then the stats would be kinda off...
I do not believe so. It's already been shown that the server and the client software produce slightly different battle logs (client version 1.0.30 gives the full teams, while no version of the server does so currently), so I really doubt the server is querying whether the users have opted to save their battle logs.

But the only way to be 100% sure would be do dig around in the PO source code, and--I'll be honest--I'm not going to be doing that.