diff --git a/src/plugins/nonebot_hk_reporter/platform/platform.py b/src/plugins/nonebot_hk_reporter/platform/platform.py
index 3362056..d01bbe4 100644
--- a/src/plugins/nonebot_hk_reporter/platform/platform.py
+++ b/src/plugins/nonebot_hk_reporter/platform/platform.py
@@ -241,7 +241,7 @@ class Platform(PlatformNameMixin, UserCustomFilterMixin, base=True):
         ...
 
 class NewMessage(
-        Platform, 
+        Platform,
         NewMessageProcessMixin,
         UserCustomFilterMixin,
         abstract=True
@@ -306,6 +306,33 @@ class StatusChange(
             logger.warning("network connection error: {}, url: {}".format(type(err), err.request.url))
             return []
 
+class SimplePost(
+        Platform,
+        MessageProcessMixin,
+        UserCustomFilterMixin,
+        StorageMixinProto,
+        abstract=True
+        ):
+    "Fetch a list of messages, dispatch it to different users"
+
+    async def fetch_new_post(self, target: Target, users: list[UserSubInfo]) -> list[tuple[User, list[Post]]]:
+        try:
+            new_posts = await self.get_sub_list(target)
+            if not new_posts:
+                return []
+            else:
+                for post in new_posts:
+                    logger.info('fetch new post from {} {}: {}'.format(
+                        self.platform_name,
+                        target if self.has_target else '-',
+                        self.get_id(post)))
+            res = await self.dispatch_user_post(target, new_posts, users)
+            self.parse_cache = {}
+            return res
+        except httpx.RequestError as err:
+            logger.warning("network connection error: {}, url: {}".format(type(err), err.request.url))
+            return []
+
 class NoTargetGroup(
         Platform,
         NoTargetMixin,