From 5d11ec7998de00c73bec390569a2396c61691c86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wuyi=E6=97=A0=E7=96=91?= <444835641@qq.com> Date: Mon, 14 Feb 2022 23:52:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=97=B6=E9=97=B4=20fix=20#116?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get_image.py | 51 ++++++++++++++++++++++++------------------------ requirements.txt | 4 +++- 2 files changed, 29 insertions(+), 26 deletions(-) diff --git a/get_image.py b/get_image.py index f5f2a05c..55fa1ecc 100644 --- a/get_image.py +++ b/get_image.py @@ -3,6 +3,7 @@ import os import random import threading import time +from bs4 import BeautifulSoup from base64 import b64encode from io import BytesIO from re import findall @@ -1300,31 +1301,31 @@ async def draw_event_pic(): for k in data: for i in raw_time_data["data"]["list"]: if k["title"] in i["title"]: - time_data = findall(r"[0-9]{4}/[0-9]{2}/[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}", i["content"]) - time_limit_end = findall(r"起至[0-9].[0-9]版本结束", i["content"]) - time_limit_start = findall(r"[0-9].[0-9]版本更新后 ~", i["content"]) - if len(time_data) == 2: - k["act_begin_time"] = time_data[0] - k["act_end_time"] = time_data[1] - elif len(time_data) == 1 and len(time_limit_end) == 1: - k["act_begin_time"] = time_data[0] - k["act_end_time"] = time_limit_end[0] - elif len(time_data) == 1 and len(time_limit_start) == 1: - k["act_begin_time"] = time_limit_start[0][:-2] - k["act_end_time"] = time_data[0] - elif len(time_data) == 1: - k["act_begin_time"] = time_data[0] - k["act_end_time"] = "永久开放" - elif len(time_data) > 2: - k["act_begin_time"] = time_data[0] - k["act_end_time"] = k["end_time"] - elif len(time_data) == 0: - k["act_begin_time"] = k["start_time"] + "(?)" - k["act_end_time"] = k["end_time"] + "(?)" - + content_bs = BeautifulSoup(i['content'], 'lxml') + for index,value in enumerate(content_bs.find_all("p")): + if value.text == "〓任务开放时间〓": + time_data = content_bs.find_all("p")[index+1].text + if "([\s\S]*?)", time_data)[0] + k["time_data"] = time_data + elif value.text == "〓活动时间〓": + time_data = content_bs.find_all("p")[index+1].text + time_data = time_data.replace("","")[16:] + k["time_data"] = time_data + elif value.text == "〓祈愿介绍〓": + start_time = content_bs.find_all("tr")[1].td.find_all("p")[0].text + if "([\s\S]*?)", start_time)[0] + end_time = findall("<[a-zA-Z]+.*?>([\s\S]*?)", + content_bs.find_all("tr")[1].td.find_all("p")[2].text)[0] + if "([\s\S]*?)", end_time)[0] + time_data = start_time + "~" + end_time + k["time_data"] = time_data + if "冒险助力礼包" in k["title"] or "纪行" in k["title"]: continue - # if "角色试用" in k["title"] or "传说任务" in k["title"]: + #if "角色试用" in k["title"] or "传说任务" in k["title"]: # event_data['other_event'].append(k) elif k["tag_label"] == "扭蛋": event_data['gacha_event'].append(k) @@ -1357,7 +1358,7 @@ async def draw_event_pic(): for index, value in enumerate(event_data['normal_event']): img = Image.open(BytesIO(get(value["banner"]).content)) base_draw.text((540, 300 + 45 + 390 + (390 + 90) * index + 1), - value["act_begin_time"] + " —— " + value["act_end_time"], (255, 255, 255), genshin_font(42), + value["time_data"], (255, 255, 255), genshin_font(42), anchor="mm") # base_img.paste(img,((index%2)*1080,300 + 390*(index//2))) base_img.paste(img, (0, 300 + (390 + 90) * index)) @@ -1365,7 +1366,7 @@ async def draw_event_pic(): for index, value in enumerate(event_data['gacha_event']): img = Image.open(BytesIO(get(value["banner"]).content)) base_draw.text((540, 600 + 45 + (390 + 90) * len(event_data['normal_event']) + 533 + index * (533 + 90)), - value["act_begin_time"] + " —— " + value["act_end_time"], (255, 255, 255), genshin_font(42), + value["time_data"], (255, 255, 255), genshin_font(42), anchor="mm") # base_img.paste(img,((index%2)*1080,600 + ((1 + len(event_data['normal_event']))//2)*390 + 533*(index//2))) base_img.paste(img, (0, 600 + (390 + 90) * len(event_data['normal_event']) + index * (533 + 90))) diff --git a/requirements.txt b/requirements.txt index 8d6c3505..f729b207 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,4 +3,6 @@ requests==2.25.1 httpx==0.18.1 Pillow>=8.3.1 wordcloud>=1.8.1 -numpy~=1.22.2 \ No newline at end of file +numpy~=1.22.2 +beautifulsoup4>=4.10.0 +lxml>=4.7.1 \ No newline at end of file