更新 2.6 版本资源/功能
This commit is contained in:
parent
e32b17c7a5
commit
df9ae047e6
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 16 KiB |
Binary file not shown.
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 79 KiB |
Binary file not shown.
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 15 KiB |
@ -30,7 +30,7 @@ async def weapon_adv(name):
|
|||||||
im = ','.join(char_list)
|
im = ','.join(char_list)
|
||||||
im = im + " 可能会用到【{}】".format(weapon_name)
|
im = im + " 可能会用到【{}】".format(weapon_name)
|
||||||
else:
|
else:
|
||||||
im = " 没有角色能使用【{}】".format(weapon_name)
|
im = " 没有角色能使用【{}】".format(weapon_name if weapon_name else name)
|
||||||
return im
|
return im
|
||||||
|
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ async def get_character(name: str):
|
|||||||
return f"派蒙这里没找到 <code>{name}</code> ,可能是派蒙的错,可能是你输入的名字不正确哦。", None
|
return f"派蒙这里没找到 <code>{name}</code> ,可能是派蒙的错,可能是你输入的名字不正确哦。", None
|
||||||
else:
|
else:
|
||||||
return f"派蒙这里没找到 <code>{name}</code> ,你是要搜索 <code>{correct_result[0]}</code> 吗", None
|
return f"派蒙这里没找到 <code>{name}</code> ,你是要搜索 <code>{correct_result[0]}</code> 吗", None
|
||||||
result = f"<b>{nick_name} {'★' * int(data['rarity'])}</b>\n" \
|
result = f"<b>{data['name']} {'★' * int(data['rarity'])}</b>\n" \
|
||||||
f"<b>命之座:</b>{data['constellation']}\n" \
|
f"<b>命之座:</b>{data['constellation']}\n" \
|
||||||
f"<b>所属:</b>{data['affiliation']}\n" \
|
f"<b>所属:</b>{data['affiliation']}\n" \
|
||||||
f"<b>突破加成:</b>{data['substat']}\n" \
|
f"<b>突破加成:</b>{data['substat']}\n" \
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import time
|
import time
|
||||||
import datetime
|
|
||||||
import os
|
import os
|
||||||
from re import findall
|
from re import findall
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
@ -19,7 +18,7 @@ def generate_event():
|
|||||||
raw_data = get(
|
raw_data = get(
|
||||||
"https://hk4e-api.mihoyo.com/common/hk4e_cn/announcement/api/getAnnList?game=hk4e&game_biz=hk4e_cn&lang=zh-cn"
|
"https://hk4e-api.mihoyo.com/common/hk4e_cn/announcement/api/getAnnList?game=hk4e&game_biz=hk4e_cn&lang=zh-cn"
|
||||||
"&bundle_id=hk4e_cn&platform=pc®ion=cn_gf01&level=55&uid=100000000").json()
|
"&bundle_id=hk4e_cn&platform=pc®ion=cn_gf01&level=55&uid=100000000").json()
|
||||||
now_time = datetime.datetime.now().strftime('%Y-%m-%d')
|
# now_time = datetime.datetime.now().strftime('%Y-%m-%d')
|
||||||
# raw_time_data = get(
|
# raw_time_data = get(
|
||||||
# "https://api-takumi.mihoyo.com/event/bbs_activity_calendar/getActList?"
|
# "https://api-takumi.mihoyo.com/event/bbs_activity_calendar/getActList?"
|
||||||
# "time={}&game_biz=ys_cn&page=1&tag_id=0".format(now_time)).json()
|
# "time={}&game_biz=ys_cn&page=1&tag_id=0".format(now_time)).json()
|
||||||
@ -42,8 +41,16 @@ def generate_event():
|
|||||||
k["time_data"] = time_data
|
k["time_data"] = time_data
|
||||||
elif value.text == "〓活动时间〓":
|
elif value.text == "〓活动时间〓":
|
||||||
time_data = content_bs.find_all("p")[index + 1].text
|
time_data = content_bs.find_all("p")[index + 1].text
|
||||||
time_data = time_data.replace("</t>", "")[16:]
|
if "<t class=" in time_data:
|
||||||
k["time_data"] = time_data
|
time_datas = []
|
||||||
|
for s in time_data.split(" ~ "):
|
||||||
|
if "<t class=" in s:
|
||||||
|
time_datas.append(findall("<[a-zA-Z]+.*?>([\s\S]*?)</[a-zA-Z]*?>", s)[0])
|
||||||
|
else:
|
||||||
|
time_datas.append(s)
|
||||||
|
k["time_data"] = "——".join(time_datas)
|
||||||
|
else:
|
||||||
|
k["time_data"] = time_data
|
||||||
elif value.text == "〓祈愿介绍〓":
|
elif value.text == "〓祈愿介绍〓":
|
||||||
start_time = content_bs.find_all("tr")[1].td.find_all("p")[0].text
|
start_time = content_bs.find_all("tr")[1].td.find_all("p")[0].text
|
||||||
if "<t class=" in start_time:
|
if "<t class=" in start_time:
|
||||||
@ -52,7 +59,7 @@ def generate_event():
|
|||||||
content_bs.find_all("tr")[1].td.find_all("p")[2].text)[0]
|
content_bs.find_all("tr")[1].td.find_all("p")[2].text)[0]
|
||||||
if "<t class=" in end_time:
|
if "<t class=" in end_time:
|
||||||
end_time = findall("<[a-zA-Z]+.*?>([\s\S]*?)</[a-zA-Z]*?>", end_time)[0]
|
end_time = findall("<[a-zA-Z]+.*?>([\s\S]*?)</[a-zA-Z]*?>", end_time)[0]
|
||||||
time_data = start_time + "~" + end_time
|
time_data = start_time + "——" + end_time
|
||||||
k["time_data"] = time_data
|
k["time_data"] = time_data
|
||||||
|
|
||||||
if "冒险助力礼包" in k["title"] or "纪行" in k["title"]:
|
if "冒险助力礼包" in k["title"] or "纪行" in k["title"]:
|
||||||
|
66
defs/mys2.py
66
defs/mys2.py
@ -80,6 +80,7 @@ daily_im = '''
|
|||||||
每日委托:{}/{} 奖励{}领取
|
每日委托:{}/{} 奖励{}领取
|
||||||
周本减半:{}/{}
|
周本减半:{}/{}
|
||||||
洞天宝钱:{}
|
洞天宝钱:{}
|
||||||
|
参量质变仪:{}
|
||||||
探索派遣:
|
探索派遣:
|
||||||
总数/完成/上限:{}/{}/{}
|
总数/完成/上限:{}/{}/{}
|
||||||
{}'''
|
{}'''
|
||||||
@ -243,11 +244,18 @@ async def daily(mode="push", uid=None):
|
|||||||
coin_add_speed = math.ceil((dailydata["max_home_coin"] - dailydata["current_home_coin"]) / (
|
coin_add_speed = math.ceil((dailydata["max_home_coin"] - dailydata["current_home_coin"]) / (
|
||||||
int(dailydata["home_coin_recovery_time"]) / 60 / 60))
|
int(dailydata["home_coin_recovery_time"]) / 60 / 60))
|
||||||
coin += f'({coin_rec_time} 约{coin_add_speed}/h)'
|
coin += f'({coin_rec_time} 约{coin_add_speed}/h)'
|
||||||
|
if dailydata["transformer"]["recovery_time"]["reached"]:
|
||||||
|
transformer_status = "可用"
|
||||||
|
else:
|
||||||
|
transformer_time = dailydata["transformer"]["recovery_time"]
|
||||||
|
transformer_status = "还剩{}天{}小时{}分钟可用".format(
|
||||||
|
transformer_time["Day"], transformer_time["Hour"], transformer_time["Minute"])
|
||||||
|
|
||||||
expedition_data = "\n".join(expedition_info)
|
expedition_data = "\n".join(expedition_info)
|
||||||
send_mes = daily_im.format(tip, current_resin, max_resin, rec_time, finished_task_num, total_task_num,
|
send_mes = daily_im.format(tip, current_resin, max_resin, rec_time, finished_task_num, total_task_num,
|
||||||
is_extra_got, used_resin_discount_num,
|
is_extra_got, used_resin_discount_num,
|
||||||
resin_discount_num_limit, coin, current_expedition_num,
|
resin_discount_num_limit, coin, transformer_status,
|
||||||
|
current_expedition_num,
|
||||||
finished_expedition_num, max_expedition_num, expedition_data)
|
finished_expedition_num, max_expedition_num, expedition_data)
|
||||||
|
|
||||||
temp_list.append(
|
temp_list.append(
|
||||||
@ -1255,7 +1263,7 @@ async def draw_info_pic(uid: str, message: Message, image=None) -> str:
|
|||||||
|
|
||||||
# 获取背景图片各项参数
|
# 获取背景图片各项参数
|
||||||
based_w = 900
|
based_w = 900
|
||||||
based_h = 1380
|
based_h = 1480
|
||||||
image_def = CustomizeImage(image, based_w, based_h)
|
image_def = CustomizeImage(image, based_w, based_h)
|
||||||
bg_img = image_def.bg_img
|
bg_img = image_def.bg_img
|
||||||
bg_color = image_def.bg_color
|
bg_color = image_def.bg_color
|
||||||
@ -1289,10 +1297,10 @@ async def draw_info_pic(uid: str, message: Message, image=None) -> str:
|
|||||||
bg_img.paste(avatar_bg_color, (113, 98), avatar_bg)
|
bg_img.paste(avatar_bg_color, (113, 98), avatar_bg)
|
||||||
bg_img.paste(avatar_fg, (114, 95), avatar_fg)
|
bg_img.paste(avatar_fg, (114, 95), avatar_fg)
|
||||||
|
|
||||||
info1_color = Image.new("RGBA", (900, 1300), bg_color)
|
info1_color = Image.new("RGBA", (900, 1400), bg_color)
|
||||||
bg_img.paste(info1_color, (0, 0), info1)
|
bg_img.paste(info1_color, (0, 0), info1)
|
||||||
|
|
||||||
info2_color = Image.new("RGBA", (900, 1300), text_color)
|
info2_color = Image.new("RGBA", (900, 1400), text_color)
|
||||||
bg_img.paste(info2_color, (0, 0), info2)
|
bg_img.paste(info2_color, (0, 0), info2)
|
||||||
|
|
||||||
bg_img.paste(info3, (0, 0), info3)
|
bg_img.paste(info3, (0, 0), info3)
|
||||||
@ -1324,8 +1332,10 @@ async def draw_info_pic(uid: str, message: Message, image=None) -> str:
|
|||||||
anchor="lm")
|
anchor="lm")
|
||||||
|
|
||||||
# 收入比例
|
# 收入比例
|
||||||
for index, i in enumerate(award_data['data']['month_data']['group_by']):
|
group_by = award_data['data']['month_data']['group_by']
|
||||||
text_draw.text((681, 445 + index * 32), f"{str(i['num'])}({str(i['percent'])}%)", text_color, genshin_font(21),
|
group_by.sort(key=lambda x: (-x['action_id']))
|
||||||
|
for index, i in enumerate(group_by):
|
||||||
|
text_draw.text((681, 447 + index * 42), f"{str(i['num'])}({str(i['percent'])}%)", text_color, genshin_font(21),
|
||||||
anchor="lm")
|
anchor="lm")
|
||||||
|
|
||||||
# 基本四项
|
# 基本四项
|
||||||
@ -1339,27 +1349,41 @@ async def draw_info_pic(uid: str, message: Message, image=None) -> str:
|
|||||||
f"{str(daily_data['resin_discount_num_limit'] - daily_data['remain_resin_discount_num'])}/{daily_data['resin_discount_num_limit']}",
|
f"{str(daily_data['resin_discount_num_limit'] - daily_data['remain_resin_discount_num'])}/{daily_data['resin_discount_num_limit']}",
|
||||||
text_color, genshin_font(26), anchor="lm")
|
text_color, genshin_font(26), anchor="lm")
|
||||||
|
|
||||||
# 树脂恢复时间计算
|
# 参量质变仪
|
||||||
resin_recovery_time = seconds2hours(
|
if daily_data['transformer']['recovery_time']['reached']:
|
||||||
daily_data['resin_recovery_time'])
|
transformer_status = "已处于可用状态"
|
||||||
next_resin_rec_time = seconds2hours(
|
text_draw.text((170, 707), f"{transformer_status}", highlight_color, genshin_font(18), anchor="lm")
|
||||||
8 * 60 - ((daily_data['max_resin'] - daily_data['current_resin']) * 8 * 60 - int(
|
else:
|
||||||
daily_data['resin_recovery_time'])))
|
transformer_time = daily_data['transformer']['recovery_time']
|
||||||
text_draw.text((268, 305), f" {next_resin_rec_time}", text_color, genshin_font(18), anchor="lm")
|
transformer_status = "还剩{}天{}小时{}分钟可用".format(transformer_time['Day'], transformer_time['Hour'],
|
||||||
|
transformer_time['Minute'])
|
||||||
|
text_draw.text((170, 707), f"{transformer_status}", text_color, genshin_font(18), anchor="lm")
|
||||||
|
|
||||||
text_draw.text((170, 331), f"预计 后全部恢复", text_color, genshin_font(18), anchor="lm")
|
# 树脂恢复时间计算
|
||||||
text_draw.text((208, 331), f"{resin_recovery_time}", highlight_color, genshin_font(18), anchor="lm")
|
# 树脂恢复时间计算
|
||||||
|
if int(daily_data['resin_recovery_time']) <= 0:
|
||||||
|
text_draw.text((170, 331), f"已全部恢复", text_color, genshin_font(18), anchor="lm")
|
||||||
|
else:
|
||||||
|
resin_recovery_time = seconds2hours(
|
||||||
|
daily_data['resin_recovery_time'])
|
||||||
|
next_resin_rec_time = seconds2hours(
|
||||||
|
8 * 60 - ((daily_data['max_resin'] - daily_data['current_resin']) * 8 * 60 - int(
|
||||||
|
daily_data['resin_recovery_time'])))
|
||||||
|
text_draw.text((268, 305), f" {next_resin_rec_time}", text_color, genshin_font(18), anchor="lm")
|
||||||
|
|
||||||
|
text_draw.text((170, 331), f"预计 后全部恢复", text_color, genshin_font(18), anchor="lm")
|
||||||
|
text_draw.text((208, 331), f"{resin_recovery_time}", highlight_color, genshin_font(18), anchor="lm")
|
||||||
|
|
||||||
# 洞天宝钱时间计算
|
# 洞天宝钱时间计算
|
||||||
coin_rec_time = seconds2hours(int(daily_data["home_coin_recovery_time"]))
|
coin_rec_time = seconds2hours(int(daily_data["home_coin_recovery_time"]))
|
||||||
|
|
||||||
if daily_data["home_coin_recovery_time"] == "0":
|
if int(daily_data["home_coin_recovery_time"]) <= 0:
|
||||||
text_draw.text((170, 425), f"已满", text_color, genshin_font(18), anchor="lm")
|
text_draw.text((170, 425), f"已达到上限", text_color, genshin_font(18), anchor="lm")
|
||||||
else:
|
else:
|
||||||
coin_add_speed = math.ceil((daily_data["max_home_coin"] - daily_data["current_home_coin"]) / (
|
coin_add_speed = math.ceil((daily_data["max_home_coin"] - daily_data["current_home_coin"]) / (
|
||||||
int(daily_data["home_coin_recovery_time"]) / 60 / 60))
|
int(daily_data["home_coin_recovery_time"]) / 60 / 60))
|
||||||
text_draw.text((270, 399), f"约{coin_add_speed}/h", text_color, genshin_font(18), anchor="lm")
|
text_draw.text((270, 399), f"约{coin_add_speed}/h", text_color, genshin_font(18), anchor="lm")
|
||||||
text_draw.text((170, 425), f"预计 后达到上限", text_color, genshin_font(18), anchor="lm")
|
text_draw.text((170, 425), f"预计 后达到上限", text_color, genshin_font(18), anchor="lm")
|
||||||
text_draw.text((208, 425), f"{coin_rec_time}", highlight_color, genshin_font(18), anchor="lm")
|
text_draw.text((208, 425), f"{coin_rec_time}", highlight_color, genshin_font(18), anchor="lm")
|
||||||
|
|
||||||
if daily_data['is_extra_task_reward_received']:
|
if daily_data['is_extra_task_reward_received']:
|
||||||
@ -1412,10 +1436,10 @@ async def draw_info_pic(uid: str, message: Message, image=None) -> str:
|
|||||||
remained_timed: str = seconds2hours(i['remained_time'])
|
remained_timed: str = seconds2hours(i['remained_time'])
|
||||||
charpic_draw.text((200, 65), f"剩余时间 {remained_timed}", text_color, genshin_font(24), anchor="lm")
|
charpic_draw.text((200, 65), f"剩余时间 {remained_timed}", text_color, genshin_font(24), anchor="lm")
|
||||||
|
|
||||||
bg_img.paste(charpic, (-15, 748 + 115 * index), charpic)
|
bg_img.paste(charpic, (-15, 848 + 115 * index), charpic)
|
||||||
|
|
||||||
end_pic = Image.open(os.path.join(BG2_PATH, "abyss_3.png"))
|
end_pic = Image.open(os.path.join(BG2_PATH, "abyss_3.png"))
|
||||||
bg_img.paste(end_pic, (0, 1340), end_pic)
|
bg_img.paste(end_pic, (0, 1440), end_pic)
|
||||||
|
|
||||||
# 转换之后发送
|
# 转换之后发送
|
||||||
bg_img = bg_img.convert('RGB')
|
bg_img = bg_img.convert('RGB')
|
||||||
|
Loading…
Reference in New Issue
Block a user