-
-
Save Lanjelin/809b74f95a25b9ae3284a155b0134167 to your computer and use it in GitHub Desktop.
WoW Armory
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
import urllib2, json | |
from multiprocessing.dummy import Pool as ThreadPool | |
from chars import chars | |
from charInfo import * | |
from createImg import * | |
from fetchChar import * | |
# Make the Pool of workers | |
pool = ThreadPool(int(len(chars)/3)) | |
print "Workers: " + str(int(len(chars)/3)) | |
def grabChars(chars): | |
return fetchChar(chars[0],chars[1],chars[2]) | |
results = pool.map(grabChars, chars) | |
pool.close() | |
pool.join() | |
level = 0 | |
num = 0 | |
miss = 0 | |
for x in range(0, int(len(results))): | |
if results[x] == "404": | |
miss += 1 | |
else: | |
level += int(results[x][1]) | |
num += 1 | |
print "No. chars: " + str(num) | |
print "Avg level: " + str(level/num) | |
print "Tot level: " + str(level) | |
print "" | |
print "Chars 404: " + str(miss) | |
print "" | |
cf, cl, cr, cc, ct = [],[],[],[],[] | |
for char in sorted(results, key=lambda stuff: stuff[1], reverse=True): | |
if char == "404": | |
continue | |
else: | |
c_name, c_level, c_gender, c_race, c_class, c_spec, c_realm = char #Splitting items returned | |
cf.append(int(getNumFaction(c_race))) | |
cl.append(str(c_level)) | |
cr.append(str(c_race) + "_" + str(c_gender)) | |
cc.append(str(c_class)) | |
if isinstance(c_spec,(int,long)): | |
ct.append(str(c_class) + "_" + str(c_spec)) | |
else: | |
ct.append("0") | |
c_faction, c_gender, c_race, c_spec, c_class = getCharInfo(c_gender,c_race,c_class,c_spec) #Getting string values | |
print c_name.ljust(10, " ") + "\t" + str(c_level) + "\t" + c_faction.ljust(8, " ") + "\t" + c_gender + "\t" + c_race.ljust(10, " ") + "\t" + c_spec.ljust(13, " ") + "\t" + c_class | |
img = createImg(cf, cl, cr, cc, ct) | |
img.save('test.jpg') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
#Translate numerical value to gender name of the character | |
def getGender(c_gender): | |
if (c_gender == 0): | |
return "Male" | |
elif (c_gender == 1): | |
return "Female" | |
#Translate numerical value to race name of the character | |
def getRace(c_race): | |
races = { | |
1:"Human", | |
2:"Orc", | |
3:"Dwarf", | |
4:"Night Elf", | |
5:"Undead", | |
6:"Tauren", | |
7:"Gnome", | |
8:"Troll", | |
9:"Goblin", | |
10:"Blood Elf", | |
11:"Draenei", | |
22:"Worgen", | |
24:"Pandaren", #Neutral | |
25:"Pandaren", #Alliance | |
26:"Pandaren" #Horde | |
} | |
if (races[c_race]): | |
return races[c_race] | |
#Translate numerical value to class name of the character | |
def getClass(c_class): | |
classes = { | |
1:"Warrior", | |
2:"Paladin", | |
3:"Hunter", | |
4:"Rogue", | |
5:"Priest", | |
6:"Death Knight", | |
7:"Shaman", | |
8:"Mage", | |
9:"Warlock", | |
10:"Monk", | |
11:"Druid", | |
12:"Demon Hunter" | |
} | |
if (classes[c_class]): | |
return classes[c_class] | |
#Translate numerical vale of class and spec into the name of spec of that character | |
def getSpec(c_class, c_spec): | |
specs = { | |
1:["Arms","Fury","Protection"], | |
2:["Holy","Protection","Retribution"], | |
3:["Beast Master","Marksmanship","Survival"], | |
4:["Assassination","Outlaw","Subtley"], | |
5:["Discipline","Holy","Shadow"], | |
6:["Blood","Frost","Unholy"], | |
7:["Elemental","Enhancement","Restoration"], | |
8:["Arcane","Fire","Frost"], | |
9:["Affliction","Demonology","Destruction"], | |
10:["Brewmaster","Mistweaver","Windwalker"], | |
11:["Balance","Feral","Guardian","Restoration"], | |
12:["Havoc","Vengeance"] | |
} | |
if (specs[c_class][c_spec]): | |
return specs[c_class][c_spec] | |
def getFaction(c_race): | |
ally = [1,3,4,7,11,22,25] | |
horde = [2,5,6,8,9,10,26] | |
if c_race in ally: | |
return "Alliance" | |
elif c_race in horde: | |
return "Horde" | |
else: #Should be num 24 aka Panda only | |
return "Neutral" | |
def getNumFaction(c_race): | |
ally = [1,3,4,7,11,22,25] | |
horde = [2,5,6,8,9,10,26] | |
if c_race in ally: | |
return 1 | |
elif c_race in horde: | |
return 2 | |
else: | |
return 0 | |
def getCharInfo(in_gender, in_race, in_class, in_spec): | |
return getFaction(in_race), getGender(in_gender), getRace(in_race), getSpec(in_class, in_spec), getClass(in_class) | |
#c_faction, c_gender, c_race, c_spec, c_class = getCharInfo(1,1,9,1) | |
#print c_faction + c_gender + c_race + c_spec + c_class | |
#info = getCharInfo(1,1,9,1) | |
#print info[0] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
chars = [ | |
("Lanjelin","Stormreaver","EU"), | |
("Slemmingen","Stormreaver","EU"), | |
("Mutator","Stormreaver","EU"), | |
("Tengle","Stormreaver","EU"), | |
("Thil","Stormreaver","EU"), | |
("Verberatus","Stormreaver","EU"), | |
("Badingo","Stormreaver","EU"), | |
("Lillija","Stormreaver","EU"), | |
("Minch","Stormreaver","EU"), | |
("Thraag","Stormreaver","EU"), | |
("Zanglia","Stormreaver","EU"), | |
("Zefonith","Stormreaver","EU"), | |
("Abeo","Frostmane","EU"), | |
("Clones","Frostmane","EU"), | |
("Venath","Frostmane","EU"), | |
("Zefonith","Frostmane","EU"), | |
("Zèrg","Frostmane","EU"), | |
("Lanjelin","Frostmane","EU"), | |
("Minath","Frostmane","EU"), | |
("Insomnium","Frostmane","EU"), | |
("Ilil","Frostmane","EU"), | |
("Zodila","Frostmane","EU"), | |
("Zanglia","Frostmane","EU"), | |
("Flazago","Aszune","EU"), | |
("Wulver","Aszune","EU"), | |
("Knoplia","Aszune","EU"), | |
("Kemek","Aszune","EU"), | |
("Sulia","Aszune","EU"), | |
("Tigia","Aszune","EU"), | |
("Whoper","Aszune","EU"), | |
("Waldek","Aszune","EU"), | |
("Mythisio","Aszune","EU"), | |
("Comala","Aszune","EU"), | |
("Solab","Aszune","EU"), | |
("Heilageku","Grim Batol","EU"), | |
("Kalyps","Grim Batol","EU"), | |
("Cili","Grim Batol","EU"), | |
("Corali","Grim Batol","EU"), | |
("Kaliti","Grim Batol","EU"), | |
("Awry","Grim Batol","EU"), | |
("Daunakken","Grim Batol","EU"), | |
("Qant","Grim Batol","EU"), | |
("Minitaur","Grim Batol","EU"), | |
("Colossia","Grim Batol","EU"), | |
("Klandaia","Grim Batol","EU"), | |
("Zorkia","Defias Brotherhood","EU"), | |
("Invictu","Defias Brotherhood","EU"), | |
("Carlyps","Defias Brotherhood","EU"), | |
("Tilath","Defias Brotherhood","EU"), | |
("Dorgul","Defias Brotherhood","EU") | |
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
from PIL import Image | |
from PIL import ImageDraw | |
#from PIL import ImageFont | |
imloc = "./wow/" | |
def createImg(cf, cl, cr, cc, ct): #faction, level, race, class, talent | |
tot_w = int(len(cr)) * 18 | |
tot_h = 72 #4 img height | |
new_im = Image.new('RGB', (tot_w, tot_h)) | |
offset_x = 0 | |
draw = ImageDraw.Draw(new_im) | |
#font = ImageFont.truetype("RobotoCondensed-Bold.ttf", 16) # throws error, missing lib | |
fcolors = { | |
0:"yellow", | |
1:"blue", | |
2:"red" | |
} | |
for cfac, clev, crace, cclass, ctalent in zip(cf, cl, cr, cc, ct): | |
draw.rectangle([(offset_x * 18, 0),(offset_x * 18 + 18, 18)], (fcolors[int(cfac)]), outline=None) | |
draw.text((offset_x * 18 + 9 - (len(clev)*3), 3),clev,(255,255,255)) | |
new_im.paste(Image.open(imloc + "r_" + crace + ".jpg"), (offset_x * 18, 18)) | |
new_im.paste(Image.open(imloc + "c_" + cclass + ".jpg"), (offset_x * 18, 36)) | |
new_im.paste(Image.open(imloc + "t_" + ctalent + ".jpg"), (offset_x * 18, 54)) | |
offset_x += 1 | |
draw.line(((offset_x * 18)-1,0, (offset_x * 18)-1,tot_h), fill="black", width=1) | |
draw.line(((offset_x - 1) * 18,18, offset_x * 18,18), fill="black", width=1) | |
draw.line(((offset_x - 1) * 18,36, offset_x * 18,36), fill="black", width=1) | |
draw.line(((offset_x - 1) * 18,54, offset_x * 18,54), fill="black", width=1) | |
draw.line((0,0, 0,tot_h), fill="black", width=1) | |
draw.line((0,0, tot_w,0), fill="black", width=1) | |
draw.line((0,tot_h, tot_w,tot_h), fill="black", width=1) | |
draw.line((tot_w,0, tot_w,tot_h), fill="black", width=1) | |
return new_im | |
cfac = ["1","2","1",1] | |
clev = ["1","76","109", "12"] | |
crac = ["5_1","4_0","8_1", "2_1"] | |
ccla = ["4","7","11", "12"] | |
ctal = ["5_2","4_1","3_1","7_1"] | |
#createImg(cfac, clev, crac, ccla, ctal).save('test.jpg') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
import os | |
from urllib2 import urlopen, URLError, HTTPError, build_opener | |
def Download(url, file): | |
name = file | |
try: | |
o = build_opener() | |
o.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20120101 Firefox/33.0')] | |
get = o.open(url) | |
with open(file, "wb") as file: | |
file.write(get.read()) | |
file.close() | |
return os.path.basename(file.name) + " saved successfully." | |
except HTTPError, e: | |
return "HTTP Error: " + str(e.code) + " - " + name #url | |
except URLError, e: | |
return "URL Error: " + str(e.reason) + " - " + name #url | |
def Down(url): | |
file = url.split('/')[-1] | |
return Download(url, file) | |
#print downloadSimple("http://placehold.it/350x150") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
import urllib2, json | |
apikey = "m7ec9xtrvn6p3fj8bpndt978um8m78g6" | |
def fetchChar(name, realm, loc): | |
if loc.upper() == "CN": | |
#Still not working though, see dev forum. | |
url = "https://api.battlenet.com.cn/wow/character/"+realm+"/"+name+"?fields=talents&locale=en_GB&apikey="+apikey | |
else: | |
url = "https://"+loc+".api.battle.net/wow/character/"+realm+"/"+name+"?fields=talents&locale=en_GB&apikey="+apikey | |
try: | |
response = urllib2.urlopen(url) | |
except: | |
print "Couldn't find "+name+" - "+realm+" - "+loc | |
return "404" | |
else: | |
data = json.load(response) | |
for item in data["talents"]: | |
if item["calcSpec"]: | |
try: | |
if item["selected"]: | |
talent = item["spec"]["order"] | |
except: | |
continue | |
return data['name'].encode("utf-8"), data['level'], data['gender'], data['race'], data['class'], talent, data['realm'].encode("utf-8") | |
#print fetchChar("Lanjelin","Stormreaver","EU") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
from download import * | |
path = "./wow/" | |
print Download("http://wow.zamimg.com/images/wow/icons/small/class_warrior.jpg", path+"c_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/class_paladin.jpg", path+"c_2.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/class_hunter.jpg", path+"c_3.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/class_rogue.jpg", path+"c_4.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/class_priest.jpg", path+"c_5.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/class_deathknight.jpg", path+"c_6.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/class_shaman.jpg", path+"c_7.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/class_mage.jpg", path+"c_8.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/class_warlock.jpg", path+"c_9.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/class_monk.jpg", path+"c_10.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/class_druid.jpg", path+"c_11.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/class_demonhunter.jpg", path+"c_12.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_human_male.jpg", path+"r_1_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_human_female.jpg", path+"r_1_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_orc_male.jpg", path+"r_2_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_orc_female.jpg", path+"r_2_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_dwarf_male.jpg", path+"r_3_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_dwarf_female.jpg", path+"r_3_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_nightelf_male.jpg", path+"r_4_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_nightelf_female.jpg", path+"r_4_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_scourge_male.jpg", path+"r_5_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_scourge_female.jpg", path+"r_5_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_tauren_male.jpg", path+"r_6_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_tauren_female.jpg", path+"r_6_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_gnome_male.jpg", path+"r_7_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_gnome_female.jpg", path+"r_7_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_troll_male.jpg", path+"r_8_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_troll_female.jpg", path+"r_8_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_goblin_male.jpg", path+"r_9_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_goblin_female.jpg", path+"r_9_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_bloodelf_male.jpg", path+"r_10_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_bloodelf_female.jpg", path+"r_10_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_draenei_male.jpg", path+"r_11_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_draenei_female.jpg", path+"r_11_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_worgen_male.jpg", path+"r_22_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_worgen_female.jpg", path+"r_22_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_pandaren_male.jpg", path+"r_24_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_pandaren_female.jpg", path+"r_24_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_pandaren_male.jpg", path+"r_25_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_pandaren_female.jpg", path+"r_25_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_pandaren_male.jpg", path+"r_26_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/race_pandaren_female.jpg", path+"r_26_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/ability_warrior_savageblow.jpg", path+"t_1_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/ability_warrior_innerrage.jpg", path+"t_1_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/ability_warrior_defensivestance.jpg", path+"t_1_2.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/spell_holy_holybolt.jpg", path+"t_2_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/ability_paladin_shieldofthetemplar.jpg", path+"t_2_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/spell_holy_auraoflight.jpg", path+"t_2_2.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/ability_hunter_bestialdiscipline.jpg", path+"t_3_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/ability_hunter_focusedaim.jpg", path+"t_3_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/ability_hunter_camouflage.jpg", path+"t_3_2.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/ability_rogue_eviscerate.jpg", path+"t_4_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/ability_backstab.jpg", path+"t_4_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/ability_stealth.jpg", path+"t_4_2.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/spell_holy_powerwordshield.jpg", path+"t_5_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/spell_holy_guardianspirit.jpg", path+"t_5_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/spell_shadow_shadowwordpain.jpg", path+"t_5_2.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/spell_deathknight_bloodpresence.jpg", path+"t_6_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/spell_deathknight_frostpresence.jpg", path+"t_6_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/spell_deathknight_unholypresence.jpg", path+"t_6_2.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/spell_nature_lightning.jpg", path+"t_7_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/spell_nature_lightningshield.jpg", path+"t_7_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/spell_nature_magicimmunity.jpg", path+"t_7_2.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/spell_holy_magicalsentry.jpg", path+"t_8_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/spell_fire_firebolt02.jpg", path+"t_8_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/spell_frost_frostbolt02.jpg", path+"t_8_2.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/spell_shadow_deathcoil.jpg", path+"t_9_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/spell_shadow_metamorphosis.jpg", path+"t_9_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/spell_shadow_rainoffire.jpg", path+"t_9_2.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/monk_stance_drunkenox.jpg", path+"t_10_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/monk_stance_wiseserpent.jpg", path+"t_10_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/monk_stance_whitetiger.jpg", path+"t_10_2.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/spell_nature_starfall.jpg", path+"t_11_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/ability_druid_catform.jpg", path+"t_11_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/ability_racial_bearform.jpg", path+"t_11_2.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/spell_nature_healingtouch.jpg", path+"t_11_3.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/ability_demonhunter_specdps.jpg", path+"t_12_0.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/ability_demonhunter_spectank.jpg", path+"t_12_1.jpg") | |
print Download("http://wow.zamimg.com/images/wow/icons/small/inv_misc_questionmark.jpg", path+"t_0.jpg") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment