diff options
author | Kyomotoi <[email protected]> | 2023-06-22 21:20:12 +0800 |
---|---|---|
committer | Kyomotoi <[email protected]> | 2023-06-22 21:20:12 +0800 |
commit | e819d8e877e2499c21d825d58e030dd3a1064172 (patch) | |
tree | 0844f0b39afe0222d51e62c7758bce75a68312b6 /ATRI | |
parent | e165f3fc1b3436dd0543fe1fc95c02721fd70f1a (diff) | |
download | ATRI-e819d8e877e2499c21d825d58e030dd3a1064172.tar.gz ATRI-e819d8e877e2499c21d825d58e030dd3a1064172.tar.bz2 ATRI-e819d8e877e2499c21d825d58e030dd3a1064172.zip |
🚑️ 修复申请操作类数据读取错误
Diffstat (limited to 'ATRI')
-rw-r--r-- | ATRI/plugins/manage/__init__.py | 24 | ||||
-rw-r--r-- | ATRI/plugins/manage/data_source.py | 34 | ||||
-rw-r--r-- | ATRI/plugins/manage/models.py | 5 |
3 files changed, 40 insertions, 23 deletions
diff --git a/ATRI/plugins/manage/__init__.py b/ATRI/plugins/manage/__init__.py index 698c29f..7fa4a56 100644 --- a/ATRI/plugins/manage/__init__.py +++ b/ATRI/plugins/manage/__init__.py @@ -154,8 +154,9 @@ async def _(event: FriendRequestEvent): apply_comment = event.comment now_time = str(datetime.now().timestamp()) - data = await BotManager().load_friend_req() - data[apply_code] = RequestInfo( # type: ignore + raw_data = await BotManager().load_friend_req() + data = raw_data.dict() + data["data"][apply_code] = RequestInfo( user_id=user_id, comment=apply_comment, time=now_time, @@ -186,8 +187,9 @@ async def _(event: GroupRequestEvent): apply_comment = event.comment now_time = str(datetime.now().timestamp()) - data = await BotManager().load_group_req() - data[apply_code] = RequestInfo( # type: ignore + raw_data = await BotManager().load_group_req() + data = raw_data.dict() + data["data"][apply_code] = RequestInfo( user_id=user_id, comment=apply_comment + f"(目标群{target_group})", time=now_time, @@ -215,10 +217,11 @@ async def _(): await get_friend_req_list.finish("当前没有申请") cache_list = list() - for i in data: + for i in data.data: apply_code = i - apply_user = data[i].user_id - apply_comment = data[i].comment + apply_data = data.data[i] + apply_user = apply_data.user_id + apply_comment = apply_data.comment cache_list.append(f"{apply_user} | {apply_comment} | {apply_code}") result = ( @@ -239,10 +242,11 @@ async def _(): await get_group_req_list.finish("当前没有申请") cache_list = list() - for i in data: + for i in data.data: apply_code = i - apply_user = data[i].user_id - apply_comment = data[i].comment + apply_data = data.data[i] + apply_user = apply_data.user_id + apply_comment = apply_data.comment cache_list.append(f"{apply_user} | {apply_comment} | {apply_code}") result = ( diff --git a/ATRI/plugins/manage/data_source.py b/ATRI/plugins/manage/data_source.py index ef7cfb4..45adae1 100644 --- a/ATRI/plugins/manage/data_source.py +++ b/ATRI/plugins/manage/data_source.py @@ -11,7 +11,7 @@ from ATRI.service import ServiceTools from ATRI.message import MessageBuilder from ATRI.exceptions import load_error -from .models import RequestInfo +from .models import RequestList MANAGE_DIR = Path(".") / "data" / "plugins" / "manage" @@ -60,14 +60,14 @@ class BotManager: async def __store_block_user(self, data: dict) -> None: await self.__store_data("block_user.json", data) - async def load_friend_req(self) -> Dict[str, RequestInfo]: - return await self.__load_data("friend_add.json") + async def load_friend_req(self) -> RequestList: + return RequestList.parse_obj(await self.__load_data("friend_add.json")) async def store_friend_req(self, data: dict) -> None: await self.__store_data("friend_add.json", data) - async def load_group_req(self) -> Dict[str, RequestInfo]: - return await self.__load_data("group_invite.json") + async def load_group_req(self) -> RequestList: + return RequestList.parse_obj(await self.__load_data("group_invite.json")) async def store_group_req(self, data: dict) -> None: await self.__store_data("group_invite.json", data) @@ -184,9 +184,11 @@ class BotManager: await bot.call_api("set_friend_add_request", flag=code, approve=True) except Exception: raise Exception("同意失败,请尝试手动同意") - data = await self.load_friend_req() + raw_data = await self.load_friend_req() + data = raw_data.data data.pop(code) - await self.store_friend_req(data) + raw_data.data = data + await self.store_friend_req(raw_data.dict()) async def reject_friend_req(self, code: str) -> None: bot = self.__get_bot() @@ -194,9 +196,11 @@ class BotManager: await bot.call_api("set_friend_add_request", flag=code, approve=False) except Exception: raise Exception("拒绝失败,请尝试手动拒绝") - data = await self.load_friend_req() + raw_data = await self.load_friend_req() + data = raw_data.data data.pop(code) - await self.store_friend_req(data) + raw_data.data = data + await self.store_friend_req(raw_data.dict()) async def apply_group_req(self, code: str) -> None: bot = self.__get_bot() @@ -206,9 +210,11 @@ class BotManager: ) except Exception: raise Exception("同意失败,请尝试手动同意") - data = await self.load_group_req() + raw_data = await self.load_group_req() + data = raw_data.data data.pop(code) - await self.store_group_req(data) + raw_data.data = data + await self.store_group_req(raw_data.dict()) async def reject_group_req(self, code: str) -> None: bot = self.__get_bot() @@ -218,6 +224,8 @@ class BotManager: ) except Exception: raise Exception("拒绝失败,请尝试手动拒绝") - data = await self.load_group_req() + raw_data = await self.load_group_req() + data = raw_data.data data.pop(code) - await self.store_group_req(data) + raw_data.data = data + await self.store_group_req(raw_data.dict()) diff --git a/ATRI/plugins/manage/models.py b/ATRI/plugins/manage/models.py index 1ad8eaf..91e6f77 100644 --- a/ATRI/plugins/manage/models.py +++ b/ATRI/plugins/manage/models.py @@ -1,3 +1,4 @@ +from typing import Dict from pydantic import BaseModel @@ -7,6 +8,10 @@ class RequestInfo(BaseModel): time: str +class RequestList(BaseModel): + data: Dict[str, RequestInfo] + + class NonebotPluginInfo(BaseModel): module_name: str project_link: str |