From 6b17e28d90c822084f558109ff2c5cb30aa357fe Mon Sep 17 00:00:00 2001 From: Sol Date: Fri, 8 Mar 2013 03:48:18 +0000 Subject: [PATCH] - Removing reprintSetInfo.py and setInfoScript.py due to the new assignSetInfo script that should be able to handle that task just fine by itself --- .gitattributes | 2 - res/reprintSetInfo.py | 116 ------------------ res/setInfoScript.py | 267 ------------------------------------------ 3 files changed, 385 deletions(-) delete mode 100755 res/reprintSetInfo.py delete mode 100755 res/setInfoScript.py diff --git a/.gitattributes b/.gitattributes index 33256e799c6..5a6a764b249 100644 --- a/.gitattributes +++ b/.gitattributes @@ -13596,7 +13596,6 @@ res/quest/world/shandalar/duels/Winged[!!-~]Stallion[!!-~]3.dck -text res/quest/world/shandalar/duels/Witch[!!-~]2.dck -text res/quest/world/shandalar/duels/Witch[!!-~]3.dck -text res/quest/world/worlds.txt -text -res/reprintSetInfo.py svneol=native#text/x-python res/sealed/ArabianExtended.sealed -text res/sealed/GtcGuildBoros.sealed -text res/sealed/GtcGuildDimir.sealed -text @@ -13619,7 +13618,6 @@ res/sealed/RtRPromoIzzet.sealed -text res/sealed/RtRPromoRakdos.sealed -text res/sealed/RtRPromoSelesnya.sealed -text res/sealed/juzamjedi.sealed -text -res/setInfoScript.py svneol=native#text/x-python res/skins/dark_ascension/bg_match.jpg -text res/skins/dark_ascension/bg_splash.png -text res/skins/dark_ascension/bg_texture.jpg -text diff --git a/res/reprintSetInfo.py b/res/reprintSetInfo.py deleted file mode 100755 index 95c922e05e7..00000000000 --- a/res/reprintSetInfo.py +++ /dev/null @@ -1,116 +0,0 @@ -#!/usr/bin/env python - -# This script grabs the list of all cards in a set and clears out the setInfo -# After running this script, re-run setInfoScript to fill in the slots -# Run this Script with a command line argument, as below - -# $ python reprintSetInfo.py -# $ python reprintSetInfo.py M12 - -from httplib import HTTP -from urlparse import urlparse -from urllib import urlopen -import sys -import os - -class SetInfo: - def __init__(self, set, rarity, image): - self.set = set - self.rarity = rarity - self.image = image - -class Card: - def __init__(self, name, cleanName): - self.name = name - self.cleanName = cleanName - self.hasSet = False - self.sets = {} - -def clean(name): - return name.replace(' ','_').replace('\'','').replace('-','_').replace('"','').replace(',','').lower() - -def getCardsInSet(): - html = urlopen('http://magiccards.info/query?q=e:'+setAbbr+'&v=olist').read() - - start = html.find('Card name') - end = html.find('', start) - block = html[start:end] - - while True: - nameIndex = block.find('.html">') - - if nameIndex == -1: - break - - nameEnd = block.find('<',nameIndex) - - name = block[nameIndex+7:nameEnd] - - # Add name to array - nameList.append(clean(name)+'.txt') - - block = block[nameEnd:] - - return - -folder = "cardsfolder" -err = open('reprintSetInfo.log','w') - -# THIS NEEDS TO BE UPDATED TO THE SET YOU WANT TO UPDATE -# SOME ARE THREE LETTER ABBR. BUT SOME ARE JUST TWO. CHECK BEFORE YOU RUN! -print "Using Set: " + sys.argv[1] -setAbbr = sys.argv[1] - -cardDict = {} -setStr = 'SetInfo:' -oracleStr = 'Oracle:' -nameList = [] -getCardsInSet() - -for fileName in nameList: - # Join new folder convention cardsfolder// - filePath = os.path.join(folder, fileName[0].lower(), fileName) - print filePath - - # if file doesn't exist continue - if not os.path.isfile(filePath): - continue - - file = open(filePath) - cleanName = fileName.replace('.txt', '') - - line = file.readline().strip() - # Handle name and creation - name = line.replace('Name:','') - - card = Card(name, cleanName) - cardDict[cleanName] = card - card.lines = line + '\n' - - # Start parsing the rest of the data file - line = file.readline().strip() - - while line != 'End': - # Skip empty lines - if line == '': - line = file.readline().strip() - continue - - # We really shouldn - if line == 'End': - break - - # Skip SetInfo lines - if line.find(setStr) == -1 and line.find(oracleStr) == -1: - card.lines += line +'\n' - - line = file.readline().strip() - - file = open(filePath, 'w') - file.write(card.lines) - - file.write('End') - file.close() - err.write(card.name + '... Updated\n') - -err.close() diff --git a/res/setInfoScript.py b/res/setInfoScript.py deleted file mode 100755 index a46c4e6103d..00000000000 --- a/res/setInfoScript.py +++ /dev/null @@ -1,267 +0,0 @@ -#!/usr/bin/env python - -# This python script is designed to handle the following: individual cards located in /res/cardsfolder -# Insert of SetInfo data into data files from magiccards.info - -from httplib import HTTP -from urlparse import urlparse -from urllib import urlopen -import os,fnmatch - -def getURL(url): - return urlopen(url).read() - -class SetInfo: - def __init__(self, set, rarity, image): - self.set = set - self.rarity = rarity - self.image = image - -class Card: - def __init__(self, name, cleanName): - self.name = name - self.cleanName = cleanName - self.hasSet = False - self.sets = {} - -def initSets(): - # Base Sets - allSets['Limited Edition Alpha'] = 'LEA' - allSets['Limited Edition Beta'] = 'LEB' - allSets['Unlimited Edition'] = '2ED' - allSets['Revised Edition'] = '3ED' - allSets['Fourth Edition'] = '4ED' - allSets['Fifth Edition'] = '5ED' - allSets['Classic Sixth Edition'] = '6ED' - allSets['Seventh Edition'] = '7ED' - allSets['Eighth Edition'] = '8ED' - allSets['Ninth Edition'] = '9ED' - allSets['Tenth Edition'] = '10E' - allSets['Magic 2010'] = 'M10' - allSets['Magic 2011'] = 'M11' - allSets['Magic 2012'] = 'M12' - allSets['Magic 2013'] = 'M13' - - # Multiplayer Sets - allSets['Commander'] = 'COM' - allSets['Planechase 2012 Edition'] = 'PC2' - - # Portal - allSets['Portal'] = 'POR' - allSets['Portal Second Age'] = 'PO2' - allSets['Portal Three Kingdoms'] = 'PTK' - - # Starter - allSets['Starter 1999'] = 'S99' - allSets['Starter 2000'] = 'S00' - - # Early Sets - allSets['Arabian Nights'] = 'ARN' - allSets['Antiquities'] = 'ATQ' - allSets['Legends'] = 'LEG' - allSets['The Dark'] = 'DRK' - allSets['Fallen Empires'] = 'FEM' - allSets['Homelands'] = 'HML' - allSets['Chronicles'] = 'CHR' - - # Ice Age - allSets['Ice Age'] = 'ICE' - allSets['Alliances'] = 'ALL' - allSets['Coldsnap'] = 'CSP' - - # Mirage - allSets['Mirage'] = 'MIR' - allSets['Visions'] = 'VIS' - allSets['Weatherlight'] = 'WTH' - - # Rath Cycle - allSets['Tempest'] = 'TMP' - allSets['Stronghold'] = 'STH' - allSets['Exodus'] = 'EXO' - - # Artifacts Cycle - allSets['Urza\'s Saga'] = 'USG' - allSets['Urza\'s Legacy'] = 'ULG' - allSets['Urza\'s Destiny'] = 'UDS' - - # Masques - allSets['Mercadian Masques'] = 'MMQ' - allSets['Nemesis'] = 'NMS' - allSets['Prophecy'] = 'PCY' - - # Invasion - allSets['Invasion'] = 'INV' - allSets['Planeshift'] = 'PLS' - allSets['Apocalypse'] = 'APC' - - # Odyssey - allSets['Odyssey'] = 'ODY' - allSets['Torment'] = 'TOR' - allSets['Judgment'] = 'JUD' - - # Onslaught - allSets['Onslaught'] = 'ONS' - allSets['Legions'] = 'LGN' - allSets['Scourge'] = 'SCG' - - # Mirrodin - allSets['Mirrodin'] = 'MRD' - allSets['Darksteel'] = 'DST' - allSets['Fifth Dawn'] = '5DN' - - # Kamigawa - allSets['Champions of Kamigawa'] = 'CHK' - allSets['Betrayers of Kamigawa'] = 'BOK' - allSets['Saviors of Kamigawa'] = 'SOK' - - # Ravnica - allSets['Ravnica: City of Guilds'] = 'RAV' - allSets['Guildpact'] = 'GPT' - allSets['Dissension'] = 'DIS' - - # Time Spiral - allSets['Time Spiral'] = 'TSP' - allSets['Time Spiral "Timeshifted"'] = 'TSB' - allSets['Planar Chaos'] = 'PLC' - allSets['Future Sight'] = 'FUT' - - # Lorwyn - allSets['Lorwyn'] = 'LRW' - allSets['Morningtide'] = 'MOR' - - # Shadowmoor - allSets['Shadowmoor'] = 'SHM' - allSets['Eventide'] = 'EVE' - - # Alara - allSets['Shards of Alara'] = 'ALA' - allSets['Conflux'] = 'CFX' - allSets['Alara Reborn'] = 'ARB' - - # Zendikar - allSets['Zendikar'] = 'ZEN' - allSets['Worldwake'] = 'WWK' - allSets['Rise of the Eldrazi'] = 'ROE' - - # Scars of Mirrodin - allSets['Scars of Mirrodin'] = 'SOM' - allSets['Mirrodin Besieged'] = 'MBS' - allSets['New Phyrexia'] = 'NPH' - - # Innistrad - allSets['Innistrad']='ISD' - allSets['Dark Ascension']='DKA' - allSets['Avacyn Restored']='AVR' - - # Return to Ravnica - allSets['Return to Ravnica']='RTR' - allSets['Gatecrash']='GTC' - #allSets['Dragon\'s Maze']='DGM' - -def addSets(card): - html = getURL('http://magiccards.info/query?q=!'+card.name) - start = html.find('
Editions:
') - end = html.find('
Languages:
', start) - block = html[start:end] - - print card.name - - for edition in allSets.keys(): - edIndex = block.find('>'+edition+'<') # Portal/Mirrodin issue - - if edIndex == -1: - edIndex = block.find('>'+edition+' (') # Single set issue - if edIndex == -1: - continue - - # Scrape rarity - rarityIndex = block.find('(',edIndex) - rarity = block[rarityIndex+1:block.find(')',rarityIndex)] - raritySpace = rarity.find(' ') - if raritySpace != -1: - rarity = rarity[0:raritySpace] # For older cards - - # What to do with TimeShifted cards? - if rarity == 'Special' and edition != 'Time Spiral "Timeshifted"': - continue - - # Get setAbbreviation and setNumber - dataIndex = block.rfind('"/',0,edIndex) - data = block[dataIndex+2:edIndex-1] # 1 instead of 2 because of Portal/Mirrodin Issue - - splitData = data.split('/') - setAbbr = splitData[0] - setNum = splitData[2].replace('.html', '') - - if len(setNum) > 4: - # Setnum not available here for most recent set. Switch to the .jpg used on page - jpgIndex = html.find('.jpg') - data = html[html.rfind('scans/en/', 0, jpgIndex):jpgIndex] - - # data = scans/en/[set]/[num] - splitData = data.split('/') - setAbbr = splitData[2] - setNum = splitData[3] - - image = 'http://magiccards.info/scans/en/' + setAbbr + '/' + setNum + '.jpg' - - card.sets[allSets[edition]] = SetInfo(allSets[edition], rarity, image) - - return - - -#get master card list and drop into a dictionary -folder = "cardsfolder" -err = open('setInfoScript.log','w') -allSets = {} -initSets() -cardDict = {} -setStr = 'SetInfo:' - -for root, dirnames, filenames in os.walk(folder): - for fileName in fnmatch.filter(filenames, '*.txt'): - if fileName.startswith('.'): - continue - - # parse cardsfolder for Card Lines and Rarity/Picture SVars. Filling in any gaps - file = open(os.path.join(root, fileName)) - cleanName = fileName.replace('.txt', '') - - line = file.readline().strip() - # Handle name and creation - name = line.replace('Name:','') - - card = Card(name.replace(' ','+'), cleanName) #This makes it work on Mac OS X. Will test Windows and FreeBSD when I can. - cardDict[cleanName] = card - card.lines = line + '\n' - - # Start parsing the rest of the data file - for line in file.readlines(): - line = line.strip() - # Skip empty lines - if line == '': - continue - - if line.find(setStr) != -1: - info = line.replace('SetInfo:','') - parts = info.split('|') - - card.hasSet = True - card.sets[parts[0]] = SetInfo(parts[0], parts[1], parts[2]) - else: - card.lines += line +'\n' - - if not card.hasSet: - addSets(card) - card.hasSet = True - - file = open(os.path.join(root, fileName), 'w') - file.write(card.lines) - if card.hasSet: - for s in card.sets.values(): - file.write('SetInfo:'+ s.set + '|' + s.rarity + '|' + s.image + '\n') - - err.write(card.name + '... Updated\n') - - file.close() -err.close()