More aftermath improvements. (#47)

"layout" now is "aftermath".

"colors" and "colorIdentity" will check both sides of card.
This commit is contained in:
tritoch
2017-06-22 12:54:59 -05:00
committed by GitHub
parent 3efba33849
commit 248e09219e

View File

@@ -77,6 +77,8 @@ def parse_mtgs(mtgs, manual_cards=[], card_corrections=[], delete_cards=[], spli
card2['rarity'] = card['rarity']
if not card1['name'] in split_cards:
split_cards[card1['name']] = card2['name']
card1['layout'] = 'aftermath'
card2['layout'] = 'aftermath'
cards2.append(card1)
cards2.append(card2)
else:
@@ -173,10 +175,12 @@ def parse_mtgs(mtgs, manual_cards=[], card_corrections=[], delete_cards=[], spli
cardnames.append(card['name'])
cardnames.append(split_cards[card['name']])
cardnumber = cardnumber.replace('b','').replace('a','') + 'a'
card['layout'] = 'split'
if not 'layout' in card:
card['layout'] = 'split'
for namematch in split_cards:
if card['name'] == split_cards[namematch]:
card['layout'] = 'split'
if not 'layout' in card or ('layout' in card and card['layout'] == ''):
card['layout'] = 'split'
cardnames.append(namematch)
if not card['name'] in cardnames:
cardnames.append(card['name'])
@@ -406,18 +410,38 @@ def error_check(mtgjson, card_corrections={}):
errors.append({"name": card['name'], "key": "url", "value": ""})
elif len(card['url']) < 10:
errors.append({"name": card['name'], "key": "url", "value": ""})
if 'layout' in card:
if card['layout'] == 'split' or card['layout'] == 'meld' or card['layout'] == 'aftermath':
if not 'names' in card:
errors.append({"name": card['name'], "key": "names", "value": ""})
if 'number' in card:
if not 'a' in card['number'] and not 'b' in card['number'] and not 'c' in card['number']:
errors.append({"name": card['name'], "key": "number", "value": card['number']})
if not 'number' in card:
errors.append({"name": card['name'], "key": "number", "value": ""})
if not 'types' in card:
errors.append({"name": card['name'], "key": "types", "value": ""})
for card in mtgjson['cards']: #we're going to loop through again and make sure split cards get paired
if 'layout' in card:
if card['layout'] == 'split' or card['layout'] == 'meld' or card['layout'] == 'aftermath':
if not 'names' in card:
errors.append({"name": card['name'], "key": "names", "value": ""})
else:
for related_card_name in card['names']:
if related_card_name != card['name']:
related_card = False
for card2 in mtgjson['cards']:
if card2['name'] == related_card_name:
related_card = card2
if not related_card:
errors.append({"name": card['name'], "key": "names", "value": card['names']})
else:
if 'colors' in related_card:
for color in related_card['colors']:
if not color in card['colors']:
card['colors'].append(color)
if 'colorIdentity' in related_card:
for colorIdentity in related_card['colorIdentity']:
if not colorIdentity in card['colorIdentity']:
card['colorIdentity'].append(colorIdentity)
if 'number' in card:
if not 'a' in card['number'] and not 'b' in card['number'] and not 'c' in card['number']:
errors.append({"name": card['name'], "key": "number", "value": card['number']})
for card in mtgjson['cards']:
for cardCorrection in card_corrections:
if card['name'] == cardCorrection:
@@ -639,7 +663,8 @@ def scrape_fullspoil(url, showRarityColors=False, showFrameColors=False, manual_
if card['name'] in split_cards:
card["names"] = [card['name'], split_cards[card['name']]]
card["layout"] = "split"
if not 'layout' in card:
card["layout"] = "split"
notSplit = True
for backsplit in split_cards:
if card['name'] == split_cards[backsplit]:
@@ -866,7 +891,7 @@ def write_xml(mtgjson, setname, setlongname, setreleasedate, split_cards=[]):
cardtype = card["type"]
if card.has_key("names"):
if "layout" in card:
if card['layout'] == 'split':
if card['layout'] == 'split' or card['layout'] == 'aftermath':
if 'names' in card:
if card['name'] == card['names'][0]:
for jsoncard in mtgjson["cards"]:
@@ -895,7 +920,7 @@ def write_xml(mtgjson, setname, setlongname, setreleasedate, split_cards=[]):
if 'number' in card:
if 'b' in card['number']:
if 'layout' in card:
if card['layout'] == 'split':
if card['layout'] == 'split' or card['layout'] == 'aftermath':
#print "We're skipping " + card['name'] + " because it's the right side of a split card"
continue
@@ -973,7 +998,7 @@ def write_combined_xml(mtgjson, setinfos):
for setcode in mtgjson:
setobj = mtgjson[setcode]
for card in setobj["cards"]:
if 'layout' in card and card['layout'] == 'split':
if 'layout' in card and (card['layout'] == 'split' or card['layout'] == 'aftermath'):
if 'b' in card["number"]:
continue
if count == 0:
@@ -999,7 +1024,7 @@ def write_combined_xml(mtgjson, setinfos):
cardtype = card["type"]
if card.has_key("names"):
if "layout" in card:
if card["layout"] != 'split':
if card["layout"] != 'split' and card["layout"] != 'aftermath':
if len(card["names"]) > 1:
if card["names"][0] == card["name"]:
related = card["names"][1]
@@ -1033,7 +1058,7 @@ def write_combined_xml(mtgjson, setinfos):
if 'number' in card:
if 'b' in card['number']:
if 'layout' in card:
if card['layout'] == 'split':
if card['layout'] == 'split' or card['layout'] == 'aftermath':
#print "We're skipping " + card['name'] + " because it's the right side of a split card"
continue