From 5b0d0601fc988f3239af40a679927ab00ddebcad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Mart=C3=ADn?= Date: Tue, 28 May 2013 15:45:10 +0200 Subject: [PATCH] Finished languages miner --- utils/miner/conf.py | 2 +- utils/miner/languages.py | 42 ++++++++++++++++++++++++++++++++++------ utils/miner/run.sh | 2 ++ 3 files changed, 39 insertions(+), 7 deletions(-) diff --git a/utils/miner/conf.py b/utils/miner/conf.py index 2ec7b36..f96c802 100644 --- a/utils/miner/conf.py +++ b/utils/miner/conf.py @@ -1,7 +1,7 @@ DEBUG = False # Save to database? -SAVE = False +SAVE = True ### # TEXTURES diff --git a/utils/miner/languages.py b/utils/miner/languages.py index fcd2766..a0d2ca7 100644 --- a/utils/miner/languages.py +++ b/utils/miner/languages.py @@ -12,11 +12,11 @@ import conf from objects import GameLanguage -print("=> Phase: blocks") +print("=> Phase: languages") if conf.SAVE: sys.path.append('../../minecraftcodex') os.environ['DJANGO_SETTINGS_MODULE'] = 'local_settings' - from database.models import Block, Texture + from database.models import Language, LanguageString ### # GLOBALS @@ -55,7 +55,7 @@ for item in directory_list: for line in language.readlines(): line = line.strip() if line and 'X-Generator' not in line: - key, value = line.split('=') + key, value = line.split('=', 1) if key in conf.LANGUAGES_MASTER_KEYS: # Language object setattr(language_obj, key.split('.')[1], value) @@ -67,11 +67,41 @@ for item in directory_list: if language_obj.code == 'en_US': if key not in STRINGS: STRINGS.append(key) - LANGUAGES.append(language) + LANGUAGES.append(language_obj) if conf.SAVE: - pass - # Save here + for item in LANGUAGES: + try: + obj = Language.objects.get( + name=item.name, + region=item.region, + code=item.code + ) + except Language.DoesNotExist: + obj = Language( + name=item.name, + region=item.region, + code=item.code + ) + obj.save() + for key in item.strings.keys(): + value = item.strings[key] + try: + string_obj = LanguageString.objects.get( + language=obj, + key=key + ) + if string_obj.value != value: + string_obj.value = value + string_obj.save() + except LanguageString.DoesNotExist: + string_obj = LanguageString( + language=obj, + key=key, + value=value + ) + string_obj.save() + print(" => Summary") diff --git a/utils/miner/run.sh b/utils/miner/run.sh index 458e670..21a7425 100755 --- a/utils/miner/run.sh +++ b/utils/miner/run.sh @@ -7,3 +7,5 @@ python textures.py python items.py python blocks.py + +python languages.py