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]*?)[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("","")[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]*?)[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 "([\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)))
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