1. Welcome to Smogon Forums! Please take a minute to read the rules.
  2. New to the forums? Check out our Mentorship Program!
    Our mentors will answer your questions and help you become a part of the community!

Programming Turning Battle Logs into Usage Stats

Discussion in 'Technical Projects' started by Antar, Sep 11, 2011.

  1. Antar

    Antar That's Dr. Antar to you
    is a Battle Server Administratoris a Programmeris a Super Moderatoris a Community Contributor
    Official Data Miner

    Joined:
    Feb 17, 2010
    Messages:
    3,023
    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.
  2. Antar

    Antar That's Dr. Antar to you
    is a Battle Server Administratoris a Programmeris a Super Moderatoris a Community Contributor
    Official Data Miner

    Joined:
    Feb 17, 2010
    Messages:
    3,023
    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!!!
  3. Antar

    Antar That's Dr. Antar to you
    is a Battle Server Administratoris a Programmeris a Super Moderatoris a Community Contributor
    Official Data Miner

    Joined:
    Feb 17, 2010
    Messages:
    3,023
    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.

    LogReaderOnCrack.py (open)
    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()
    


    Change Log (open)

    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.
  4. Antar

    Antar That's Dr. Antar to you
    is a Battle Server Administratoris a Programmeris a Super Moderatoris a Community Contributor
    Official Data Miner

    Joined:
    Feb 17, 2010
    Messages:
    3,023
    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))+"%"
    
    Change log (open)

    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).


    Old version that writes as csv (open)

    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))+"%"
    


    StatCounter1337.py (open)

    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))+"%"
    


    StatCounterOnCrack.py (open)

    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))+"%"
    
  5. Antar

    Antar That's Dr. Antar to you
    is a Battle Server Administratoris a Programmeris a Super Moderatoris a Community Contributor
    Official Data Miner

    Joined:
    Feb 17, 2010
    Messages:
    3,023
    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
    
  6. Antar

    Antar That's Dr. Antar to you
    is a Battle Server Administratoris a Programmeris a Super Moderatoris a Community Contributor
    Official Data Miner

    Joined:
    Feb 17, 2010
    Messages:
    3,023
    Miscellaneous Scripts

    PPB.py (open)
    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:
    [​IMG]

    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
    


    TableReader.py (open)

    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])
    


    RemoveRedundancy.py (open)

    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]
    


    ThreeMonth.py (open)

    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])


    PullOU.py (open)

    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


    Tiers.py (open)

    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. whitefag

    whitefag

    Joined:
    Jul 1, 2010
    Messages:
    46
    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...
  8. Antar

    Antar That's Dr. Antar to you
    is a Battle Server Administratoris a Programmeris a Super Moderatoris a Community Contributor
    Official Data Miner

    Joined:
    Feb 17, 2010
    Messages:
    3,023
    That's what we've been discussing here.

    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. whitefag

    whitefag

    Joined:
    Jul 1, 2010
    Messages:
    46
    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.
  10. Antar

    Antar That's Dr. Antar to you
    is a Battle Server Administratoris a Programmeris a Super Moderatoris a Community Contributor
    Official Data Miner

    Joined:
    Feb 17, 2010
    Messages:
    3,023
    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. whitefag

    whitefag

    Joined:
    Jul 1, 2010
    Messages:
    46
    I remember having an issue like this, but wasn't it fixed?
    Oh, nevermind...
    I guess we have to wait untill Smogon gets better with server handling.
  12. Tomahawk

    Tomahawk Glory to Arstotzka!
    is a Team Rater Alumnus
    Mentor

    Joined:
    Oct 2, 2010
    Messages:
    2,004
    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...
  13. Antar

    Antar That's Dr. Antar to you
    is a Battle Server Administratoris a Programmeris a Super Moderatoris a Community Contributor
    Official Data Miner

    Joined:
    Feb 17, 2010
    Messages:
    3,023
    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.
  14. Antar

    Antar That's Dr. Antar to you
    is a Battle Server Administratoris a Programmeris a Super Moderatoris a Community Contributor
    Official Data Miner

    Joined:
    Feb 17, 2010
    Messages:
    3,023
    Just updated the third post with some more scripts. Enjoy!
  15. Antar

    Antar That's Dr. Antar to you
    is a Battle Server Administratoris a Programmeris a Super Moderatoris a Community Contributor
    Official Data Miner

    Joined:
    Feb 17, 2010
    Messages:
    3,023
    I've uploaded my current scripts to a shiny new github repo. If you have the desire to contribute / modify any of my code, feel free to contribute through there.

Users Viewing Thread (Users: 0, Guests: 0)