diff --git a/src/plugins/hk_reporter/platform/weibo.py b/src/plugins/hk_reporter/platform/weibo.py index 078c4e1..aa2bd12 100644 --- a/src/plugins/hk_reporter/platform/weibo.py +++ b/src/plugins/hk_reporter/platform/weibo.py @@ -68,7 +68,7 @@ class Weibo(Platform): def _get_text(self, raw_text: str) -> str: text = raw_text.replace('
', '\n') - return bs(text).text + return bs(text, 'html.parser').text async def parse(self, raw_post: RawPost) -> Post: info = raw_post['mblog'] diff --git a/src/plugins/hk_reporter/post.py b/src/plugins/hk_reporter/post.py index 6485d16..4609e6c 100644 --- a/src/plugins/hk_reporter/post.py +++ b/src/plugins/hk_reporter/post.py @@ -1,5 +1,4 @@ import base64 -import math from dataclasses import dataclass, field from io import BytesIO from typing import NoReturn, Optional @@ -37,26 +36,24 @@ class Post: if len(self.pics) < 6: return first_image = await self._pic_url_to_image(self.pics[0]) - if abs(first_image.size[0] - first_image.size[1]) / first_image.size[0] > 0.05: + if first_image.size[0] != first_image.size[1]: return pic_size = first_image.size[0] images = [first_image] for pic in self.pics[1:]: cur_image = await self._pic_url_to_image(pic) - if abs(first_image.size[0] - pic_size) / pic_size > 0.05 or \ - abs(first_image.size[1] - pic_size) / pic_size > 0.05: + if cur_image.size[0] != pic_size or cur_image.size[1] != pic_size: break images.append(cur_image) - logger.debug('{} images is same size'.format(len(images))) if len(images) == 6: matrix = (3, 2) self.pics = self.pics[6:] - elif len(images) == 9: + elif len(images) >= 9: matrix = (3, 3) self.pics = self.pics[9:] else: return - logger.info('trigger merge image with {} imgs'.format(len(images))) + logger.info('trigger merge image') target = Image.new('RGB', (matrix[0] * pic_size, matrix[1] * pic_size)) for y in range(matrix[1]): for x in range(matrix[0]):