diff --git a/src/plugins/nonebot_hk_reporter/platform/rss.py b/src/plugins/nonebot_hk_reporter/platform/rss.py index 6b9dcf6..3642045 100644 --- a/src/plugins/nonebot_hk_reporter/platform/rss.py +++ b/src/plugins/nonebot_hk_reporter/platform/rss.py @@ -36,10 +36,13 @@ class Rss(Platform): async with httpx.AsyncClient() as client: res = await client.get(target, timeout=10.0) feed = feedparser.parse(res) + entries = feed.entries + for entry in entries: + entry['_target_name'] = feed.feed.title return feed.entries async def parse(self, raw_post: RawPost) -> Post: soup = bs(raw_post.description, 'html.parser') text = soup.text pics = list(map(lambda x: x.attrs['src'], soup('img'))) - return Post('rss', text=text, url=raw_post.link, pics=pics) + return Post('rss', text=text, url=raw_post.link, pics=pics, target_name=raw_post['_target_name']) diff --git a/src/plugins/nonebot_hk_reporter/post.py b/src/plugins/nonebot_hk_reporter/post.py index 729cb6e..ff0720d 100644 --- a/src/plugins/nonebot_hk_reporter/post.py +++ b/src/plugins/nonebot_hk_reporter/post.py @@ -102,7 +102,7 @@ class Post: if self.target_name: text += ' {}'.format(self.target_name) if self.text: - text += ' \n{}'.format(self.text) + text += ' \n{}'.format(self.text if len(self.text) < 500 else self.text[:500] + '...') if self._use_pic(): msgs.append(await parse_text(text)) if not self.target_type == 'rss' and self.url: @@ -122,6 +122,6 @@ class Post: self.target_type, self.target_name, self.text, - self.url, + self.text if len(self.text) < 500 else self.text[:500] + '...', ', '.join(map(lambda x: 'b64img' if x.startswith('base64') else x, self.pics)) )