🎨 优化体力推送提醒文案 (#637)

This commit is contained in:
KimigaiiWuyi 2024-08-11 02:33:20 +08:00
parent 4447ab841f
commit f1037c45fd
3 changed files with 31 additions and 22 deletions

View File

@ -10,9 +10,9 @@ from gsuid_core.segment import MessageSegment
from gsuid_core.utils.error_reply import UID_HINT
from ..utils.convert import get_uid
from .notice import get_notice_list
from .resin_text import get_resin_text
from .draw_resin_card import get_resin_img
from .notice import MR_NOTICE, get_notice_list
from ..genshinuid_config.gs_config import gsconfig
sv_get_resin = SV('查询体力')
@ -51,9 +51,10 @@ async def notice_job():
for BOT_ID in gss.active_bot:
bot = gss.active_bot[BOT_ID]
for user_id in result[bot_id]['direct']:
msg = result[bot_id]['direct'][user_id]
msg_list = [result[bot_id]['direct'][user_id]]
msg_list.append(MessageSegment.text)
await bot.target_send(
msg, 'direct', user_id, bot_id, '', ''
msg_list, 'direct', user_id, bot_id, '', ''
)
await asyncio.sleep(0.5)
logger.info('[推送检查] 私聊推送完成')
@ -63,6 +64,7 @@ async def notice_job():
msg_list.append(MessageSegment.at(user_id))
msg = result[bot_id]['group'][gid][user_id]
msg_list.append(MessageSegment.text(msg))
msg_list.append(MessageSegment.text(MR_NOTICE))
await bot.target_send(
msg_list, 'group', gid, bot_id, '', ''
)

View File

@ -1,4 +1,4 @@
from typing import Dict, List
from typing import Dict, List, Union
from gsuid_core.gss import gss
from gsuid_core.logger import logger
@ -8,13 +8,13 @@ from gsuid_core.utils.database.models import GsPush, GsUser
from ..utils.mys_api import mys_api
from ..genshinuid_config.gs_config import gsconfig
MR_NOTICE = '\n可发送[mr]或者[每日]来查看更多信息!\n'
MR_NOTICE = '\n可发送[mr]或者[每日]来查看更多信息!\n'
NOTICE = {
'coin': f'你的洞天宝钱快满啦!{MR_NOTICE}',
'resin': f'你的树脂/体力快满啦!{MR_NOTICE}',
'go': f'你有派遣信息即将可收取!{MR_NOTICE}',
'transform': f'你的质变仪即将可使用!{MR_NOTICE}',
'coin': '你的洞天宝钱快满啦!',
'resin': '你的树脂/体力快满啦!',
'go': '你有派遣奖励即将可领取!',
'transform': '你的质变仪即将可使用!',
}
@ -64,11 +64,15 @@ async def all_check(
)
continue
# 准备推送
if await check(mode, raw_data, push_data[f'{mode}_value']):
_check = await check(mode, raw_data, push_data[f'{mode}_value'])
if _check:
if push_data[f'{mode}_push'] == 'off':
pass
# on 推送到私聊
else:
notice = NOTICE[mode]
if isinstance(_check, int):
notice += f'(当前值: {_check}'
# 初始化
if bot_id not in msg_dict:
msg_dict[bot_id] = {'direct': {}, 'group': {}}
@ -76,9 +80,9 @@ async def all_check(
if push_data[f'{mode}_push'] == 'on':
# 添加私聊信息
if user_id not in msg_dict[bot_id]['direct']:
msg_dict[bot_id]['direct'][user_id] = NOTICE[mode]
msg_dict[bot_id]['direct'][user_id] = notice
else:
msg_dict[bot_id]['direct'][user_id] += NOTICE[mode]
msg_dict[bot_id]['direct'][user_id] += notice
await GsPush.update_data_by_uid(
uid, bot_id, None, **{f'{mode}_is_push': 'on'}
)
@ -90,28 +94,30 @@ async def all_check(
msg_dict[bot_id]['group'][gid] = {}
if user_id not in msg_dict[bot_id]['group'][gid]:
msg_dict[bot_id]['group'][gid][user_id] = NOTICE[mode]
msg_dict[bot_id]['group'][gid][user_id] = notice
else:
msg_dict[bot_id]['group'][gid][user_id] += NOTICE[mode]
msg_dict[bot_id]['group'][gid][user_id] += notice
await GsPush.update_data_by_uid(
uid, bot_id, None, **{f'{mode}_is_push': 'on'}
)
return msg_dict
async def check(mode: str, data: DailyNoteData, limit: int) -> bool:
async def check(
mode: str, data: DailyNoteData, limit: int
) -> Union[bool, int]:
if mode == 'coin':
if data['current_home_coin'] >= limit:
return True
return data['current_home_coin']
elif data['current_home_coin'] >= data['max_home_coin']:
return True
return data['current_home_coin']
else:
return False
if mode == 'resin':
if data['current_resin'] >= limit:
return True
return data['current_resin']
elif data['current_resin'] >= data['max_resin']:
return True
return data['current_resin']
else:
return False
if mode == 'go':
@ -130,3 +136,4 @@ async def check(mode: str, data: DailyNoteData, limit: int) -> bool:
return True
return False
return False
return False

View File

@ -55,10 +55,10 @@ async def get_resin_text(uid: str) -> Union[str, bytes]:
for expedition in dailydata['expeditions']:
avatar: str = expedition['avatar_side_icon'][89:-4]
try:
avatar_name: str = await enName_to_avatarId(avatar)
avatar_name: str = await avatar_id_to_name(avatar_name)
_avatar_name: str = await enName_to_avatarId(avatar)
avatar_name = await avatar_id_to_name(_avatar_name)
except KeyError:
avatar_name: str = avatar
avatar_name = avatar
if expedition['status'] == 'Finished':
expedition_info.append(f'{avatar_name} 探索完成')