diff --git a/src/plugins/hk_reporter/post.py b/src/plugins/hk_reporter/post.py index 255c7b6..6485d16 100644 --- a/src/plugins/hk_reporter/post.py +++ b/src/plugins/hk_reporter/post.py @@ -1,7 +1,9 @@ import base64 +import math from dataclasses import dataclass, field from io import BytesIO from typing import NoReturn, Optional +from nonebot import logger import httpx from PIL import Image from .plugin_config import plugin_config @@ -35,15 +37,17 @@ class Post: if len(self.pics) < 6: return first_image = await self._pic_url_to_image(self.pics[0]) - if first_image.size[0] != first_image.size[1]: + if abs(first_image.size[0] - first_image.size[1]) / first_image.size[0] > 0.05: 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 cur_image.size[0] != pic_size or cur_image.size[1] != pic_size: + if abs(first_image.size[0] - pic_size) / pic_size > 0.05 or \ + abs(first_image.size[1] - pic_size) / pic_size > 0.05: 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:] @@ -52,6 +56,7 @@ class Post: self.pics = self.pics[9:] else: return + logger.info('trigger merge image with {} imgs'.format(len(images))) target = Image.new('RGB', (matrix[0] * pic_size, matrix[1] * pic_size)) for y in range(matrix[1]): for x in range(matrix[0]):