mirror of
https://github.com/Genshin-bots/gsuid_core.git
synced 2025-05-11 22:45:48 +08:00
🐛 修复core信息
的箭头无法显示
This commit is contained in:
parent
c5003d1e7b
commit
64eafa182c
@ -1,5 +1,5 @@
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Dict, List, Tuple, Union
|
from typing import Dict, List, Tuple, Union, Optional
|
||||||
|
|
||||||
from PIL import Image, ImageOps, ImageDraw
|
from PIL import Image, ImageOps, ImageDraw
|
||||||
|
|
||||||
@ -149,7 +149,7 @@ async def draw_bar(text1: str, text2: str):
|
|||||||
async def draw_badge(
|
async def draw_badge(
|
||||||
title: str,
|
title: str,
|
||||||
value: Union[str, int, float],
|
value: Union[str, int, float],
|
||||||
avg_value: int = 0,
|
avg_value: Optional[int] = None,
|
||||||
color: Tuple[int, int, int] = THEME_COLOR,
|
color: Tuple[int, int, int] = THEME_COLOR,
|
||||||
):
|
):
|
||||||
badge = Image.new('RGBA', (210, 150))
|
badge = Image.new('RGBA', (210, 150))
|
||||||
@ -170,33 +170,39 @@ async def draw_badge(
|
|||||||
)
|
)
|
||||||
|
|
||||||
if isinstance(value, int) or isinstance(value, float) or value.isdigit():
|
if isinstance(value, int) or isinstance(value, float) or value.isdigit():
|
||||||
value = number_to_chinese(float(value))
|
value_str = number_to_chinese(float(value))
|
||||||
|
else:
|
||||||
|
value_str = value
|
||||||
|
|
||||||
if avg_value != 0 and (isinstance(value, int) or isinstance(value, float)):
|
if avg_value is not None and (
|
||||||
if value > avg_value * 1.2:
|
isinstance(value, int) or isinstance(value, float)
|
||||||
|
):
|
||||||
|
if value >= avg_value * 1.2:
|
||||||
arrow = Image.open(TEXT_PATH / 'up.png')
|
arrow = Image.open(TEXT_PATH / 'up.png')
|
||||||
|
x = get_font_x(core_font(46), value_str)
|
||||||
point = (92, 51)
|
point = (92, 51)
|
||||||
badge.paste(
|
badge.paste(
|
||||||
arrow,
|
arrow,
|
||||||
(154, 23),
|
(95 + x // 2, 26),
|
||||||
arrow,
|
arrow,
|
||||||
)
|
)
|
||||||
elif value < avg_value * 0.8:
|
elif value <= avg_value * 0.8:
|
||||||
arrow = Image.open(TEXT_PATH / 'down.png')
|
arrow = Image.open(TEXT_PATH / 'down.png')
|
||||||
|
x = get_font_x(core_font(46), value_str)
|
||||||
point = (92, 51)
|
point = (92, 51)
|
||||||
badge.paste(
|
badge.paste(
|
||||||
arrow,
|
arrow,
|
||||||
(154, 23),
|
(95 + x // 2, 26),
|
||||||
arrow,
|
arrow,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
point = (105, 63)
|
point = (105, 51)
|
||||||
else:
|
else:
|
||||||
point = (105, 63)
|
point = (105, 51)
|
||||||
|
|
||||||
badge_draw.text(
|
badge_draw.text(
|
||||||
point,
|
point,
|
||||||
value,
|
value_str,
|
||||||
BLACK,
|
BLACK,
|
||||||
core_font(46),
|
core_font(46),
|
||||||
'mm',
|
'mm',
|
||||||
@ -425,7 +431,7 @@ async def draw_curve(datas: Dict[Tuple[int, int, int], List[float]]):
|
|||||||
img = Image.new('RGBA', (1400, 550))
|
img = Image.new('RGBA', (1400, 550))
|
||||||
img_draw = ImageDraw.Draw(img)
|
img_draw = ImageDraw.Draw(img)
|
||||||
|
|
||||||
num = 20
|
num = 30
|
||||||
rad = 5
|
rad = 5
|
||||||
a_y = 375
|
a_y = 375
|
||||||
a_x = 1200
|
a_x = 1200
|
||||||
@ -478,7 +484,7 @@ async def draw_curve_img(ev: Event):
|
|||||||
_data = await gv.get_value_analysis(
|
_data = await gv.get_value_analysis(
|
||||||
ev.real_bot_id,
|
ev.real_bot_id,
|
||||||
ev.bot_self_id,
|
ev.bot_self_id,
|
||||||
20,
|
30,
|
||||||
)
|
)
|
||||||
|
|
||||||
result: Dict[Tuple[int, int, int], List[float]] = {
|
result: Dict[Tuple[int, int, int], List[float]] = {
|
||||||
|
@ -53,8 +53,13 @@ def get_disk_info():
|
|||||||
else:
|
else:
|
||||||
name = f"{round(total_gb, 1)}GB"
|
name = f"{round(total_gb, 1)}GB"
|
||||||
|
|
||||||
|
# 转换为TB 显示
|
||||||
used_gb = used_size / (1024**3)
|
used_gb = used_size / (1024**3)
|
||||||
used = f"{round(used_gb, 1)}GB"
|
if used_gb >= 1000:
|
||||||
|
used_tb = round(used_gb / 1024, 1)
|
||||||
|
used = f"{used_tb}TB"
|
||||||
|
else:
|
||||||
|
used = f"{round(used_gb, 1)}GB"
|
||||||
name = f"{used} / {name}"
|
name = f"{used} / {name}"
|
||||||
|
|
||||||
# 使用根分区的使用率作为示例(可根据需求修改)
|
# 使用根分区的使用率作为示例(可根据需求修改)
|
||||||
|
@ -103,5 +103,33 @@ class GsCoreSubscribe:
|
|||||||
task_name=task_name,
|
task_name=task_name,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
async def update_subscribe_message(
|
||||||
|
self,
|
||||||
|
subscribe_type: Literal['session', 'single'],
|
||||||
|
task_name: str,
|
||||||
|
event: Event,
|
||||||
|
extra_message: str,
|
||||||
|
):
|
||||||
|
sed = {}
|
||||||
|
upd = {}
|
||||||
|
for i in [
|
||||||
|
'bot_id',
|
||||||
|
'bot_self_id',
|
||||||
|
'user_type',
|
||||||
|
]:
|
||||||
|
sed[i] = event.__getattribute__(i)
|
||||||
|
|
||||||
|
if subscribe_type == 'session' and event.user_type == 'group':
|
||||||
|
sed['group_id'] = event.group_id
|
||||||
|
else:
|
||||||
|
sed['user_id'] = event.user_id
|
||||||
|
|
||||||
|
sed['task_name'] = task_name
|
||||||
|
sed['subscribe_type'] = subscribe_type
|
||||||
|
|
||||||
|
upd['extra_message'] = extra_message
|
||||||
|
|
||||||
|
await Subscribe.update_data_by_data(sed, upd)
|
||||||
|
|
||||||
|
|
||||||
gs_subscribe = GsCoreSubscribe()
|
gs_subscribe = GsCoreSubscribe()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user