diff --git a/main.py b/main.py index 7680916c..a07959d8 100644 --- a/main.py +++ b/main.py @@ -77,19 +77,20 @@ if __name__ == '__main__': mtgs = spoilers.scrape_mtgs('http://www.mtgsalvation.com/spoilers.rss') #scrape mtgs rss feed mtgs = spoilers.parse_mtgs(mtgs) #parse spoilers into mtgjson format mtgs = spoilers.correct_cards(mtgs, manual_cards, card_corrections, delete_cards) #fix using the fixfiles - #scryfall = spoilers.get_scryfall('https://api.scryfall.com/cards/search?q=++e:' + setinfos['setname'].lower()) + scryfall = spoilers.get_scryfall('https://api.scryfall.com/cards/search?q=++e:' + setinfos['setname'].lower()) mtgs = spoilers.get_image_urls(mtgs, presets['isfullspoil'], setinfos['setname'], setinfos['setlongname'], setinfos['setsize']) #get images - [mtgs, errors] = spoilers.errorcheck(mtgs) #check for errors where possible + mtgjson = spoilers.smash_mtgs_scryfall(mtgs, scryfall) + [mtgjson, errors] = spoilers.errorcheck(mtgjson) #check for errors where possible errorlog += errors - spoilers.write_xml(mtgs, setinfos['setname'], setinfos['setlongname'], setinfos['setreleasedate']) + spoilers.write_xml(mtgjson, setinfos['setname'], setinfos['setlongname'], setinfos['setreleasedate']) save_xml(spoilers.pretty_xml(setinfos['setname']), 'out/spoiler.xml') - mtgs = spoilers.add_headers(mtgs, setinfos) - AllSets = spoilers.make_allsets(AllSets, mtgs, setinfos['setname']) + mtgs = spoilers.add_headers(mtgjson, setinfos) + AllSets = spoilers.make_allsets(AllSets, mtgjson, setinfos['setname']) if 'masterpieces' in setinfos: #repeat all of the above for masterpieces #masterpieces aren't in the rss feed, so for the new cards, we'll go to their individual pages on mtgs #old cards will get their infos copied from mtgjson (including fields that may not apply like 'artist') #the images will still come from mtgs - masterpieces = spoilers.make_masterpieces(setinfos['masterpieces'], AllSets, mtgs) + masterpieces = spoilers.make_masterpieces(setinfos['masterpieces'], AllSets, mtgjson) [masterpieces, errors] = spoilers.errorcheck(masterpieces) errorlog += errors spoilers.write_xml(masterpieces, setinfos['masterpieces']['setname'], setinfos['masterpieces']['setlongname'], setinfos['masterpieces']['setreleasedate']) @@ -97,4 +98,4 @@ if __name__ == '__main__': save_masterpieces(masterpieces) save_errorlog(errorlog) save_allsets(AllSets) - save_setjson(mtgs) + save_setjson(mtgjson) diff --git a/spoilers.py b/spoilers.py index 0462bbb5..214c2c30 100644 --- a/spoilers.py +++ b/spoilers.py @@ -458,16 +458,16 @@ def get_scryfall(setUrl): setDone = True else: setDone = True - #return scryfall - convert_scryfall(scryfall) - return scryfall + + scryfall = convert_scryfall(scryfall[0]) + return {'cards': scryfall} print def convert_scryfall(scryfall): cards2 = [] for card in scryfall: card2 = {} - card2['cmc'] = int((card['converted_mana_cost']).split('.')[0]) + card2['cmc'] = int((card['cmc']).split('.')[0]) if card.has_key('mana_cost'): card2['manaCost'] = card['mana_cost'].replace('{','').replace('}','') else: @@ -561,11 +561,25 @@ def convert_scryfall(scryfall): if card.has_key('multiverse_id'): card2['multiverseid'] = card['multiverse_id'] - cards2['cards'].append(card2) + cards2.append(card2) return cards2 print +def smash_mtgs_scryfall(mtgs, scryfall): + print mtgs + print "^mtgs | \/scryfall" + print scryfall + for mtgscard in mtgs['cards']: + cardFound = False + for scryfallcard in scryfall['cards']: + if scryfallcard['name'] == mtgscard['name']: + for key in scryfallcard: + if key in mtgscard: + if not mtgscard[key] == scryfallcard[key]: + print "Mtgs has key %s as %s and\nScryfall has %s" % (key, mtgscard[key], scryfallcard[key]) + return mtgs + def scrape_fullspoil(url, showRarityColors=False, showFrameColors=False, manual_cards=[], delete_cards=[], split_cards=[]): page = requests.get(url) tree = html.fromstring(page.content)