def deco(func): @wraps(func) async def wrapper(session): if not self.check_enabled(session.event.group_id): return return await func(session) return nonebot.on_request(*events)(wrapper)
def deco(func) -> Callable: @wraps(func) async def wrapper(session: RequestSession): funcname = func.__module__ + '.' + func.__name__ try: await func(session, bot) if use_default_infolog: logger.info( f'<Request> Call function: {funcname}, request information: {session.event}' ) except Warning as w: logger.warning( f'<Request> Warning {type(w)} occured while {funcname} is running.' ) except ApiNotAvailable as a: logger.error( f'<Request> Error {type(a)} occured while {funcname} is running.' ) except ActionFailed as a: logger.error( f'<Request> Error {type(a)} occured while {funcname} is running, retcode = {a.retcode}.' ) except Exception as e: logger.exception( f'<Request> Error {type(e)} occured while {funcname} is running.' ) return nonebot.on_request(*event)(debuglog(logger)(wrapper))
from nonebot import on_request from nonebot import on_notice from nonebot.adapters.cqhttp.bot import Bot from nonebot.adapters.cqhttp.event import FriendRequestEvent, FriendAddNoticeEvent add = on_request() @add.handle() async def add_(bot: Bot, event: FriendRequestEvent): await event.approve(bot) msgadd = on_notice() @msgadd.handle() async def sendmsg_(bot: Bot, event: FriendAddNoticeEvent): await bot.send( event=event, message='请输入help,然后和我一起玩叭', )
from nonebot import on_request from nonebot.adapters.cqhttp.bot import Bot from nonebot.adapters.cqhttp.event import GroupRequestEvent, FriendRequestEvent from nonebot.adapters.cqhttp.message import Message add_req = on_request() @add_req.handle() async def group_add(bot: Bot, event: GroupRequestEvent): ''' 入群申请 ''' if (event.sub_type) == "add": if str(event.comment) == 'ATRI -My Dear Moments-': await bot.set_group_add_request(flag=event.flag, sub_type='add', approve=True) elif (event.sub_type) == "invite": if event.user_id in bot.config.master: await bot.set_group_add_request(flag=event.flag, sub_type='invite', approve=True) else : await bot.set_group_add_request(flag=event.flag, sub_type='invite', approve=False) add_friend_req = on_request() @add_friend_req.handle() async def friend_add(bot: Bot, event: FriendRequestEvent): ''' 好友添加请求 ''' pass
from nonebot import on_request, logger from nonebot.adapters.cqhttp import Bot, Event from nonebot.permission import SUPERUSER from nonebot.typing import T_State from nonebot.adapters.cqhttp.permission import PRIVATE_FRIEND from nonebot.adapters.cqhttp.event import FriendRequestEvent, GroupRequestEvent, RequestEvent friend_req = on_request(priority=5) @friend_req.handle() async def add_superuser(bot: Bot, event: RequestEvent, state: T_State): if str(event.user_id ) in bot.config.superusers and event.request_type == 'private': await event.approve(bot) logger.info('add user {}'.format(event.user_id)) elif event.sub_type == 'invite' and str( event.user_id ) in bot.config.superusers and event.request_type == 'group': await event.approve(bot) logger.info('add group {}'.format(event.group_id))
from nonebot import on_request from nonebot.adapters.cqhttp import Bot, Event from nonebot.permission import SUPERUSER from nonebot.adapters.cqhttp.permission import PRIVATE_FRIEND friend_req = on_request(priority=5) @friend_req.handle() async def _(bot: Bot, event: Event, state: dict): if event.request_type == 'friend' and str( event.user_id) in bot.config.superusers: await bot.set_friend_add_request(flag=event.flag, approve=True) group_invite = on_request(priority=5) @group_invite.handle() async def _(bot: Bot, event: Event, state: dict): if event.request_type == 'group' and event.sub_type == 'invite' and str( event.user_id) in bot.config.superusers: await bot.set_group_add_request(flag=event.flag, sub_type='invite', approve=True)
from nonebot import on_request from nonebot.adapters.cqhttp import Event, FriendRequestEvent, GroupRequestEvent from nonebot.typing import T_State from nonebot.adapters import Bot friend_req = on_request() @friend_req.handle() async def friend_req(bot: Bot, event: FriendRequestEvent, state: T_State): await bot.call_api('set_friend_add_request', flag=event.flag, approve=True) group_req = on_request() @group_req.handle() async def group_req(bot: Bot, event: GroupRequestEvent, state: T_State): await bot.call_api('set_group_add_request', flag=event.flag, approve=True)
if user_id not in members: # update the user information from the remote server members[user_id] = {} members[user_id]['id'] = group_member_info['title'] members[user_id]['nickname'] = group_member_info['nickname'] members[user_id]['card'] = group_member_info['card'] for user_id in members: # generate locally stored information members[user_id].setdefault('42score', 0) members[user_id].setdefault('42score_daily', 0) # save the updated information to the database save(universal_id, 'members', members) user_validator = on_request(priority=10, block=True, rule=check('group', GroupRequestEvent) & check('info', GroupRequestEvent)) say_hello = on_notice(priority=10, block=True, rule=check('group', GroupIncreaseNoticeEvent)) say_goodbye = on_notice(priority=10, block=True, rule=check('group', GroupDecreaseNoticeEvent)) black_room = on_command(cmd='blackroom ', aliases={'进入小黑屋 '}, rule=check('group')) user_updater = on_simple_command(cmd='updateuser',
from nonebot import on_request, on_notice, logger from nonebot.typing import T_State from nonebot.adapters.cqhttp.bot import Bot from nonebot.adapters.cqhttp.message import MessageSegment, Message from nonebot.adapters.cqhttp.event import FriendRequestEvent, GroupRequestEvent, GroupIncreaseNoticeEvent from omega_miya.utils.Omega_Base import DBGroup # 注册事件响应器, 处理加好友申请 friend_request = on_request(priority=100) @friend_request.handle() async def handle_friend_request(bot: Bot, event: FriendRequestEvent, state: T_State): user_id = event.user_id detail_type = event.request_type comment = event.comment if detail_type == 'friend' and comment == 'Miya好萌好可爱': await bot.call_api('set_friend_add_request', flag=event.flag, approve=True) logger.info(f'已同意用户: {user_id} 的好友申请') elif detail_type == 'friend': await bot.call_api('set_friend_add_request', flag=event.flag, approve=False) logger.info(f'已拒绝用户: {user_id} 的好友申请') # 注册事件响应器, 处理被邀请进群 group_invite = on_request(priority=100)
new_event = DBHistory(time=time, self_id=self_id, post_type=post_type, detail_type=detail_type) new_event.add(sub_type=sub_type, group_id=group_id, user_id=user_id, user_name=None, raw_data=raw_data, msg_data=msg_data) except Exception as e: logger.error(f'Notice history recording Failed, error: {repr(e)}') # 注册事件响应器, 处理RequestEvent request_history = on_request(priority=101, block=True) @request_history.handle() async def handle_request(bot: Bot, event: Event, state: T_State): try: time = event.dict().get('time') self_id = event.dict().get('self_id') post_type = event.get_type() detail_type = event.dict().get(f'{event.get_type()}_type') sub_type = event.dict().get('sub_type') group_id = event.dict().get('group_id') user_id = event.dict().get('user_id') raw_data = repr(event) msg_data = str(event.dict().get('message')) new_event = DBHistory(time=time,
from nonebot import on_notice, on_request from nonebot.adapters import Bot from nonebot.adapters.cqhttp.event import (FriendRequestEvent, FriendAddNoticeEvent, GroupRequestEvent) welcome_msg = "ムラサメです!请到 purple4pur.com/murasame-chan 查看小丛雨的使用帮助哦!" # 加好友请求 friend_request = on_request() @friend_request.handle() async def handle_friend_request(bot: Bot, event: FriendRequestEvent): await event.approve(bot) # 新好友通知 friend_add = on_notice() @friend_add.handle() async def handle_friend_add(bot: Bot, event: FriendAddNoticeEvent): user_id = event.user_id await bot.send_private_msg(user_id=user_id, message=welcome_msg) await bot.send_private_msg(user_id=593457446, message=f"已添加新好友:{user_id}") # 加群邀请 group_request = on_notice()
import asyncio from nonebot import on_request from nonebot.adapters.onebot.v11 import Bot from nonebot.adapters.onebot.v11.event import FriendRequestEvent from nonebot.log import logger async def _friend_req(event: FriendRequestEvent) -> bool: logger.info(f"FriendRequestEvent: {event.user_id}") return True friend_req = on_request(_friend_req, priority=5) @friend_req.handle() async def _(bot: Bot, event: FriendRequestEvent): await asyncio.sleep(5) await event.approve(bot) await bot.send_private_msg( user_id=int(list(bot.config.superusers)[0]), message=f"{event.user_id} 请求添加好友,已自动通过", )