[Audio] Replace settings.json in case of corruption

This commit is contained in:
Twentysix 2016-12-09 02:11:14 +01:00
parent 4b032e48b9
commit d349a0cab7

View File

@ -6,6 +6,7 @@ from random import shuffle, choice
from cogs.utils.dataIO import dataIO from cogs.utils.dataIO import dataIO
from cogs.utils import checks from cogs.utils import checks
from __main__ import send_cmd_help, settings from __main__ import send_cmd_help, settings
from json import JSONDecodeError
import re import re
import logging import logging
import collections import collections
@ -2087,7 +2088,13 @@ def check_files():
print("Creating default audio settings.json...") print("Creating default audio settings.json...")
dataIO.save_json(settings_path, default) dataIO.save_json(settings_path, default)
else: # consistency check else: # consistency check
current = dataIO.load_json(settings_path) try:
current = dataIO.load_json(settings_path)
except JSONDecodeError:
# settings.json keeps getting corrupted for unknown reasons. Let's
# try to keep it from making the cog load fail.
dataIO.save_json(settings_path, default)
current = dataIO.load_json(settings_path)
if current.keys() != default.keys(): if current.keys() != default.keys():
for key in default.keys(): for key in default.keys():
if key not in current.keys(): if key not in current.keys():