mirror of
https://github.com/Cockatrice/Magic-Spoiler.git
synced 2026-07-02 00:12:03 -05:00
[WIP] Double-faced card handling (#144)
* Double-faced card handling Remove duplicate debug print (no image shows up in error file) * Handle DFC different than Split * Don't DFC if no number Cards with ? for a card number shouldn't be attempted to match for DFC
This commit is contained in:
parent
b1904667e4
commit
dea584cb35
61
spoilers.py
61
spoilers.py
|
|
@ -92,10 +92,45 @@ def correct_cards(mtgjson, manual_cards=[], card_corrections=[], delete_cards=[]
|
|||
print "Manual Cards Added: " + str(manual_added).strip('[]')
|
||||
|
||||
mtgjson = {"cards": mtgjson2}
|
||||
|
||||
transforms = {}
|
||||
for card in mtgjson['cards']:
|
||||
if '{' in card['text']:
|
||||
card['text'] = re.sub(r'{(.*?)}', replace_costs, card['text'])
|
||||
if 'text' in card:
|
||||
if '{' in card['text']:
|
||||
card['text'] = re.sub(r'{(.*?)}', replace_costs, card['text'])
|
||||
for card2 in mtgjson['cards']:
|
||||
if 'number' in card and 'number' in card2 and card2['number'] == card['number'] and \
|
||||
not card['name'] == card2['name'] and card['number'] != '?' and card2['number'] != '?':
|
||||
transforms[card['name']] = card2['name']
|
||||
if 'number' in card and not '?' in card['number']:
|
||||
if 'transforms from' in card['text'].lower():
|
||||
if 'number' in card:
|
||||
if not 'b' in card['number']:
|
||||
if 'a' in card['number']:
|
||||
card['number'] = card['number'].replace('a','b')
|
||||
else:
|
||||
card['number'] = str(card['number']) + 'b'
|
||||
card['layout'] = 'double-faced'
|
||||
if 'transform ' in card['text'].lower() or 'transformed' in card['text'].lower():
|
||||
if 'number' in card:
|
||||
if not 'a' in card['number']:
|
||||
if 'b' in card['number']:
|
||||
card['number'] = card['number'].replace('b','a')
|
||||
else:
|
||||
card['number'] = str(card['number']) + 'a'
|
||||
card['layout'] = 'double-faced'
|
||||
if 'number' in card and 'a' in card['number'] or 'b' in card['number']:
|
||||
for card1 in transforms:
|
||||
if card['name'] == card1:
|
||||
if 'a' in card['number']:
|
||||
card['names'] = [card1, transforms[card1]]
|
||||
else:
|
||||
card['names'] = [transforms[card1], card1]
|
||||
if card['name'] == transforms[card1]:
|
||||
if 'a' in card['number']:
|
||||
card['names'] = [card['name'], card1]
|
||||
else:
|
||||
card['names'] = [card1, card['name']]
|
||||
|
||||
return mtgjson
|
||||
|
||||
|
||||
|
|
@ -355,9 +390,9 @@ def get_image_urls(mtgjson, isfullspoil, setinfo=False):
|
|||
if mtgsImages[card['name']]['url'] != '':
|
||||
card['url'] = mtgsImages[card['name']]['url']
|
||||
|
||||
for card in mtgjson['cards']:
|
||||
if len(str(card['url'])) < 10:
|
||||
print(card['name'] + ' has no image.')
|
||||
#for card in mtgjson['cards']:
|
||||
# if len(str(card['url'])) < 10:
|
||||
# print(card['name'] + ' has no image.')
|
||||
return mtgjson
|
||||
|
||||
|
||||
|
|
@ -421,14 +456,24 @@ def write_xml(mtgjson, code, name, releaseDate):
|
|||
for jsoncard in mtgjson["cards"]:
|
||||
if jsoncard['name'] == card['names'][1]:
|
||||
cardtype += " // " + jsoncard["type"]
|
||||
newmanacost = ""
|
||||
if 'manaCost' in jsoncard:
|
||||
newmanacost = jsoncard['manaCost']
|
||||
manacost += " // " + \
|
||||
(jsoncard["manaCost"]).replace(
|
||||
newmanacost.replace(
|
||||
'{', '').replace('}', '')
|
||||
cardcmc += " // " + str(jsoncard["cmc"])
|
||||
text += "\n---\n" + jsoncard["text"]
|
||||
name += " // " + jsoncard['name']
|
||||
elif card['layout'] == 'double-faced':
|
||||
if not 'names' in card:
|
||||
print card['name'] + ' is double-faced but no "names" key'
|
||||
else:
|
||||
for dfcname in card['names']:
|
||||
if dfcname != card['name']:
|
||||
related = dfcname
|
||||
else:
|
||||
print card["name"] + " has names, but layout != split"
|
||||
print card["name"] + " has names, but layout != split, aftermath, or double-faced"
|
||||
else:
|
||||
print card["name"] + " has multiple names and no 'layout' key"
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user