From 78d59b6a11f18a8ffb6d2b290411e3bc707ec168 Mon Sep 17 00:00:00 2001 From: klaxnek Date: Sat, 10 Oct 2020 09:16:04 +0200 Subject: [PATCH] All Cards Scryfall database downloaded by API --- forge-gui/tools/cardnamesTranslations.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/forge-gui/tools/cardnamesTranslations.py b/forge-gui/tools/cardnamesTranslations.py index b6f5c273b40..9245b275685 100644 --- a/forge-gui/tools/cardnamesTranslations.py +++ b/forge-gui/tools/cardnamesTranslations.py @@ -5,14 +5,16 @@ import os import re import urllib.request -database = 'all-cards-20201009091832.json' -scryfalldburl = 'https://c2.scryfall.com/file/scryfall-bulk/all-cards/' + database # 'scryfall lang code':'ISO 639 lang code' languages = {'es': 'es-ES', 'de': 'de-DE', 'it': 'it-IT', 'zhs': 'zh-CN'} langfiles = {'es': None, 'de': None, 'it': None, 'zhs': None} -urllib.request.urlretrieve(scryfalldburl, database) +# Request Scryfall API to download all_cards json file +request = urllib.request.urlopen('https://api.scryfall.com/bulk-data') +data = json.load(request)['data'] +scryfalldburl = [x for x in data if x['type'] == 'all_cards'][0]['download_uri'] +urllib.request.urlretrieve(scryfalldburl, 'cards.json') # Sort file and remove duplicates @@ -94,7 +96,7 @@ def patchtranslations(filename): patchfile.close() ffinal.close() -with open(database, mode='r', encoding='utf8') as json_file: +with open('cards.json', mode='r', encoding='utf8') as json_file: # todo:all cards json size >= 800MB,using json iteration library,avoid load all content in to memory. data = json.load(json_file)