From 8e86fc7f0238577121c5bbf1d71b556479b1477c Mon Sep 17 00:00:00 2001
From: felinae98 <731499577@qq.com>
Date: Sun, 1 Aug 2021 16:15:55 +0800
Subject: [PATCH] fix bugs

---
 CHANGELOG.md                                          | 3 +++
 src/plugins/nonebot_hk_reporter/platform/__init__.py  | 9 ++++-----
 src/plugins/nonebot_hk_reporter/platform/arknights.py | 2 +-
 src/plugins/nonebot_hk_reporter/platform/platform.py  | 2 +-
 tests/platforms/test_arknights.py                     | 4 ++++
 tests/platforms/test_platform.py                      | 8 ++++----
 6 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index adb43bf..8eb2bd0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -16,3 +16,6 @@
 - 修复不发送来源
 - 发送RSS订阅的title
 - 修复浏览器渲染问题
+
+## [0.3.2]
+- 增加NoTargetGroup
diff --git a/src/plugins/nonebot_hk_reporter/platform/__init__.py b/src/plugins/nonebot_hk_reporter/platform/__init__.py
index e6283e2..bc66380 100644
--- a/src/plugins/nonebot_hk_reporter/platform/__init__.py
+++ b/src/plugins/nonebot_hk_reporter/platform/__init__.py
@@ -14,16 +14,15 @@ async def check_sub_target(target_type, target):
     return await platform_manager[target_type].get_target_name(target)
 
 _platform_list = defaultdict(list)
-for platform in Platform.registory:
-    if not platform.enabled:
+for _platform in Platform.registory:
+    if not _platform.enabled:
         continue
-    _platform_list[platform.platform_name].append(platform)
+    _platform_list[_platform.platform_name].append(_platform)
 
 platform_manager: dict[str, Platform] = dict()
 for name, platform_list in _platform_list.items():
     if len(platform_list) == 1:
         platform_manager[name] = platform_list[0]()
     else:
-        platform_manager[name] = NoTargetGroup(platform_list)
+        platform_manager[name] = NoTargetGroup([_platform() for _platform in platform_list])
 
-print(platform_manager)
diff --git a/src/plugins/nonebot_hk_reporter/platform/arknights.py b/src/plugins/nonebot_hk_reporter/platform/arknights.py
index 1db465d..33292cc 100644
--- a/src/plugins/nonebot_hk_reporter/platform/arknights.py
+++ b/src/plugins/nonebot_hk_reporter/platform/arknights.py
@@ -79,7 +79,7 @@ class AkVersion(NoTargetMixin, StatusChange):
         res.update(res_preanounce.json())
         return res
 
-    async def compare_status(self, _, old_status, new_status):
+    def compare_status(self, _, old_status, new_status):
         res = []
         if old_status.get('preAnnounceType') == 2 and new_status.get('preAnnounceType') == 0:
             res.append(Post('arknights', text='开始维护!', target_name='明日方舟更新信息'))
diff --git a/src/plugins/nonebot_hk_reporter/platform/platform.py b/src/plugins/nonebot_hk_reporter/platform/platform.py
index 488db16..a7feae6 100644
--- a/src/plugins/nonebot_hk_reporter/platform/platform.py
+++ b/src/plugins/nonebot_hk_reporter/platform/platform.py
@@ -346,7 +346,7 @@ class NoTargetGroup(
     async def fetch_new_post(self, target, users):
         res = defaultdict(list)
         for platform in self.platform_list:
-            platform_res = await platform.fetch_new_post(target, users)
+            platform_res = await platform.fetch_new_post(target=target, users=users)
             for user, posts in platform_res:
                 res[user].extend(posts)
         return [[key, val] for key, val in res.items()]
diff --git a/tests/platforms/test_arknights.py b/tests/platforms/test_arknights.py
index 28b026a..d3d2c37 100644
--- a/tests/platforms/test_arknights.py
+++ b/tests/platforms/test_arknights.py
@@ -28,8 +28,12 @@ def arknights_list_1():
 async def test_fetch_new(arknights, dummy_user_subinfo, arknights_list_0, arknights_list_1):
     ak_list_router = respx.get("https://ak-conf.hypergryph.com/config/prod/announce_meta/IOS/announcement.meta.json")
     detail_router = respx.get("https://ak-fs.hypergryph.com/announce/IOS/announcement/675.html")
+    version_router = respx.get('https://ak-conf.hypergryph.com/config/prod/official/IOS/version')
+    preannouncement_router = respx.get('https://ak-conf.hypergryph.com/config/prod/announce_meta/IOS/preannouncement.meta.json')
     ak_list_router.mock(return_value=Response(200, json=arknights_list_0))
     detail_router.mock(return_value=Response(200, text=get_file('arknights-detail-675.html')))
+    version_router.mock(return_value=Response(200, json=get_json('arknights-version-0.json')))
+    preannouncement_router.mock(return_value=Response(200, json=get_json('arknights-pre-0.json')))
     target = ''
     res = await arknights.fetch_new_post(target, [dummy_user_subinfo])
     assert(ak_list_router.called)
diff --git a/tests/platforms/test_platform.py b/tests/platforms/test_platform.py
index 5f9c2f9..5397dc6 100644
--- a/tests/platforms/test_platform.py
+++ b/tests/platforms/test_platform.py
@@ -259,12 +259,12 @@ def mock_status_change(plugin_module: 'nonebot_hk_reporter'):
             else:
                 return {'s': False}
 
-        def compare_status(self, target, old_status, new_status) -> Optional['RawPost']:
+        def compare_status(self, target, old_status, new_status) -> list['RawPost']:
             if old_status['s'] == False and new_status['s'] == True:
-                return {'text': 'on', 'cat': 1}
+                return [{'text': 'on', 'cat': 1}]
             elif old_status['s'] == True and new_status['s'] == False:
-                return {'text': 'off', 'cat': 2}
-            return None
+                return [{'text': 'off', 'cat': 2}]
+            return []
 
         async def parse(self, raw_post) -> 'Post':
             return plugin_module.post.Post('mock_status', raw_post['text'], '')