diff --git a/src/migrations/1.13.1.1.py b/src/migrations/1.13.1.1.py new file mode 100644 index 0000000..83d8600 --- /dev/null +++ b/src/migrations/1.13.1.1.py @@ -0,0 +1,23 @@ +from src.configloader import settings +import logging + +from src.migrations.utils import return_example_file + +logger = logging.getLogger("rcgcdw.migrations.1.13.1.1") +base_file = return_example_file() +new_settings = settings.copy() + + +def run(): + if "event_appearance" not in settings: + try: + settings["event_appearance"] = {} + struct = settings['appearance']['embed'] + for key, value in struct.items(): + settings["event_appearance"][key] = value + settings["event_appearance"][key]["emoji"] = base_file["event_appearance"] + except KeyError: + logger.error("Failed to migrate appearance embed.") + else: # Don't do migrations + return + diff --git a/src/migrations/__init__.py b/src/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/migrations/utils.py b/src/migrations/utils.py new file mode 100644 index 0000000..55adfb5 --- /dev/null +++ b/src/migrations/utils.py @@ -0,0 +1,18 @@ +import requests +import logging +import json + +discussion_logger = logging.getLogger("rcgcdw.migrations.utils") + + +def return_example_file() -> dict: + try: + with open('settings.json.example', 'r') as example_file: + return json.loads(example_file.read()) + except FileNotFoundError: + try: + f = requests.get("https://gitlab.com/piotrex43/RcGcDw/-/raw/master/settings.json.example") + except: + raise + return json.loads(f.text) +