Пример #1
0
 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)
Пример #2
0
    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))
Пример #3
0
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,然后和我一起玩叭',
    )
Пример #4
0
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
Пример #5
0
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))
Пример #6
0
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)
Пример #7
0
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)
Пример #8
0
        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',
Пример #9
0
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)
Пример #10
0
        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,
Пример #11
0
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()
Пример #12
0
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} 请求添加好友,已自动通过",
    )