diff --git a/web/public/mtg/app.js b/web/public/mtg/app.js index c298ca1a..ff18dacf 100644 --- a/web/public/mtg/app.js +++ b/web/public/mtg/app.js @@ -42,6 +42,12 @@ if (whichGuesser === 'basic') { .then((data) => (sets = data)) } +if (whichGuesser === 'watermark') { + fetch('jsons/wm.json') + .then((response) => response.json()) + .then((data) => (sets = data)) +} + let firstFetch = fetch('jsons/' + whichGuesser + '.json') fetchToResponse(firstFetch) @@ -66,6 +72,8 @@ function putIntoMapAndFetch(data) { document.getElementById('guess-type').innerText = 'How Basic' } else if (whichGuesser === 'commander') { document.getElementById('guess-type').innerText = 'General Knowledge' + } else if (whichGuesser === 'watermark') { + document.getElementById('guess-type').innerText = 'Watermark' } else if (whichGuesser === 'artist') { document.getElementById('guess-type').innerText = 'Aesthetic Consultation' } @@ -195,6 +203,21 @@ function determineIfSkip(card) { ) { return true } + } else if (whichGuesser == 'watermark') { + if ( + card.promo || + card.name === 'Set' || + card.name === 'Planeswalker' || + card.name === 'Flavor' || + card.name === 'Conspiracy' || + card.name === 'Foretell' || + card.name === 'Tarkir' || + card.set === 'h17' || + card.set === 'ptg' || + card.set === 'htr18' + ) { + return true + } } else { if ( card.reprint === true || @@ -230,6 +253,9 @@ function putIntoMap(data) { '" /> ' + sets[name][0] } + if (whichGuesser === 'watermark' && sets.hasOwnProperty(name)) { + name = sets[name] + } let normalImg = '' if (card.image_uris.normal) { normalImg = card.image_uris.normal diff --git a/web/public/mtg/importCards.py b/web/public/mtg/importCards.py index 1c12282c..8a2338b6 100644 --- a/web/public/mtg/importCards.py +++ b/web/public/mtg/importCards.py @@ -6,7 +6,7 @@ import math # queued categories: 'terror', 'wrath', 'zombie', 'artifact'] # add category name here allCategories = ['counterspell', 'beast', 'burn', 'commander'] -specialCategories = ['set', 'basic'] +specialCategories = ['set', 'basic', 'watermark'] artist_denylist = '-a%3A"jason+felix"+-a%3A“Harold+McNeill”+-a%3A"Terese+Nielsen"+-a%3A“Noah+Bradley”' artist_allowlist = {'David Martin', 'V\u00e9ronique Meignaud', 'Christopher Rush', 'Rebecca Guay', 'DiTerlizzi', 'Anthony Francisco', 'Wylie Beckert', 'Rovina Cai', 'Dominik Mayer', 'Omar Rayyan', 'Thomas M. Baxa'} @@ -50,6 +50,8 @@ def generate_initial_special_query(category): return 'https://api.scryfall.com/sets' elif category == 'basic': string_query += 't%3Abasic&order=released&dir=asc&unique=prints&page=' + elif category == 'watermark': + string_query += 'has%3Awatermark+-t%3Atoken+-st%3Amemorabilia+-set%3Aplist+-name%3A%2F%5EA-%2F&order=released&dir=asc&unique=prints&page=' # add category string query here print(string_query) return string_query @@ -175,7 +177,7 @@ def fetch_special(query): def write_art(art_names, id, index, card): - if card['digital'] or card['set_type'] == 'promo' or card['lang'] != 'en': + if card['digital'] or card['set_type'] == 'promo' or card['promo'] or card['lang'] != 'en': art_names[id] = index else: art_names[id] = -1 @@ -216,6 +218,8 @@ def to_compact_write_form_special(smallJson, art_names, response, category, arti 'set_type', 'digital', 'security_stamp'] fieldsInArtist = ['image_uris', 'digital', 'set_type', 'artist_ids', 'security_stamp'] + fieldsInWatermark = ['image_uris', 'watermark', + 'set_type', 'digital', 'security_stamp', 'promo', 'set'] data = smallJson['data'] # write all fields needed in card for card in response['data']: @@ -244,7 +248,7 @@ def to_compact_write_form_special(smallJson, art_names, response, category, arti continue write_card = dict() for field in fieldsInArtist: - if field == 'artist_ids' and category == 'artist': + if field == 'artist_ids': write_card['name'] = artists[card['artist_ids'][0]][0] elif field == 'image_uris': if 'card_faces' in card and 'image_uris' in card['card_faces'][0]: @@ -259,6 +263,36 @@ def to_compact_write_form_special(smallJson, art_names, response, category, arti data[digital_holder] = write_card else: data.append(write_card) + elif category == 'watermark': + # do not repeat art + digital_holder = filter_card(card, art_names, data) + if digital_holder == False: + continue + if 'card_faces' in card and 'watermark' in card['card_faces'][0] and 'watermark' in card['card_faces'][1] and card['card_faces'][1]['watermark'] != card['card_faces'][0]['watermark']: + # print(card['name']) + continue + write_card = dict() + for field in fieldsInWatermark: + if field == 'watermark': + # print(card['name']) + if 'card_faces' in card: + write_card['name'] = card['card_faces'][0]['watermark'].capitalize( + ) + else: + write_card['name'] = card['watermark'].capitalize() + elif field == 'image_uris': + if 'card_faces' in card and 'image_uris' in card['card_faces'][0]: + write_card['image_uris'] = write_image_uris( + card['card_faces'][0]['image_uris']) + else: + write_card['image_uris'] = write_image_uris( + card['image_uris']) + elif field in card: + write_card[field] = card[field] + if digital_holder != -1: + data[digital_holder] = write_card + else: + data.append(write_card) else: # print(card['name']) # print(category) @@ -326,13 +360,13 @@ def write_image_uris(card_image_uris): if __name__ == "__main__": - for category in allCategories: - print(category) - fetch_and_write_all(category, generate_initial_query(category)) + # for category in allCategories: + # print(category) + # fetch_and_write_all(category, generate_initial_query(category)) for category in specialCategories: print(category) fetch_and_write_all_special( category, generate_initial_special_query(category)) # uncomment this once in a while, but it's expensive to run # fetch_and_write_initial_artist_query() - fetch_and_write_all_artist() + # fetch_and_write_all_artist() diff --git a/web/public/mtg/index.html b/web/public/mtg/index.html index 183d8ce5..173f6f27 100644 --- a/web/public/mtg/index.html +++ b/web/public/mtg/index.html @@ -258,6 +258,28 @@
+
+ + + +
+
+