新增gs全部更新

This commit is contained in:
Wuyi无疑 2023-03-12 14:25:09 +08:00
parent 42072f71ae
commit 62009e0a0f
4 changed files with 56 additions and 24 deletions

View File

@ -34,21 +34,22 @@ async def notice_job():
# 执行私聊推送
for bot_id in result:
bot = gss.active_bot[bot_id]
for user_id in result[bot_id]['direct']:
msg = result[bot_id]['direct'][user_id]
await bot.target_send(msg, 'direct', user_id, bot_id)
await asyncio.sleep(0.5)
logger.info('[推送检查] 私聊推送完成')
for gid in result[bot_id]['group']:
msg_list = []
for user_id in result[bot_id]['group'][gid]:
msg_list.append(MessageSegment.at(user_id))
msg = result[bot_id]['group'][gid][user_id]
msg_list.append(MessageSegment.text(msg))
await bot.target_send(msg_list, 'group', gid, bot_id)
await asyncio.sleep(0.5)
logger.info('[推送检查] 群聊推送完成')
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]
await bot.target_send(msg, 'direct', user_id, bot_id, '')
await asyncio.sleep(0.5)
logger.info('[推送检查] 私聊推送完成')
for gid in result[bot_id]['group']:
msg_list = []
for user_id in result[bot_id]['group'][gid]:
msg_list.append(MessageSegment.at(user_id))
msg = result[bot_id]['group'][gid][user_id]
msg_list.append(MessageSegment.text(msg))
await bot.target_send(msg_list, 'group', gid, bot_id, '')
await asyncio.sleep(0.5)
logger.info('[推送检查] 群聊推送完成')
@SV('查询体力').on_fullmatch(('每日', 'mr', '实时便笺', '便笺', '便签'))

View File

@ -3,9 +3,10 @@ from gsuid_core.bot import Bot
from gsuid_core.gss import gss
from gsuid_core.models import Event
from gsuid_core.logger import logger
from gsuid_core.segment import MessageSegment
from .draw_update_log import draw_update_log_img
from .restart import restart_message, restart_genshinuid
from .draw_update_log import get_all_update_log, draw_update_log_img
@gss.on_bot_connect
@ -50,10 +51,13 @@ async def send_updatelog_msg(bot: Bot, ev: Event):
await bot.send(im)
@SV('Core管理', pm=1).on_fullmatch(('gs更新', 'gs强制更新', 'gs强行强制更新'))
@SV('Core管理', pm=1).on_fullmatch(('gs更新', 'gs强制更新', 'gs强行强制更新', 'gs全部更新'))
async def send_update_msg(bot: Bot, ev: Event):
await bot.logger.info('[gs更新] 正在执行 ...')
level = 2
if '全部' in ev.command:
im = await get_all_update_log()
return await bot.send(MessageSegment.node(im))
if '强制' not in ev.command:
level -= 1
if '强行' not in ev.command:

View File

@ -1,9 +1,10 @@
from pathlib import Path
from typing import Union
from typing import List, Union
from PIL import Image, ImageDraw
from .update import update_from_git
from ..utils.error_reply import UPDATE_HINT
from ..utils.image.convert import convert_img
from ..utils.image.image_tools import get_color_bg
from ..utils.fonts.genshin_fonts import genshin_font_origin
@ -22,6 +23,33 @@ log_config = {
log_map = {'': 'feat', '🐛': 'bug', '🍱': 'bento', '⚡️': 'zap', '🎨': 'art'}
async def get_all_update_log() -> List:
v4_repo_path = Path(__file__).parents[2]
core_repo_path = Path(__file__).parents[5]
log_list1 = await update_from_git(0, v4_repo_path, log_config, True)
log_list2 = await update_from_git(0, core_repo_path, log_config, True)
im = []
if len(log_list1) == 0:
im.append('gsuid_v4更新失败!更多消息请查看控制台...以下为记录:')
im.append(UPDATE_HINT)
else:
im.append('gsuid_v4更新成功!')
im.append('最近更新记录如下:')
im.append(log_list1[0])
if len(log_list1) >= 2:
im.append(log_list1[1])
if len(log_list2) == 0:
im.append('gsuid_core更新失败!更多消息请查看控制台...')
else:
im.append('gsuid_core更新成功!')
im.append(log_list2[0])
if len(log_list2) >= 2:
im.append(log_list2[1])
return im
async def draw_update_log_img(
level: int = 0,
repo_path: Union[str, Path, None] = None,
@ -29,12 +57,7 @@ async def draw_update_log_img(
) -> Union[bytes, str]:
log_list = await update_from_git(level, repo_path, log_config, is_update)
if len(log_list) == 0:
return (
'更新失败!更多错误信息请查看控制台...\n '
'>> 可以尝试使用\n '
'>> [gs强制更新](危险)\n '
'>> [gs强行强制更新](超级危险)!'
)
return UPDATE_HINT
log_title = Image.open(TEXT_PATH / 'log_title.png')

View File

@ -12,6 +12,10 @@ VERIFY_HINT = '''出现验证码!
如未绑定CK: 可联系管理员使用[gs清除缓存]命令
'''
SK_HINT = '你还没有绑定过Stoken或者Stoken已失效~\n请加好友私聊Bot\n [扫码登陆] 或 [添加]后跟SK格式 以绑定SK'
UPDATE_HINT = '''更新失败!更多错误信息请查看控制台...
>> 可以尝试使用
>> [gs强制更新](危险)
>> [gs强行强制更新](超级危险)!'''
def get_error(retcode: Union[int, str]) -> str: