mirror of
https://github.com/MeoProject/lx-music-api-server.git
synced 2025-05-23 19:17:41 +08:00
feat: 兼容已生成的配置文件
This commit is contained in:
parent
27e2f6677d
commit
1d640f8dd4
@ -13,6 +13,7 @@ import os
|
|||||||
import traceback
|
import traceback
|
||||||
import sys
|
import sys
|
||||||
import sqlite3
|
import sqlite3
|
||||||
|
import shutil
|
||||||
from . import variable
|
from . import variable
|
||||||
from .log import log
|
from .log import log
|
||||||
import threading
|
import threading
|
||||||
@ -22,9 +23,17 @@ logger = log('config_manager')
|
|||||||
# 创建线程本地存储对象
|
# 创建线程本地存储对象
|
||||||
local_data = threading.local()
|
local_data = threading.local()
|
||||||
|
|
||||||
|
if not os.path.exists('config'):
|
||||||
|
os.mkdir('config')
|
||||||
|
|
||||||
if not os.path.exists('data'):
|
if not os.path.exists('data'):
|
||||||
os.mkdir('data')
|
os.mkdir('data')
|
||||||
|
|
||||||
|
if os.path.exists('config.json' and 'data.db' and 'cache.db'):
|
||||||
|
shutil.move('config.json','config')
|
||||||
|
shutil.move('cache.db','data')
|
||||||
|
shutil.move('data.db','data')
|
||||||
|
|
||||||
def get_data_connection():
|
def get_data_connection():
|
||||||
# 检查线程本地存储对象是否存在连接对象,如果不存在则创建一个新的连接对象
|
# 检查线程本地存储对象是否存在连接对象,如果不存在则创建一个新的连接对象
|
||||||
if not hasattr(local_data, 'connection'):
|
if not hasattr(local_data, 'connection'):
|
||||||
@ -322,7 +331,7 @@ default = {
|
|||||||
|
|
||||||
|
|
||||||
def handle_default_config():
|
def handle_default_config():
|
||||||
with open("./data/config.json", "w", encoding="utf-8") as f:
|
with open("./config/config.json", "w", encoding="utf-8") as f:
|
||||||
f.write(json.dumps(default, indent=2, ensure_ascii=False,
|
f.write(json.dumps(default, indent=2, ensure_ascii=False,
|
||||||
escape_forward_slashes=False))
|
escape_forward_slashes=False))
|
||||||
f.close()
|
f.close()
|
||||||
@ -514,7 +523,7 @@ def push_to_list(key, obj):
|
|||||||
|
|
||||||
def write_config(key, value):
|
def write_config(key, value):
|
||||||
config = None
|
config = None
|
||||||
with open('./data/config.json', 'r', encoding='utf-8') as f:
|
with open('./config/config.json', 'r', encoding='utf-8') as f:
|
||||||
config = json.load(f)
|
config = json.load(f)
|
||||||
|
|
||||||
keys = key.split('.')
|
keys = key.split('.')
|
||||||
@ -526,7 +535,7 @@ def write_config(key, value):
|
|||||||
|
|
||||||
current[keys[-1]] = value
|
current[keys[-1]] = value
|
||||||
variable.config = config
|
variable.config = config
|
||||||
with open('./data/config.json', 'w', encoding='utf-8') as f:
|
with open('./config/config.json', 'w', encoding='utf-8') as f:
|
||||||
json.dump(config, f, indent=2, ensure_ascii=False,
|
json.dump(config, f, indent=2, ensure_ascii=False,
|
||||||
escape_forward_slashes=False)
|
escape_forward_slashes=False)
|
||||||
f.close()
|
f.close()
|
||||||
@ -623,18 +632,18 @@ def write_data(key, value):
|
|||||||
|
|
||||||
def initConfig():
|
def initConfig():
|
||||||
try:
|
try:
|
||||||
with open("./data/config.json", "r", encoding="utf-8") as f:
|
with open("./config/config.json", "r", encoding="utf-8") as f:
|
||||||
try:
|
try:
|
||||||
variable.config = json.loads(f.read())
|
variable.config = json.loads(f.read())
|
||||||
if (not isinstance(variable.config, dict)):
|
if (not isinstance(variable.config, dict)):
|
||||||
logger.warning('配置文件并不是一个有效的字典,使用默认值')
|
logger.warning('配置文件并不是一个有效的字典,使用默认值')
|
||||||
variable.config = default
|
variable.config = default
|
||||||
with open("./data/config.json", "w", encoding="utf-8") as f:
|
with open("./config/config.json", "w", encoding="utf-8") as f:
|
||||||
f.write(json.dumps(variable.config, indent=2,
|
f.write(json.dumps(variable.config, indent=2,
|
||||||
ensure_ascii=False, escape_forward_slashes=False))
|
ensure_ascii=False, escape_forward_slashes=False))
|
||||||
f.close()
|
f.close()
|
||||||
except:
|
except:
|
||||||
if os.path.getsize("./data/config.json") != 0:
|
if os.path.getsize("./config/config.json") != 0:
|
||||||
logger.error("配置文件加载失败,请检查是否遵循JSON语法规范")
|
logger.error("配置文件加载失败,请检查是否遵循JSON语法规范")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
else:
|
else:
|
||||||
|
@ -12,7 +12,7 @@ import ujson as _json
|
|||||||
|
|
||||||
def _read_config_file():
|
def _read_config_file():
|
||||||
try:
|
try:
|
||||||
with open("./data/config.json", "r", encoding = "utf-8") as f:
|
with open("./config/config.json", "r", encoding = "utf-8") as f:
|
||||||
return _json.load(f)
|
return _json.load(f)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
8
webui.py
8
webui.py
@ -93,19 +93,19 @@ def _Save(page: flet.Page, args):
|
|||||||
# print(args)
|
# print(args)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with open("./data/config.json", "r+", encoding="utf-8") as f:
|
with open("./config/config.json", "r+", encoding="utf-8") as f:
|
||||||
config = json.loads(f.read())
|
config = json.loads(f.read())
|
||||||
config = update_nested_json(config, args)
|
config = update_nested_json(config, args)
|
||||||
|
|
||||||
i = 1
|
i = 1
|
||||||
while 1:
|
while 1:
|
||||||
try:
|
try:
|
||||||
os.rename("./data/config.json", f"config{i}.bak")
|
os.rename("./config/config.json", f"config{i}.bak")
|
||||||
break
|
break
|
||||||
except:
|
except:
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
with open("./data/config.json", "w+", encoding="utf-8") as f:
|
with open("./config/config.json", "w+", encoding="utf-8") as f:
|
||||||
f.write(
|
f.write(
|
||||||
json.dumps(
|
json.dumps(
|
||||||
config, indent=4, ensure_ascii=False, escape_forward_slashes=False
|
config, indent=4, ensure_ascii=False, escape_forward_slashes=False
|
||||||
@ -1648,7 +1648,7 @@ def main(page: flet.Page):
|
|||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
try:
|
try:
|
||||||
with open("./data/config.json", "r+", encoding="utf-8") as f:
|
with open("./config/config.json", "r+", encoding="utf-8") as f:
|
||||||
config = json.loads(f.read())
|
config = json.loads(f.read())
|
||||||
except:
|
except:
|
||||||
print("无法找到config.json,请先运行main.py生成config.json")
|
print("无法找到config.json,请先运行main.py生成config.json")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user