Merge branch 'main' into arknights

This commit is contained in:
felinae98 2021-02-19 15:59:04 +08:00
commit 60ce3ccc9e
No known key found for this signature in database
GPG Key ID: 00C8B010587FF610
2 changed files with 5 additions and 8 deletions

View File

@ -68,7 +68,7 @@ class Weibo(Platform):
def _get_text(self, raw_text: str) -> str: def _get_text(self, raw_text: str) -> str:
text = raw_text.replace('<br />', '\n') text = raw_text.replace('<br />', '\n')
return bs(text).text return bs(text, 'html.parser').text
async def parse(self, raw_post: RawPost) -> Post: async def parse(self, raw_post: RawPost) -> Post:
info = raw_post['mblog'] info = raw_post['mblog']

View File

@ -1,5 +1,4 @@
import base64 import base64
import math
from dataclasses import dataclass, field from dataclasses import dataclass, field
from io import BytesIO from io import BytesIO
from typing import NoReturn, Optional from typing import NoReturn, Optional
@ -37,26 +36,24 @@ class Post:
if len(self.pics) < 6: if len(self.pics) < 6:
return return
first_image = await self._pic_url_to_image(self.pics[0]) 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 return
pic_size = first_image.size[0] pic_size = first_image.size[0]
images = [first_image] images = [first_image]
for pic in self.pics[1:]: for pic in self.pics[1:]:
cur_image = await self._pic_url_to_image(pic) cur_image = await self._pic_url_to_image(pic)
if abs(first_image.size[0] - pic_size) / pic_size > 0.05 or \ if cur_image.size[0] != pic_size or cur_image.size[1] != pic_size:
abs(first_image.size[1] - pic_size) / pic_size > 0.05:
break break
images.append(cur_image) images.append(cur_image)
logger.debug('{} images is same size'.format(len(images)))
if len(images) == 6: if len(images) == 6:
matrix = (3, 2) matrix = (3, 2)
self.pics = self.pics[6:] self.pics = self.pics[6:]
elif len(images) == 9: elif len(images) >= 9:
matrix = (3, 3) matrix = (3, 3)
self.pics = self.pics[9:] self.pics = self.pics[9:]
else: else:
return 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)) target = Image.new('RGB', (matrix[0] * pic_size, matrix[1] * pic_size))
for y in range(matrix[1]): for y in range(matrix[1]):
for x in range(matrix[0]): for x in range(matrix[0]):