mirror of
https://github.com/xuthus83/LittlePaimon.git
synced 2024-12-16 13:40:53 +08:00
🐛 修复nb rc1
版本依赖注入更改导致的bug
This commit is contained in:
parent
4638c5d021
commit
ae7a380cc3
@ -33,14 +33,23 @@ logo = """<g>
|
||||
async def startup():
|
||||
logger.opt(colors=True).info(logo)
|
||||
await database.connect()
|
||||
from LittlePaimon import admin
|
||||
await migrate_database()
|
||||
await check_resource()
|
||||
from LittlePaimon import web
|
||||
# from LittlePaimon import admin
|
||||
# await migrate_database()
|
||||
# await check_resource()
|
||||
|
||||
|
||||
DRIVER.on_shutdown(database.disconnect)
|
||||
load_plugin('LittlePaimon.manager.bot_manager')
|
||||
load_plugin('LittlePaimon.manager.plugin_manager')
|
||||
load_plugin('LittlePaimon.manager.database_manager')
|
||||
load_plugin('LittlePaimon.manager.alias_manager')
|
||||
load_plugins(str(Path(__file__).parent / 'plugins'))
|
||||
# load_plugin('LittlePaimon.plugins.Mihoyo_bbs')
|
||||
# load_plugin('LittlePaimon.plugins.tools')
|
||||
# load_plugin('LittlePaimon.plugins.Chat')
|
||||
load_plugin('LittlePaimon.plugins.Paimon_MonthInfo')
|
||||
load_plugin('LittlePaimon.plugins.Paimon_Info')
|
||||
# load_plugin('LittlePaimon.plugins.Paimon_Abyss')
|
||||
# load_plugin('LittlePaimon.plugins.Paimon_Bind')
|
||||
|
||||
# load_plugin('LittlePaimon.manager.bot_manager')
|
||||
# load_plugin('LittlePaimon.manager.plugin_manager')
|
||||
# load_plugin('LittlePaimon.manager.database_manager')
|
||||
# load_plugin('LittlePaimon.manager.alias_manager')
|
||||
# load_plugins(str(Path(__file__).parent / 'plugins'))
|
||||
|
@ -89,7 +89,7 @@ async def _(event: Union[GroupMessageEvent, PrivateMessageEvent], lang=CommandLa
|
||||
|
||||
|
||||
@voice_list.handle()
|
||||
async def _(event: Union[GroupMessageEvent, PrivateMessageEvent], character=CommandCharacter(1, False), lang=CommandLang()):
|
||||
async def _(event: Union[GroupMessageEvent, PrivateMessageEvent], character=CommandCharacter(1), lang=CommandLang()):
|
||||
result = await get_voice_list(character[0], lang)
|
||||
await get_voice.finish(result)
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
from nonebot import on_command
|
||||
from nonebot.adapters.onebot.v11 import Message, MessageEvent, GroupMessageEvent
|
||||
from nonebot.params import Arg
|
||||
from nonebot.params import CommandArg
|
||||
from nonebot.plugin import PluginMetadata
|
||||
|
||||
from LittlePaimon.utils import logger
|
||||
@ -42,9 +42,9 @@ abyss_team = on_command('深渊配队', aliases={'配队推荐', '深渊阵容'}
|
||||
|
||||
|
||||
@sy.handle()
|
||||
async def _(event: MessageEvent, players=CommandPlayer(), msg: str = Arg('msg')):
|
||||
async def _(event: MessageEvent, players=CommandPlayer(), msg: Message = CommandArg()):
|
||||
logger.info('原神深渊战报', '开始执行')
|
||||
abyss_index = 2 if any(i in msg for i in ['上', 'last']) else 1
|
||||
abyss_index = 2 if any(i in msg.extract_plain_text() for i in ['上', 'last']) else 1
|
||||
msg = Message()
|
||||
for player in players:
|
||||
logger.info('原神深渊战报', '➤ ', {'用户': players[0].user_id, 'UID': players[0].uid})
|
||||
|
@ -2,8 +2,8 @@ from typing import Union
|
||||
|
||||
from nonebot import on_command
|
||||
from nonebot.adapters.onebot.v11 import Message, MessageEvent, GroupMessageEvent, PrivateMessageEvent
|
||||
from nonebot.params import Arg
|
||||
from nonebot.plugin import PluginMetadata
|
||||
from nonebot.typing import T_State
|
||||
|
||||
from LittlePaimon.database.models import DailyNoteSub
|
||||
from LittlePaimon.utils import logger
|
||||
@ -39,8 +39,8 @@ ssbq_sub = on_command('ssbq提醒', aliases={'实时便笺提醒', '实时便签
|
||||
|
||||
|
||||
@ssbq.handle()
|
||||
async def _(event: MessageEvent, players=CommandPlayer(), msg: str = Arg('msg')):
|
||||
if msg:
|
||||
async def _(event: MessageEvent, state: T_State, players=CommandPlayer()):
|
||||
if state.get('clear_msg'):
|
||||
await ssbq.finish('开启提醒请用[ssbq提醒开启|关闭 提醒内容+数量]指令,比如[ssbq提醒开启树脂150]')
|
||||
logger.info('原神实时便签', '开始执行查询')
|
||||
result = Message()
|
||||
|
@ -1,7 +1,7 @@
|
||||
from nonebot import on_command
|
||||
from nonebot.adapters.onebot.v11 import Message, MessageEvent, MessageSegment
|
||||
from nonebot.adapters.onebot.v11.helpers import HandleCancellation
|
||||
from nonebot.params import Arg, ArgPlainText, CommandArg
|
||||
from nonebot.params import ArgPlainText, CommandArg
|
||||
from nonebot.plugin import PluginMetadata
|
||||
from nonebot.typing import T_State
|
||||
|
||||
@ -208,7 +208,8 @@ running_udi = []
|
||||
|
||||
|
||||
@update_info.handle()
|
||||
async def _(event: MessageEvent, uid=CommandUID(), msg: str = Arg('msg')):
|
||||
async def _(event: MessageEvent, state: T_State, uid=CommandUID()):
|
||||
msg = state['clear_msg']
|
||||
if not freq_limiter.check(f'udi{uid}'):
|
||||
await update_info.finish(f'UID{uid}: 更新信息冷却剩余{freq_limiter.left(f"udi{uid}")}秒\n', at_sender=True)
|
||||
elif f'{event.user_id}-{uid}' in running_udi:
|
||||
|
@ -2,9 +2,9 @@ import datetime
|
||||
import re
|
||||
|
||||
from nonebot import on_command
|
||||
from nonebot.params import Arg
|
||||
from nonebot.adapters.onebot.v11 import Message, MessageEvent
|
||||
from nonebot.plugin import PluginMetadata
|
||||
from nonebot.typing import T_State
|
||||
|
||||
from LittlePaimon.utils.message import CommandPlayer
|
||||
from .handler import handle_myzj
|
||||
@ -29,7 +29,8 @@ myzj = on_command('myzj', aliases={'札记信息', '每月札记'}, priority=10,
|
||||
|
||||
|
||||
@myzj.handle()
|
||||
async def myzj_handler(event: MessageEvent, players=CommandPlayer(), msg: str = Arg('msg')):
|
||||
async def myzj_handler(event: MessageEvent, state: T_State, players=CommandPlayer()):
|
||||
msg = state['clear_msg']
|
||||
month_now = datetime.datetime.now().month
|
||||
if month_now == 1:
|
||||
month_list = ['11', '12', '1']
|
||||
|
@ -118,8 +118,6 @@ def CommandPlayer(limit: int = 3, only_cn: bool = True) -> List[Player]:
|
||||
info += f'{u}尚未提供uid\n'
|
||||
if info:
|
||||
await matcher.finish(info, at_sender=True)
|
||||
else:
|
||||
state['main_user'] = users[0]
|
||||
else:
|
||||
user = users[0]
|
||||
uids: List[str] = []
|
||||
@ -132,13 +130,12 @@ def CommandPlayer(limit: int = 3, only_cn: bool = True) -> List[Player]:
|
||||
extra_info = replace_all(extra_info, uids)
|
||||
for uid in uids:
|
||||
query_list.append(Player(user_id=user, uid=uid))
|
||||
state['main_user'] = str(event.user_id)
|
||||
|
||||
if len(query_list) > limit:
|
||||
query_list = query_list[:limit]
|
||||
if only_cn:
|
||||
query_list = [q for q in query_list if q.uid.startswith(('1', '2', '5'))]
|
||||
state['msg'] = extra_info.strip()
|
||||
state['clear_msg'] = extra_info.strip()
|
||||
return query_list
|
||||
|
||||
return Depends(_player)
|
||||
@ -161,31 +158,35 @@ def CommandUID(only_cn: bool = True) -> str:
|
||||
uid = uid
|
||||
else:
|
||||
await matcher.finish('第一次查询请把UID给我哦')
|
||||
state['msg'] = event.message.extract_plain_text().replace(uid, '')
|
||||
state['clear_msg'] = event.message.extract_plain_text().replace(uid, '')
|
||||
return uid
|
||||
|
||||
return Depends(_uid)
|
||||
|
||||
|
||||
def CommandCharacter(limit: int = 3, replace_uid: bool = True) -> List[str]:
|
||||
def CommandCharacter(limit: int = 3) -> List[str]:
|
||||
"""
|
||||
从命令中提取出原神的角色,需配合CommandUID使用
|
||||
:param limit: 限制个数
|
||||
:param replace_uid: 是否先移除msg中的uid
|
||||
:return: 角色名列表
|
||||
"""
|
||||
|
||||
async def _character(matcher: Matcher, state: T_State, event: MessageEvent):
|
||||
msg = state['_prefix']['command_arg'].extract_plain_text().strip() if not replace_uid else state['msg']
|
||||
user_id = state.get('main_user', str(event.user_id))
|
||||
if not msg:
|
||||
async def _character(matcher: Matcher, state: T_State, event: MessageEvent, msg: Message = CommandArg()):
|
||||
# 获取艾特列表的第一个人或是事件触发者的qq
|
||||
user_id = users[0] if (users := [str(seg.data['qq']) for seg in msg['at']]) else str(event.user_id)
|
||||
# 去除消息中的uid
|
||||
msg = re.sub(r'[125]\d{8}', '', msg.extract_plain_text())
|
||||
# 没有消息的话,就随机选择一个角色
|
||||
if not (msg := msg.strip()):
|
||||
return [random.choice(CHARACTERS)]
|
||||
character_list = []
|
||||
characters = msg.split(' ')
|
||||
for character_name in characters:
|
||||
# 按空格分割消息
|
||||
for character_name in msg.split(' '):
|
||||
# 如果有设置别名
|
||||
if character_match := await PlayerAlias.get_or_none(user_id=user_id, alias=character_name):
|
||||
character_list.append(character_match.character)
|
||||
msg.replace(character_name, '')
|
||||
# 如果在预设别名列表
|
||||
elif character_name in ['老婆', '老公', '女儿', '儿子', '爸爸', '妈妈']:
|
||||
if character_name == '老公':
|
||||
character_list.append(random.choice(MALE_CHARACTERS + BOY_CHARACTERS))
|
||||
@ -200,12 +201,13 @@ def CommandCharacter(limit: int = 3, replace_uid: bool = True) -> List[str]:
|
||||
elif character_name == '妈妈':
|
||||
character_list.append(random.choice(FEMALE_CHARACTERS))
|
||||
msg.replace(character_name, '')
|
||||
# 如果有匹配别名
|
||||
elif character_match := get_match_alias(character_name, '角色', True):
|
||||
character_list.append(list(character_match.keys())[0])
|
||||
msg.replace(character_name, '')
|
||||
# 没有匹配到角色时,结束事件
|
||||
if not character_list:
|
||||
await matcher.finish(f'没有名为{msg}的角色!')
|
||||
state['msg'] = msg
|
||||
if len(character_list) > limit:
|
||||
character_list = character_list[:limit]
|
||||
return character_list
|
||||
|
Loading…
x
Reference in New Issue
Block a user