diff options
| author | Kyomotoi <Kyomotoiowo@gmail.com> | 2022-03-09 17:27:27 +0800 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-03-09 17:27:27 +0800 | 
| commit | acc35d53a4190d557ea4995efe836dd771a180a0 (patch) | |
| tree | ac8aaad6ea2403716ba24ea7947d45a2156acd4f /ATRI/plugins/bilibili_dynamic | |
| parent | d6610195c4f1e201bb87eefaa9c6f56bc8dca296 (diff) | |
| parent | 905da626ebb740328de508edd88cadda80988cf9 (diff) | |
| download | ATRI-acc35d53a4190d557ea4995efe836dd771a180a0.tar.gz ATRI-acc35d53a4190d557ea4995efe836dd771a180a0.tar.bz2 ATRI-acc35d53a4190d557ea4995efe836dd771a180a0.zip  | |
Merge pull request #47 from Yuki-Asuuna/main
fix:修复b站动态订阅助手动态更新不及时的问题
Diffstat (limited to 'ATRI/plugins/bilibili_dynamic')
| -rw-r--r-- | ATRI/plugins/bilibili_dynamic/__init__.py | 16 | 
1 files changed, 13 insertions, 3 deletions
diff --git a/ATRI/plugins/bilibili_dynamic/__init__.py b/ATRI/plugins/bilibili_dynamic/__init__.py index 4c313a1..82fbb4d 100644 --- a/ATRI/plugins/bilibili_dynamic/__init__.py +++ b/ATRI/plugins/bilibili_dynamic/__init__.py @@ -1,3 +1,4 @@ +import pytz  from apscheduler.triggers.base import BaseTrigger  from apscheduler.triggers.combining import AndTrigger  from apscheduler.triggers.interval import IntervalTrigger @@ -13,7 +14,8 @@ from nonebot import get_bot  from .data_source import BilibiliDynamicSubscriptor  import re  from tabulate import tabulate -from datetime import datetime +from datetime import datetime, timedelta +from ATRI.log import logger  bilibili_dynamic = BilibiliDynamicSubscriptor().on_command(      "/bilibili_dynamic", "b站动态订阅助手", aliases={"b站动态"} @@ -60,7 +62,8 @@ async def handle_subcommand(event: GroupMessageEvent, state: T_State = State()):          r = await subscriptor.get_subscriptions(query_map={"groupid": event.group_id})          subs = []          for s in r: -            subs.append([s.nickname, s.uid, s.last_update]) +            tm = s.last_update.replace(tzinfo=pytz.timezone("Asia/Shanghai")) +            subs.append([s.nickname, s.uid, tm + timedelta(hours=8)])          output = "本群订阅的UP列表如下~\n" + tabulate(              subs, headers=["up名称", "UID", "上次更新时间"], tablefmt="plain", showindex=True          ) @@ -107,7 +110,8 @@ 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, "last_update": datetime.now()} +                uid=uid, +                update_map={"nickname": up_name, "last_update": datetime.utcnow()},              )          )      elif sub_command == "取消订阅": @@ -165,13 +169,19 @@ async def _check_dynamic():              tq.put(d)      else:          d: Subscription = tq.get() +        logger.info("准备查询UP【{up}】的动态 队列剩余{size}".format(up=d.nickname, size=tq.qsize()))          ts = int(d.last_update.timestamp()) +        # logger.info("上一次更新的时间戳{time}".format(time=ts))          info: dict = await subscriptor.get_recent_dynamic_by_uid(d.uid)          res = []          if info:              if info.get("cards") is not None:                  res = subscriptor.extract_dynamics_detail(info.get("cards")) + +        if len(res) == 0: +            logger.warning("获取UP【{up}】的动态为空".format(up=d.nickname))          for i in res: +            # logger.info("获取UP【{up}】的动态,时间{time},内容{content}".format(up=d.nickname, time=i["timestamp"],content=i["content"][:20]))              i["name"] = d.nickname              if ts < i["timestamp"]:                  text, pic_url = subscriptor.generate_output(pattern=i)  | 
