diff options
author | Kyomotoi <[email protected]> | 2022-06-22 20:28:16 +0800 |
---|---|---|
committer | Kyomotoi <[email protected]> | 2022-06-22 20:28:16 +0800 |
commit | e676d6e6d4d42db55a4c6811e102747eee401f6a (patch) | |
tree | 0041923362e66518dfa8f1520767c22514ba9cf5 /ATRI/plugins/bilibili_dynamic/data_source.py | |
parent | 679393f4f65701012da2160e72b2fda3584272ca (diff) | |
download | ATRI-e676d6e6d4d42db55a4c6811e102747eee401f6a.tar.gz ATRI-e676d6e6d4d42db55a4c6811e102747eee401f6a.tar.bz2 ATRI-e676d6e6d4d42db55a4c6811e102747eee401f6a.zip |
🚸🎨 提高用户体验, 优化代码
Diffstat (limited to 'ATRI/plugins/bilibili_dynamic/data_source.py')
-rw-r--r-- | ATRI/plugins/bilibili_dynamic/data_source.py | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/ATRI/plugins/bilibili_dynamic/data_source.py b/ATRI/plugins/bilibili_dynamic/data_source.py index 64045e3..780f41c 100644 --- a/ATRI/plugins/bilibili_dynamic/data_source.py +++ b/ATRI/plugins/bilibili_dynamic/data_source.py @@ -1,8 +1,8 @@ import json +from datetime import datetime from operator import itemgetter from nonebot.permission import SUPERUSER -from nonebot.adapters.onebot.v11 import MessageSegment from nonebot.adapters.onebot.v11 import GROUP_OWNER, GROUP_ADMIN from ATRI.service import Service @@ -33,7 +33,7 @@ class BilibiliDynamicSubscriptor(Service): main_cmd="/bd", ) - async def add_sub(self, uid: int, group_id: int): + async def __add_sub(self, uid: int, group_id: int): try: async with DB() as db: await db.add_sub(uid, group_id) @@ -47,7 +47,7 @@ class BilibiliDynamicSubscriptor(Service): except Exception: raise BilibiliDynamicError("更新订阅失败") - async def del_sub(self, uid: int, group_id: int): + async def __del_sub(self, uid: int, group_id: int): try: async with DB() as db: await db.del_sub({"uid": uid, "group_id": group_id}) @@ -73,7 +73,7 @@ class BilibiliDynamicSubscriptor(Service): except Exception: raise BilibiliDynamicError("获取全部订阅列表失败") - async def get_up_nickname(self, uid: int) -> str: + async def __get_up_nickname(self, uid: int) -> str: api = API(uid) resp = await api.get_user_info() data = resp.get("data", dict()) @@ -170,3 +170,28 @@ class BilibiliDynamicSubscriptor(Service): .replace("http://", str()), up_dy_link="https://t.bilibili.com/" + str(data["dynamic_id"]), ) + + async def add_sub(self, uid: int, group_id: int) -> str: + up_nickname = await self.__get_up_nickname(uid) + if not up_nickname: + return f"无法获取id为 {uid} 的up主信息...操作失败了" + + query_result = await self.get_sub_list(uid, group_id) + if query_result: + return f"该up主 {up_nickname} 已在本群订阅列表中啦!" + + await self.__add_sub(uid, group_id) + await self.update_sub( + uid, + group_id, + {"up_nickname": up_nickname, "last_update": datetime.utcnow()}, + ) + return f"成功订阅名为 {up_nickname} up主的动态~!" + + async def del_sub(self, uid: int, group_id: int) -> str: + query_result = await self.get_sub_list(uid, group_id) + if not query_result: + return f"该uid: {uid} 未在本群订阅列表中啦!" + + await self.__del_sub(uid, group_id) + return f"成功取消订阅uid为 {uid} up主的动态~!" |