修复:活动列表时间 fix #116

This commit is contained in:
Wuyi无疑 2022-02-14 23:52:20 +08:00
parent 47a9595785
commit 5d11ec7998
2 changed files with 29 additions and 26 deletions

View File

@ -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 "<t class=" in time_data:
time_data = findall("<[a-zA-Z]+.*?>([\s\S]*?)</[a-zA-Z]*?>", 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("</t>","")[16:]
k["time_data"] = time_data
elif value.text == "〓祈愿介绍〓":
start_time = content_bs.find_all("tr")[1].td.find_all("p")[0].text
if "<t class=" in start_time:
start_time = findall("<[a-zA-Z]+.*?>([\s\S]*?)</[a-zA-Z]*?>", start_time)[0]
end_time = findall("<[a-zA-Z]+.*?>([\s\S]*?)</[a-zA-Z]*?>",
content_bs.find_all("tr")[1].td.find_all("p")[2].text)[0]
if "<t class=" in end_time:
end_time = findall("<[a-zA-Z]+.*?>([\s\S]*?)</[a-zA-Z]*?>", 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)))

View File

@ -3,4 +3,6 @@ requests==2.25.1
httpx==0.18.1
Pillow>=8.3.1
wordcloud>=1.8.1
numpy~=1.22.2
numpy~=1.22.2
beautifulsoup4>=4.10.0
lxml>=4.7.1