diff --git a/.github/workflows/data_update.yml b/.github/workflows/data_update.yml index 723acf7..31048fe 100644 --- a/.github/workflows/data_update.yml +++ b/.github/workflows/data_update.yml @@ -30,6 +30,7 @@ jobs: - name: Run script run: | + export LOG_LEVEL=INFO poetry run python -m script.run - name: Commit changes diff --git a/script/__init__.py b/script/__init__.py index 51a23f4..95f78d6 100644 --- a/script/__init__.py +++ b/script/__init__.py @@ -1,4 +1,15 @@ +import logging import os ROOT_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + +def setup_logging(level=logging.INFO): + logging.basicConfig( + level=level, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + datefmt='%Y-%m-%d %H:%M:%S' + ) + + +setup_logging() diff --git a/script/akashi_schedule.py b/script/akashi_schedule.py index fba9d37..f33a473 100644 --- a/script/akashi_schedule.py +++ b/script/akashi_schedule.py @@ -3,6 +3,8 @@ from script import * +logger = logging.getLogger(__name__) + class Item: def __init__(self, id, improve_data, use_item_map): @@ -30,6 +32,7 @@ def reformat(self): req_item = i.get('require_item', None) if not req: + logger.warning(f"empty req for id: {self.id}") continue improve = { @@ -83,7 +86,7 @@ def update_schedule(data_version): for k, v in data_map.items(): improve_list.append(Item(k, v, item_map).__dict__()) - print(f'{len(improve_list)} items') + logger.info(f'{len(improve_list)} items loaded') with open(os.path.join(data_path, 'akashi_schedule.json'), 'w') as f: data = { diff --git a/script/l10n.py b/script/l10n.py index cb4398e..0453732 100644 --- a/script/l10n.py +++ b/script/l10n.py @@ -1,4 +1,5 @@ import json +import logging import os import requests @@ -6,6 +7,7 @@ from script import ROOT_PATH +logger = logging.getLogger(__name__) class Localization: def __init__(self, version): @@ -55,7 +57,7 @@ def save_item_l10n_without_id(self, items): if k in translation: result[k][lang] = translation[k] self.check_l10n(result, ['en', 'ko', 'sc', 'tc']) - print(f'{len(result)} translations, {len(items)} items') + logger.info(f'{len(result)} translations, {len(items)} items') with open(os.path.join(ROOT_PATH, 'data', 'slotitem_l10n_without_id.json'), 'w') as f: data = { "data_version": str(self.version), @@ -71,7 +73,7 @@ def save_item_l10n_with_id(self, items): if v["ja"] in translation: result[k][lang] = translation[v["ja"]] self.check_l10n(result) - print(f'{len(result)} translations, {len(items)} items') + logger.info(f'{len(result)} translations, {len(items)} items') with open(os.path.join(ROOT_PATH, 'data', 'slotitem_l10n.json'), 'w') as f: data = { "data_version": str(self.version), @@ -101,7 +103,7 @@ def check_l10n(data, lang_code=None): try: assert all(k in item for k in lang_code) except AssertionError: - print(item) + logger.error(f" {lang_code} not found in {item}") raise @staticmethod diff --git a/script/run.py b/script/run.py index dbb4eca..cbad51f 100644 --- a/script/run.py +++ b/script/run.py @@ -1,15 +1,22 @@ import json +import logging import os from datetime import datetime from script import ROOT_PATH from script import akashi_schedule +from script import setup_logging from script.l10n import Localization from script.shiptag import ShipTagManager if __name__ == '__main__': + log_level = os.environ.get('LOG_LEVEL', 'INFO') + setup_logging(level=getattr(logging, log_level)) + logger = logging.getLogger(__name__) + data_version = datetime.strftime(datetime.utcnow(), '%Y%m%d%H') - print(data_version) + logger.info(f"Data version: {data_version}") + logger.info("Starting data update process") l10n = Localization(data_version) l10n.update_item_l10n() @@ -29,4 +36,4 @@ f.write(json.dumps(version_json)) - print('finish') + logger.info('Finished processing') diff --git a/script/shiptag.py b/script/shiptag.py index ccb5046..cdab8ad 100644 --- a/script/shiptag.py +++ b/script/shiptag.py @@ -1,16 +1,20 @@ import json +import logging import os import requests from script import ROOT_PATH +logger = logging.getLogger(__name__) + class ShipTag: def __init__(self, color, name): self.color = color self.name = name + class ShipTagManager: def __init__(self, data_version): self.data_version = data_version @@ -55,4 +59,4 @@ def update_tags(self): file_path = os.path.join(ROOT_PATH, 'data', 'event_ship_tags.json') with open(file_path, 'w') as f: json.dump(data, f, indent=2, ensure_ascii=False, default=lambda o: o.__dict__) - print(f'finish update tags, {len(self.tags)} tags') + logger.info(f'finish update tags, {len(self.tags)} tags')