Enable Scryfall - Just use for Diff for now.

This commit is contained in:
tritoch 2017-06-06 15:30:38 -05:00
parent ccd094f37c
commit 19add21493
2 changed files with 27 additions and 12 deletions

15
main.py
View File

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

View File

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