From d8f29edd127411f1dd44e4454df78dc519f35e1d Mon Sep 17 00:00:00 2001 From: Yuki-Asuuna <10174503104@stu.ecnu.edu.cn> Date: Sun, 6 Mar 2022 12:41:30 +0800 Subject: =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=B7=BB=E5=8A=A0=E8=AE=A2?= =?UTF-8?q?=E9=98=85=E6=97=B6=E5=88=B7=E5=B1=8F=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I6855069c5e670ee86375122d1a133e22cc4434d4 --- ATRI/plugins/bilibili_dynamic/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'ATRI') diff --git a/ATRI/plugins/bilibili_dynamic/__init__.py b/ATRI/plugins/bilibili_dynamic/__init__.py index fa9f8c3..63b2e54 100644 --- a/ATRI/plugins/bilibili_dynamic/__init__.py +++ b/ATRI/plugins/bilibili_dynamic/__init__.py @@ -9,6 +9,7 @@ from nonebot import get_bot from .data_source import BilibiliDynamicSubscriptor import re from tabulate import tabulate +from datetime import datetime bilibili_dynamic = BilibiliDynamicSubscriptor().on_command( "/bilibili_dynamic", "b站动态订阅助手", aliases={"b站动态"} @@ -102,7 +103,7 @@ async def handle_uid(event: GroupMessageEvent, state: T_State = State()): print(success) success = success and ( await subscriptor.update_subscription_by_uid( - uid=uid, update_map={"nickname": up_name} + uid=uid, update_map={"nickname": up_name, "last_update": datetime.now()} ) ) elif sub_command == "取消订阅": -- cgit v1.2.3 From 218f279bb875b29347df16a6d7dfd461dada6744 Mon Sep 17 00:00:00 2001 From: Yuki-Asuuna <10174503104@stu.ecnu.edu.cn> Date: Sun, 6 Mar 2022 16:22:12 +0800 Subject: =?UTF-8?q?fix:=20=E5=86=85=E5=AE=B9=E6=91=98=E8=A6=81=E9=99=90?= =?UTF-8?q?=E5=88=B6=E5=AD=97=E6=95=B0/=E5=8E=BB=E6=8E=89=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E4=B8=AD=E5=86=97=E4=BD=99=E7=9A=84=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=EF=BC=88=E5=8A=A8=E6=80=81ID=E3=80=81UID=E3=80=81=E7=82=B9?= =?UTF-8?q?=E8=B5=9E=E6=AC=A1=E6=95=B0=E3=80=81=E9=98=85=E8=AF=BB=E6=AC=A1?= =?UTF-8?q?=E6=95=B0=E3=80=81=E8=BD=AC=E5=8F=91=E6=AC=A1=E6=95=B0=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I8f69c6fcb2b295b46f5d3cc7c93c5e03a77c6e6a --- ATRI/plugins/bilibili_dynamic/data_source.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'ATRI') diff --git a/ATRI/plugins/bilibili_dynamic/data_source.py b/ATRI/plugins/bilibili_dynamic/data_source.py index 25c2d8d..49ffce7 100644 --- a/ATRI/plugins/bilibili_dynamic/data_source.py +++ b/ATRI/plugins/bilibili_dynamic/data_source.py @@ -335,16 +335,13 @@ class BilibiliDynamicSubscriptor(Service): return ret def generate_output(self, pattern: dict) -> (str, str): - text_part = """【UP名称】{name}\n【动态类型】{dynamic_type}\n【动态ID】{dynamic_id}\n【时间】{time}\n【UID】{uid}\n【当前阅读次数】{view}\n【当前转发次数】{repost}\n【当前点赞次数】{like}\n【内容摘要】{content}\n""".format( + # 限制摘要的字数 + abstractLimit = 40 + text_part = """【UP名称】{name}\n【动态类型】{dynamic_type}\n【时间】{time}\n【内容摘要】{content}\n""".format( name=pattern["name"], dynamic_type=pattern["type_zh"], - dynamic_id=pattern["dynamic_id"], time=pattern["time"], - uid=pattern["uid"], - view=pattern["view"], - repost=pattern["repost"], - like=pattern["like"], - content=pattern["content"], + content=pattern["content"][:abstractLimit], ) pic_part = pattern["pic"] return text_part, pic_part -- cgit v1.2.3 From 0ec099e421ba0f315d10fb59c34e43172b0487c0 Mon Sep 17 00:00:00 2001 From: Yuki-Asuuna <10174503104@stu.ecnu.edu.cn> Date: Sun, 6 Mar 2022 17:08:00 +0800 Subject: =?UTF-8?q?fix:=20=E6=B7=BB=E5=8A=A0=E5=8A=A8=E6=80=81=E8=AE=A2?= =?UTF-8?q?=E9=98=85=E5=8A=9F=E8=83=BD=E5=AF=B9=E8=AE=A2=E9=98=85=E5=BC=80?= =?UTF-8?q?=E5=90=AF/=E7=A6=81=E6=AD=A2=E7=9A=84=E8=B0=83=E7=94=A8?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I2288750784295722329fddf1b1df520e27566921 --- ATRI/plugins/bilibili_dynamic/__init__.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'ATRI') diff --git a/ATRI/plugins/bilibili_dynamic/__init__.py b/ATRI/plugins/bilibili_dynamic/__init__.py index 63b2e54..c2ba04d 100644 --- a/ATRI/plugins/bilibili_dynamic/__init__.py +++ b/ATRI/plugins/bilibili_dynamic/__init__.py @@ -1,3 +1,7 @@ +from apscheduler.triggers.base import BaseTrigger +from apscheduler.triggers.combining import AndTrigger +from apscheduler.triggers.interval import IntervalTrigger + from ATRI.utils.apscheduler import scheduler from ATRI.utils import timestamp2datetime @@ -130,11 +134,24 @@ from queue import Queue tq = Queue() +class BilibiliDynamicCheckEnabledTrigger(BaseTrigger): + # 自定义trigger 保证服务开启 + # 实现abstract方法 + def get_next_fire_time(self, previous_fire_time, now): + subscriptor = BilibiliDynamicSubscriptor() + config = subscriptor.load_service() + if config["enabled"] == False: + return None + else: + return now + + # 业务逻辑 # 每10s从任务队列中拉一个uid出来,调用api进行查询 # 当任务队列为空时,从数据库读取订阅列表,并塞入任务队列tq中 @scheduler.scheduled_job( - "interval", name="b站动态检查", seconds=10, max_instances=3, misfire_grace_time=60 + AndTrigger([IntervalTrigger(seconds=10), + BilibiliDynamicCheckEnabledTrigger()]), name="b站动态检查", max_instances=3, misfire_grace_time=60 ) async def _check_dynamic(): from ATRI.database.models import Subscription -- cgit v1.2.3 From 7ad305115885d34e71b630bb0fd5db0fc48521c5 Mon Sep 17 00:00:00 2001 From: Lint Action Date: Sun, 6 Mar 2022 09:09:06 +0000 Subject: =?UTF-8?q?:rotating=5Flight:=20=E8=87=AA=E5=8A=A8=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E4=BB=A3=E7=A0=81=E6=A0=BC=E5=BC=8F=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ATRI/plugins/bilibili_dynamic/__init__.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'ATRI') diff --git a/ATRI/plugins/bilibili_dynamic/__init__.py b/ATRI/plugins/bilibili_dynamic/__init__.py index c2ba04d..4c313a1 100644 --- a/ATRI/plugins/bilibili_dynamic/__init__.py +++ b/ATRI/plugins/bilibili_dynamic/__init__.py @@ -150,8 +150,10 @@ class BilibiliDynamicCheckEnabledTrigger(BaseTrigger): # 每10s从任务队列中拉一个uid出来,调用api进行查询 # 当任务队列为空时,从数据库读取订阅列表,并塞入任务队列tq中 @scheduler.scheduled_job( - AndTrigger([IntervalTrigger(seconds=10), - BilibiliDynamicCheckEnabledTrigger()]), name="b站动态检查", max_instances=3, misfire_grace_time=60 + AndTrigger([IntervalTrigger(seconds=10), BilibiliDynamicCheckEnabledTrigger()]), + name="b站动态检查", + max_instances=3, + misfire_grace_time=60, ) async def _check_dynamic(): from ATRI.database.models import Subscription -- cgit v1.2.3