mirror of
https://github.com/baiqwerdvd/ArknightsUID.git
synced 2025-05-04 19:17:33 +08:00
update
This commit is contained in:
parent
e6ef06694d
commit
c536e20b69
@ -16,7 +16,7 @@ async def get_ann_img(data: BulletinData) -> str | bytes:
|
|||||||
match data.displayType:
|
match data.displayType:
|
||||||
case 1:
|
case 1:
|
||||||
soup = BeautifulSoup(data.content, "lxml")
|
soup = BeautifulSoup(data.content, "lxml")
|
||||||
img = await soup_to_img(data.header, soup)
|
img = await soup_to_img(data.header, soup, data.bannerImageUrl)
|
||||||
return img
|
return img
|
||||||
case 2:
|
case 2:
|
||||||
img = await download_pic_to_image(data.bannerImageUrl)
|
img = await download_pic_to_image(data.bannerImageUrl)
|
||||||
@ -94,33 +94,54 @@ async def process_tag(
|
|||||||
return point, elements
|
return point, elements
|
||||||
|
|
||||||
|
|
||||||
async def soup_to_img(header: str, soup: BeautifulSoup) -> str | bytes:
|
async def soup_to_img(header: str, soup: BeautifulSoup, bannerImageUrl: str) -> str | bytes:
|
||||||
elements = []
|
banner_img = None
|
||||||
point = 105
|
banner_img_new_h = 0
|
||||||
div = get_div()
|
header_img = None
|
||||||
|
header_img_new_h = 0
|
||||||
|
|
||||||
logger.info("[GsCore] 开始解析帖子内容...")
|
if bannerImageUrl != "":
|
||||||
for tag in soup.descendants:
|
banner_img = await download_pic_to_image(bannerImageUrl)
|
||||||
point, elements = await process_tag(
|
banner_img_new_h = int((930 / banner_img.size[0]) * banner_img.size[1])
|
||||||
elements,
|
banner_img = banner_img.resize((930, banner_img_new_h))
|
||||||
point,
|
|
||||||
tag, # type: ignore
|
|
||||||
)
|
|
||||||
logger.info("[GsCore] 帖子解析完成!进入图片处理流程...")
|
|
||||||
|
|
||||||
img = Image.new("RGB", (1000, point), (255, 255, 255))
|
|
||||||
|
|
||||||
draw = ImageDraw.Draw(img)
|
|
||||||
|
|
||||||
if header != "":
|
if header != "":
|
||||||
header_img = "https://ak.hycdn.cn/announce/assets/images/announcement/header.jpg"
|
header_img = "https://ak.hycdn.cn/announce/assets/images/announcement/header.jpg"
|
||||||
header_img = await download_pic_to_image(header_img)
|
header_img = await download_pic_to_image(header_img)
|
||||||
new_h = int((930 / header_img.size[0]) * header_img.size[1])
|
header_img_new_h = int((930 / header_img.size[0]) * header_img.size[1])
|
||||||
header_img = header_img.resize((930, new_h))
|
header_img = header_img.resize((930, header_img_new_h))
|
||||||
|
|
||||||
img.paste(header_img, (35, 35))
|
elements = []
|
||||||
|
if banner_img:
|
||||||
|
point = 105 + banner_img_new_h + 15
|
||||||
|
init_point = 105 + banner_img_new_h + 15
|
||||||
|
else:
|
||||||
|
point = 105
|
||||||
|
init_point = 105
|
||||||
|
div = get_div()
|
||||||
|
|
||||||
|
print("[GsCore] 开始解析帖子内容...")
|
||||||
|
for tag in soup.descendants:
|
||||||
|
point, elements = await process_tag(
|
||||||
|
elements,
|
||||||
|
point,
|
||||||
|
init_point,
|
||||||
|
tag, # type: ignore
|
||||||
|
)
|
||||||
|
print("[GsCore] 帖子解析完成!进入图片处理流程...")
|
||||||
|
|
||||||
|
img = Image.new("RGB", (1000, point), (255, 255, 255))
|
||||||
|
draw = ImageDraw.Draw(img)
|
||||||
|
|
||||||
|
if banner_img:
|
||||||
|
img.paste(banner_img, (35, 35))
|
||||||
|
|
||||||
|
if header_img:
|
||||||
|
pad = 50 + banner_img_new_h if banner_img else 35
|
||||||
|
|
||||||
|
img.paste(header_img, (35, pad))
|
||||||
draw.text(
|
draw.text(
|
||||||
(45, 42),
|
(45, 7 + pad),
|
||||||
header,
|
header,
|
||||||
font=cf(30),
|
font=cf(30),
|
||||||
fill=(255, 255, 255),
|
fill=(255, 255, 255),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user