RcGcDw/src/migrations/11311.py

47 lines
1.5 KiB
Python
Raw Normal View History

2021-04-17 14:13:24 +00:00
from src.configloader import settings, load_settings
import logging
import shutil
import time
import json
import sys
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():
global base_file
if "event_appearance" not in settings:
logger.info("Running migration 1.13.1.1")
if "event_appearance" not in base_file: # if local base file is outdated, download from repo
base_file = return_example_file(force=True)
try:
struct = settings['appearance']['embed']
new_settings["event_appearance"] = {}
keys = []
for key, value in struct.items():
if key not in ("show_edit_changes", "show_footer", "embed_images"):
new_settings["event_appearance"][key] = value
try:
new_settings["event_appearance"][key]["emoji"] = base_file["event_appearance"][key]["emoji"]
except KeyError:
new_settings["event_appearance"][key]["emoji"] = ""
keys.append(key)
for item in keys:
del new_settings['appearance']['embed'][item]
except KeyError:
logger.exception("Failed to migrate appearance embed.")
sys.exit(1)
shutil.copy("settings.json", "settings.json.{}.bak".format(int(time.time())))
with open("settings.json", "w") as new_write:
new_write.write(json.dumps(new_settings, indent=4))
load_settings()
logger.info("Migration 1.13.1.1 has been successful.")
else:
logger.debug("Ignoring migration 1.13.1.1")
run()