mirror of
https://github.com/MikuLeaks/KianaBH3.git
synced 2025-12-13 21:34:43 +01:00
refactor: Refactor config
This commit is contained in:
@@ -1,57 +0,0 @@
|
||||
# 头文件, 负责统一引用外部库
|
||||
# 本文件夹下的文件禁止引用此文件
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import time
|
||||
import zlib
|
||||
import base64
|
||||
import socket
|
||||
import struct
|
||||
import logging
|
||||
import requests
|
||||
import threading
|
||||
from dynaconf import Dynaconf
|
||||
from flask import Flask, request, jsonify, send_from_directory, Blueprint
|
||||
from pathlib import Path
|
||||
from enum import Enum
|
||||
from .config import *
|
||||
from .log import * # TODO: After config to tempfix config.json not found error
|
||||
from lib import proto as protos
|
||||
from pprint import pprint
|
||||
import importlib
|
||||
import re
|
||||
|
||||
|
||||
__all__ = [
|
||||
"os",
|
||||
"sys",
|
||||
"json",
|
||||
"time",
|
||||
"zlib",
|
||||
"base64",
|
||||
"socket",
|
||||
"struct",
|
||||
"logging",
|
||||
"threading",
|
||||
"Dynaconf",
|
||||
"Flask",
|
||||
"request",
|
||||
"requests",
|
||||
"jsonify",
|
||||
"send_from_directory",
|
||||
"Blueprint",
|
||||
"Path",
|
||||
"Enum",
|
||||
"Log",
|
||||
"Error",
|
||||
"Warn",
|
||||
"Info",
|
||||
"Debug",
|
||||
"Config",
|
||||
"Root",
|
||||
"protos",
|
||||
"pprint",
|
||||
"importlib",
|
||||
"re"
|
||||
]
|
||||
@@ -1,42 +0,0 @@
|
||||
import os
|
||||
import json
|
||||
from dynaconf import Dynaconf
|
||||
|
||||
# 此处设置默认值
|
||||
Root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
ConfigData = {
|
||||
"LogLevel": "INFO",
|
||||
"MaxSessions": 10,
|
||||
"GameServer": {
|
||||
"Ip": "127.0.0.1",
|
||||
"Port": 16100
|
||||
},
|
||||
"SdkServer": {
|
||||
"Ip": "127.0.0.1",
|
||||
"Port": 80
|
||||
},
|
||||
"VerboseLevel":1,
|
||||
"RegionName":"MikuBH3",
|
||||
"UseLocalCache":False
|
||||
}
|
||||
|
||||
class ConfigInit:
|
||||
def __init__(self):
|
||||
self.ConfigPath = f"{Root}/../Config.json"
|
||||
self.ConfigData = self.Load()
|
||||
|
||||
if not os.path.exists(self.ConfigPath):
|
||||
with open(self.ConfigPath, 'w') as f:
|
||||
json.dump(ConfigData, f, indent=4)
|
||||
|
||||
def Load(self):
|
||||
Settings = Dynaconf(
|
||||
settings_files = [self.ConfigPath],
|
||||
default_settings = ConfigData
|
||||
)
|
||||
return Settings
|
||||
|
||||
def Get(self):
|
||||
return self.ConfigData
|
||||
|
||||
Config = ConfigInit().Load()
|
||||
@@ -1,37 +0,0 @@
|
||||
import json
|
||||
import sys
|
||||
from loguru import logger
|
||||
|
||||
# Configuration for the logger
|
||||
logger.remove()
|
||||
with open("Config.json", "r", encoding="utf-8") as f:
|
||||
LogLevel = json.load(f)["LogLevel"]
|
||||
LevelList = ["ERROR", "WARNING", "INFO", "DEBUG"]
|
||||
CodeColorDict = {
|
||||
"ERROR": "red",
|
||||
"WARNING": "yellow",
|
||||
"INFO": "green",
|
||||
"DEBUG": "blue"
|
||||
}
|
||||
|
||||
def custom_format(record):
|
||||
color = CodeColorDict[record["level"].name]
|
||||
return f"<{color}>{record['level'].name}</{color}> : {record['message']}\n"
|
||||
|
||||
logger.add(sys.stdout, format=custom_format, colorize=True, level=LogLevel)
|
||||
|
||||
def Log(msg, types):
|
||||
if types in CodeColorDict and LevelList.index(types) <= LevelList.index(LogLevel):
|
||||
getattr(logger, types.lower())(msg)
|
||||
|
||||
def Error(msg):
|
||||
Log(msg, "ERROR")
|
||||
|
||||
def Warn(msg):
|
||||
Log(msg, "WARNING")
|
||||
|
||||
def Info(msg):
|
||||
Log(msg, "INFO")
|
||||
|
||||
def Debug(msg):
|
||||
Log(msg, "DEBUG")
|
||||
@@ -2,17 +2,19 @@ import json
|
||||
import traceback
|
||||
from typing import Dict, Type, TypeVar, Optional, Any, List
|
||||
|
||||
from game_server.config.log import Error, Info
|
||||
from utils.logger import Error, Info
|
||||
from game_server.resource.base_resource import BaseResource
|
||||
from game_server.resource.decorators import resource_registry
|
||||
import game_server.resource.configdb # noqa: F401
|
||||
|
||||
T = TypeVar("T", bound=BaseResource)
|
||||
|
||||
|
||||
def filter_data(cls: Type, data):
|
||||
valid_fields = cls.__annotations__.keys()
|
||||
return {field: data.get(field, None) for field in valid_fields}
|
||||
|
||||
|
||||
class ResourceManager:
|
||||
def __init__(self):
|
||||
self.data: Dict[Type[T], Dict[Any, T]] = {}
|
||||
@@ -57,4 +59,5 @@ class ResourceManager:
|
||||
def instance():
|
||||
return resource_manager
|
||||
|
||||
|
||||
resource_manager = ResourceManager()
|
||||
|
||||
Reference in New Issue
Block a user