From 296dbc555c2a64a1d912c6d60eed48e5d0cd609c Mon Sep 17 00:00:00 2001
From: Kyomotoi <0w0@imki.moe>
Date: Wed, 18 Jan 2023 00:40:50 +0800
Subject: =?UTF-8?q?=F0=9F=8E=A8=20=E7=A7=BB=E9=99=A4=E5=AF=B9=20pytz=20?=
 =?UTF-8?q?=E7=9A=84=E4=BE=9D=E8=B5=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ATRI/plugins/rss/rss_mikanan/__init__.py | 14 +++++------
 ATRI/plugins/rss/rss_rsshub/__init__.py  | 40 +++++++++++++++++++++-----------
 2 files changed, 33 insertions(+), 21 deletions(-)

(limited to 'ATRI/plugins/rss')

diff --git a/ATRI/plugins/rss/rss_mikanan/__init__.py b/ATRI/plugins/rss/rss_mikanan/__init__.py
index fb4b23c..cf4463b 100644
--- a/ATRI/plugins/rss/rss_mikanan/__init__.py
+++ b/ATRI/plugins/rss/rss_mikanan/__init__.py
@@ -1,7 +1,6 @@
-import pytz
 import asyncio
 from tabulate import tabulate
-from datetime import timedelta, datetime
+from datetime import datetime, timedelta, timezone as tz
 
 from apscheduler.triggers.base import BaseTrigger
 from apscheduler.triggers.combining import AndTrigger
@@ -136,10 +135,11 @@ async def _():
         data: RssMikananiSubcription = tq.get_nowait()
         log.info(f"准备查询 Mikan: {data.title} 的动态, 队列剩余 {tq.qsize()}")
 
-        raw_ts = data.update_time.replace(
-            tzinfo=pytz.timezone("Asia/Shanghai")
-        ) + timedelta(hours=8)
-        ts = raw_ts.timestamp()
+        # raw_ts = data.update_time.replace(
+        #     tzinfo=pytz.timezone("Asia/Shanghai")
+        # ) + timedelta(hours=8)
+        # ts = raw_ts.timestamp()
+        ts = data.update_time.timestamp()
 
         info = await sub.get_mikan_info(data.rss_link)
         if not info:
@@ -167,5 +167,5 @@ async def _():
             bot = get_bot()
             await bot.send_group_msg(group_id=data.group_id, message=repo)
             await sub.update_sub(
-                data._id, data.group_id, {"update_time": TimeDealer(m_t).to_datetime()}
+                data._id, data.group_id, {"update_time": TimeDealer(m_t, tz(timedelta(hours=8))).to_datetime()}
             )
diff --git a/ATRI/plugins/rss/rss_rsshub/__init__.py b/ATRI/plugins/rss/rss_rsshub/__init__.py
index 137ec88..284ddb5 100644
--- a/ATRI/plugins/rss/rss_rsshub/__init__.py
+++ b/ATRI/plugins/rss/rss_rsshub/__init__.py
@@ -1,7 +1,7 @@
-import pytz
+# from dateutil import tz
 import asyncio
 from tabulate import tabulate
-from datetime import timedelta, datetime
+from datetime import datetime, timedelta, timezone as tz
 
 from apscheduler.triggers.base import BaseTrigger
 from apscheduler.triggers.combining import AndTrigger
@@ -17,6 +17,7 @@ from ATRI.log import log
 from ATRI.service import Service
 from ATRI.permission import ADMIN
 from ATRI.utils import TimeDealer
+from ATRI.message import MessageBuilder
 from ATRI.utils.apscheduler import scheduler
 from ATRI.database import RssRsshubSubcription
 
@@ -97,7 +98,10 @@ async def _(event: GroupMessageEvent):
 
     subs = list()
     for i in query_result:
-        subs.append([i.update_time, i.title])
+        t = i.update_time.replace(
+            tzinfo=tz(timedelta(hours=8))
+        )
+        subs.append([t, i.title])
 
     output = "本群的 RSSHub 订阅列表如下~\n" + tabulate(
         subs, headers=["最后更新时间", "标题"], tablefmt="plain"
@@ -135,10 +139,12 @@ async def _():
         m: RssRsshubSubcription = tq.get_nowait()
         log.info(f"准备查询 RssHub: {m.rss_link} 的动态, 队列剩余 {tq.qsize()}")
 
-        raw_ts = m.update_time.replace(
-            tzinfo=pytz.timezone("Asia/Shanghai")
-        ) + timedelta(hours=8)
-        ts = raw_ts.timestamp()
+        # raw_ts = m.update_time.replace(
+        #     tzinfo=pytz.timezone("Asia/Shanghai")
+        # ) + timedelta(hours=8)
+        # ts = raw_ts.timestamp()
+        ts = m.update_time.timestamp()
+        log.info(f"db time: {ts}")
 
         info: dict = await sub.get_rsshub_info(m.rss_link)
         if not info:
@@ -148,21 +154,27 @@ async def _():
         t_time = info["item"][0]["pubDate"]
         time_patt = "%a, %d %b %Y %H:%M:%S GMT"
 
-        raw_t = datetime.strptime(t_time, time_patt) + timedelta(hours=8)
-        ts_t = raw_t.timestamp()
+        # raw_t = datetime.strptime(t_time, time_patt) + timedelta(hours=8)
+        # ts_t = raw_t.timestamp()
+        log.info(f"rsshub time: {t_time}")
+        ts_t = datetime.strptime(t_time, time_patt).timestamp()
+        log.info(f"rsshub time: {ts_t}")
 
         if ts < ts_t:
             item = info["item"][0]
             title = item["title"]
             link = item["link"]
 
-            repo = f"""本群订阅的 RssHub 更新啦!
-            {title}
-            {link}
-            """
+            repo = (
+                MessageBuilder("本群订阅的 RssHub 更新啦!")
+                .text(f"标题: {title}")
+                .text(
+                    f"链接: {link}".replace("https://", str()).replace("http://", str())
+                )
+            )
 
             bot = get_bot()
             await bot.send_group_msg(group_id=m.group_id, message=repo)
             await sub.update_sub(
-                m._id, m.group_id, {"update_time": TimeDealer(ts_t).to_datetime()}
+                m._id, m.group_id, {"update_time": TimeDealer(ts_t, tz(timedelta(hours=0))).to_datetime()}
             )
-- 
cgit v1.2.3