支持正义 utf-8
This commit is contained in:
@ -19,12 +19,12 @@ class DataManager(Generic[T]):
|
|||||||
if not self.fp.exists():
|
if not self.fp.exists():
|
||||||
return self.cls()
|
return self.cls()
|
||||||
try:
|
try:
|
||||||
return self.cls.model_validate_json(self.fp.read_text())
|
return self.cls.model_validate_json(self.fp.read_text("utf-8"))
|
||||||
except ValidationError:
|
except ValidationError:
|
||||||
return self.cls()
|
return self.cls()
|
||||||
|
|
||||||
def save(self, data: T):
|
def save(self, data: T):
|
||||||
self.fp.write_text(data.model_dump_json())
|
self.fp.write_text(data.model_dump_json(), "utf-8")
|
||||||
|
|
||||||
@asynccontextmanager
|
@asynccontextmanager
|
||||||
async def get_data(self):
|
async def get_data(self):
|
||||||
|
|||||||
@ -240,7 +240,7 @@ def handle_long_task(callback_id: str):
|
|||||||
|
|
||||||
def _load_longtask_data() -> LongTaskModuleData:
|
def _load_longtask_data() -> LongTaskModuleData:
|
||||||
try:
|
try:
|
||||||
txt = LONGTASK_DATA_DIR.read_text()
|
txt = LONGTASK_DATA_DIR.read_text("utf-8")
|
||||||
return LongTaskModuleData.model_validate_json(txt)
|
return LongTaskModuleData.model_validate_json(txt)
|
||||||
except (FileNotFoundError, ValidationError) as e:
|
except (FileNotFoundError, ValidationError) as e:
|
||||||
logger.info(f"取得 LongTask 数据时出现问题:{e}")
|
logger.info(f"取得 LongTask 数据时出现问题:{e}")
|
||||||
@ -251,7 +251,7 @@ def _load_longtask_data() -> LongTaskModuleData:
|
|||||||
|
|
||||||
|
|
||||||
def _save_longtask_data(data: LongTaskModuleData):
|
def _save_longtask_data(data: LongTaskModuleData):
|
||||||
LONGTASK_DATA_DIR.write_text(data.model_dump_json())
|
LONGTASK_DATA_DIR.write_text(data.model_dump_json(), "utf-8")
|
||||||
|
|
||||||
|
|
||||||
@asynccontextmanager
|
@asynccontextmanager
|
||||||
|
|||||||
@ -30,7 +30,7 @@ def load_banned_ids() -> list[str]:
|
|||||||
if not DATA_FILE_PATH.exists():
|
if not DATA_FILE_PATH.exists():
|
||||||
return []
|
return []
|
||||||
try:
|
try:
|
||||||
return json.loads(DATA_FILE_PATH.read_text())
|
return json.loads(DATA_FILE_PATH.read_text("utf-8"))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warning(f"在解析成语接龙封禁文件时遇到问题:{e}")
|
logger.warning(f"在解析成语接龙封禁文件时遇到问题:{e}")
|
||||||
return []
|
return []
|
||||||
@ -45,14 +45,14 @@ def add_banned_id(group_id: str):
|
|||||||
banned_ids = load_banned_ids()
|
banned_ids = load_banned_ids()
|
||||||
if group_id not in banned_ids:
|
if group_id not in banned_ids:
|
||||||
banned_ids.append(group_id)
|
banned_ids.append(group_id)
|
||||||
DATA_FILE_PATH.write_text(json.dumps(banned_ids, ensure_ascii=False, indent=4))
|
DATA_FILE_PATH.write_text(json.dumps(banned_ids, ensure_ascii=False, indent=4), "utf-8")
|
||||||
|
|
||||||
|
|
||||||
def remove_banned_id(group_id: str):
|
def remove_banned_id(group_id: str):
|
||||||
banned_ids = load_banned_ids()
|
banned_ids = load_banned_ids()
|
||||||
if group_id in banned_ids:
|
if group_id in banned_ids:
|
||||||
banned_ids.remove(group_id)
|
banned_ids.remove(group_id)
|
||||||
DATA_FILE_PATH.write_text(json.dumps(banned_ids, ensure_ascii=False, indent=4))
|
DATA_FILE_PATH.write_text(json.dumps(banned_ids, ensure_ascii=False, indent=4), "utf-8")
|
||||||
|
|
||||||
|
|
||||||
class TryStartState(Enum):
|
class TryStartState(Enum):
|
||||||
|
|||||||
@ -306,14 +306,14 @@ lock = asyncio.Lock()
|
|||||||
|
|
||||||
def read_data():
|
def read_data():
|
||||||
try:
|
try:
|
||||||
data_raw = KONAPH_DATA_JSON.read_text()
|
data_raw = KONAPH_DATA_JSON.read_text("utf-8")
|
||||||
return PuzzleManager.model_validate_json(data_raw)
|
return PuzzleManager.model_validate_json(data_raw)
|
||||||
except (FileNotFoundError, ValidationError):
|
except (FileNotFoundError, ValidationError):
|
||||||
return PuzzleManager()
|
return PuzzleManager()
|
||||||
|
|
||||||
|
|
||||||
def write_data(data: PuzzleManager):
|
def write_data(data: PuzzleManager):
|
||||||
KONAPH_DATA_JSON.write_text(data.model_dump_json())
|
KONAPH_DATA_JSON.write_text(data.model_dump_json(), "utf-8")
|
||||||
|
|
||||||
|
|
||||||
@asynccontextmanager
|
@asynccontextmanager
|
||||||
|
|||||||
@ -15,7 +15,7 @@ if not POLL_DATA_FILE.exists():
|
|||||||
POLL_DATA_FILE.write_bytes(POLL_TEMPLATE_FILE.read_bytes())
|
POLL_DATA_FILE.write_bytes(POLL_TEMPLATE_FILE.read_bytes())
|
||||||
|
|
||||||
|
|
||||||
poll_list = json.loads(POLL_DATA_FILE.read_text())['poll']
|
poll_list = json.loads(POLL_DATA_FILE.read_text("utf-8"))['poll']
|
||||||
|
|
||||||
async def createpoll(title,qqid,options):
|
async def createpoll(title,qqid,options):
|
||||||
polllength = len(poll_list)
|
polllength = len(poll_list)
|
||||||
@ -53,7 +53,7 @@ def writeback():
|
|||||||
# json.dump({'poll':poll_list},file,ensure_ascii=False,sort_keys=True)
|
# json.dump({'poll':poll_list},file,ensure_ascii=False,sort_keys=True)
|
||||||
POLL_DATA_FILE.write_text(json.dumps({
|
POLL_DATA_FILE.write_text(json.dumps({
|
||||||
'poll': poll_list,
|
'poll': poll_list,
|
||||||
}, ensure_ascii=False, sort_keys=True))
|
}, ensure_ascii=False, sort_keys=True), "utf-8")
|
||||||
|
|
||||||
async def pollvote(polnum,optionnum,qqnum):
|
async def pollvote(polnum,optionnum,qqnum):
|
||||||
optiond = poll_list[polnum]["polldata"]
|
optiond = poll_list[polnum]["polldata"]
|
||||||
|
|||||||
@ -59,14 +59,14 @@ def load_notify_config() -> NotifyConfigFile:
|
|||||||
if not DATA_FILE_PATH.exists():
|
if not DATA_FILE_PATH.exists():
|
||||||
return NotifyConfigFile()
|
return NotifyConfigFile()
|
||||||
try:
|
try:
|
||||||
return NotifyConfigFile.model_validate_json(DATA_FILE_PATH.read_text())
|
return NotifyConfigFile.model_validate_json(DATA_FILE_PATH.read_text("utf-8"))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warning(f"在解析 Notify 时遇到问题:{e}")
|
logger.warning(f"在解析 Notify 时遇到问题:{e}")
|
||||||
return NotifyConfigFile()
|
return NotifyConfigFile()
|
||||||
|
|
||||||
|
|
||||||
def save_notify_config(config: NotifyConfigFile):
|
def save_notify_config(config: NotifyConfigFile):
|
||||||
DATA_FILE_PATH.write_text(config.model_dump_json(indent=4))
|
DATA_FILE_PATH.write_text(config.model_dump_json(indent=4), "utf-8")
|
||||||
|
|
||||||
|
|
||||||
@evt.handle()
|
@evt.handle()
|
||||||
|
|||||||
Reference in New Issue
Block a user