From e676d6e6d4d42db55a4c6811e102747eee401f6a Mon Sep 17 00:00:00 2001 From: Kyomotoi Date: Wed, 22 Jun 2022 20:28:16 +0800 Subject: =?UTF-8?q?=F0=9F=9A=B8=F0=9F=8E=A8=20=E6=8F=90=E9=AB=98=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E4=BD=93=E9=AA=8C,=20=E4=BC=98=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ATRI/plugins/bilibili_dynamic/data_source.py | 33 ++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) (limited to 'ATRI/plugins/bilibili_dynamic/data_source.py') 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主的动态~!" -- cgit v1.2.3