新增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,10 +34,11 @@ async def notice_job():
# 执行私聊推送 # 执行私聊推送
for bot_id in result: for bot_id in result:
bot = gss.active_bot[bot_id] for BOT_ID in gss.active_bot:
bot = gss.active_bot[BOT_ID]
for user_id in result[bot_id]['direct']: for user_id in result[bot_id]['direct']:
msg = result[bot_id]['direct'][user_id] msg = result[bot_id]['direct'][user_id]
await bot.target_send(msg, 'direct', user_id, bot_id) await bot.target_send(msg, 'direct', user_id, bot_id, '')
await asyncio.sleep(0.5) await asyncio.sleep(0.5)
logger.info('[推送检查] 私聊推送完成') logger.info('[推送检查] 私聊推送完成')
for gid in result[bot_id]['group']: for gid in result[bot_id]['group']:
@ -46,7 +47,7 @@ async def notice_job():
msg_list.append(MessageSegment.at(user_id)) msg_list.append(MessageSegment.at(user_id))
msg = result[bot_id]['group'][gid][user_id] msg = result[bot_id]['group'][gid][user_id]
msg_list.append(MessageSegment.text(msg)) msg_list.append(MessageSegment.text(msg))
await bot.target_send(msg_list, 'group', gid, bot_id) await bot.target_send(msg_list, 'group', gid, bot_id, '')
await asyncio.sleep(0.5) await asyncio.sleep(0.5)
logger.info('[推送检查] 群聊推送完成') logger.info('[推送检查] 群聊推送完成')

View File

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

View File

@ -1,9 +1,10 @@
from pathlib import Path from pathlib import Path
from typing import Union from typing import List, Union
from PIL import Image, ImageDraw from PIL import Image, ImageDraw
from .update import update_from_git from .update import update_from_git
from ..utils.error_reply import UPDATE_HINT
from ..utils.image.convert import convert_img from ..utils.image.convert import convert_img
from ..utils.image.image_tools import get_color_bg from ..utils.image.image_tools import get_color_bg
from ..utils.fonts.genshin_fonts import genshin_font_origin from ..utils.fonts.genshin_fonts import genshin_font_origin
@ -22,6 +23,33 @@ log_config = {
log_map = {'': 'feat', '🐛': 'bug', '🍱': 'bento', '⚡️': 'zap', '🎨': 'art'} 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( async def draw_update_log_img(
level: int = 0, level: int = 0,
repo_path: Union[str, Path, None] = None, repo_path: Union[str, Path, None] = None,
@ -29,12 +57,7 @@ async def draw_update_log_img(
) -> Union[bytes, str]: ) -> Union[bytes, str]:
log_list = await update_from_git(level, repo_path, log_config, is_update) log_list = await update_from_git(level, repo_path, log_config, is_update)
if len(log_list) == 0: if len(log_list) == 0:
return ( return UPDATE_HINT
'更新失败!更多错误信息请查看控制台...\n '
'>> 可以尝试使用\n '
'>> [gs强制更新](危险)\n '
'>> [gs强行强制更新](超级危险)!'
)
log_title = Image.open(TEXT_PATH / 'log_title.png') log_title = Image.open(TEXT_PATH / 'log_title.png')

View File

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