Exemplo n.º 1
0
    def deco(func) -> Callable:
        @wraps(func)
        async def wrapper(session: NoticeSession):
            funcname = func.__module__ + '.' + func.__name__
            try:
                await func(session, bot)
                if use_default_infolog:
                    logger.info(
                        f'<Notice> Call function: {funcname}, notice information: {session.event}'
                    )
            except Warning as w:
                logger.warning(
                    f'<Notice> Warning {type(w)} occured while {funcname} is running.'
                )
            except ApiNotAvailable as a:
                logger.error(
                    f'<Notice> Error {type(a)} occured while {funcname} is running.'
                )
            except ActionFailed as a:
                logger.error(
                    f'<Notice> Error {type(a)} occured while {funcname} is running, retcode = {a.retcode}.'
                )
            except Exception as e:
                logger.exception(
                    f'<Notice> Error {type(e)} occured while {funcname} is running.'
                )

        return nonebot.on_notice(*event)(debuglog(logger)(wrapper))
Exemplo n.º 2
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_notice(*events)(wrapper)
Exemplo n.º 3
0
async def refresh_bot_role(bot: Bot, event: Event) -> None:
    """ 更新机器人在群内的身份 """
    group_list = await bot.get_group_list()
    for group in group_list:
        member_info = await bot.get_group_member_info(
            group_id=group['group_id'], user_id=bot.self_id
        )
        _bot_role[group['group_id']] = member_info['role']


def group_admin(bot: Bot, event: Event, state: dict) -> bool:
    """ 群管理员变动 """
    if event.detail_type == 'group_admin':
        return True
    return False


admin_notice = on_notice(rule=group_admin)


@admin_notice.handle()
async def _(bot: Bot, event: Event, state: dict):
    if bot.self_id == event.self_id and event.group_id:
        if event.sub_type == 'set':
            _bot_role[event.group_id] = 'admin'
        elif event.sub_type == 'unset':
            _bot_role[event.group_id] = 'member'


#endregion
Exemplo n.º 4
0
    await help.send(
        Message([{
            "type": "image",
            "data": {
                "file":
                f"base64://{str(image_to_base64(text_to_image(help_str)), encoding='utf-8')}"
            }
        }]))


async def _group_poke(bot: Bot, event: Event, state: dict) -> bool:
    value = (event.notice_type == "notify" and event.sub_type == "poke"
             and event.target_id == int(bot.self_id))
    return value


poke = on_notice(rule=_group_poke, priority=10, block=True)


@poke.handle()
async def _(bot: Bot, event: Event, state: T_State):
    if event.__getattribute__('group_id') is None:
        event.__delattr__('group_id')
    await poke.send(
        Message([{
            "type": "poke",
            "data": {
                "qq": f"{event.sender_id}"
            }
        }]))
Exemplo n.º 5
0
from nonebot import on_notice
from .data_source import Increase, Decrease,\
    Bot, GroupIncreaseNoticeEvent, GroupDecreaseNoticeEvent

group_notice = on_notice()


async def reply(notice):
    msg = await notice.reply()
    await group_notice.finish(msg)


@group_notice.handle()
async def group_increase_handle(bot: Bot, event: GroupIncreaseNoticeEvent):
    await reply(Increase(bot, event))


@group_notice.handle()
async def group_decrease_handle(bot: Bot, event: GroupDecreaseNoticeEvent):
    await reply(Decrease(bot, event))



Exemplo n.º 6
0
            notifier: Bot = choice(ol_bots)
            try:
                for su in SUPERUSERS:
                    await notifier.send_private_msg(
                        user_id=su,
                        message=f' {bot.self_id}disconnected at {dc_time}')
                break
            except BaseException as err:
                logger.error(
                    f'Bot {notifier.self_id} failed to send offline notification: {err}'
                )
                ol_bots.remove(notifier)
        else:
            logger.error(f'All bots failed to send notification!')

    else:
        logger.critical('There is no bot can send notification!')


# 被踢提醒
kicked = on_notice(
    rule=comman_rule(GroupDecreaseNoticeEvent, sub_type="kick_me"))


@kicked.handle()
async def kicked_remind(bot: Bot, event: GroupDecreaseNoticeEvent):
    msg = f'被 {event.operator_id} 踢出群 {event.group_id}'
    logger.info(msg)
    for su in SUPERUSERS:
        await bot.send_private_msg(user_id=su, message=msg)
Exemplo n.º 7
0
from random import choice

from nonebot import on_notice, on_message
from nonebot.adapters.onebot.v11.bot import Bot
from nonebot.adapters.onebot.v11.message import Message
from nonebot.adapters.onebot.v11.event import GroupMessageEvent, FriendRecallNoticeEvent, PokeNotifyEvent, GroupRecallNoticeEvent
from nonebot.rule import to_me

import src.plugins as cfg

poke = on_notice(rule=to_me())
recall = on_notice(priority=10)
flashimg = on_message(priority=10)


# 群聊撤回
@recall.handle()
async def _(bot: Bot, event: GroupRecallNoticeEvent):
    switch_map = cfg.check_switcher(event.group_id, '防撤回')
    if len(switch_map) == 0:
        return
    mid = event.message_id
    msg = await bot.get_msg(message_id=mid)
    if event.user_id != event.self_id and ',type=flash' not in msg['message']:
        re = '刚刚说了:\n' + msg['message']
        await recall.finish(message=Message(re), at_sender=True)


# 私聊撤回
@recall.handle()
async def _(bot: Bot, event: FriendRecallNoticeEvent):
Exemplo n.º 8
0
    msg_images = [i for i in event.message if i.type == 'image']
    if not msg_images:
        await say.finish('🤔 需要上传一张图片哦。')
        return
    image_origin_url = msg_images[0]['data']['url']
    image_token = await imghosting.upload_image_from_url(image_origin_url)
    content = ImageMessageContent(image=image_token)
    message = await message_ctl.create_message(episode, character,
                                               MessageType.IMAGE, content,
                                               is_gm)
    internal_message_id = event.message_id
    base.message_cache[internal_message_id] = message.id


rollback = on_notice(lambda b, e, d: e.notice_type == 'group_recall')


@rollback.handle()
async def _(bot: Bot, event: GroupRecallNoticeEvent, state: dict):
    room_external_id = str(event.group_id)
    room = await room_ctl.get_room_by_external(ExternalType.QQ,
                                               room_external_id)
    if not room:
        return
    episode = await episode_ctl.get_room_running_episode(room)
    if not episode:
        return
    internal_id = event.message_id
    if internal_id not in base.message_cache:
        return
Exemplo n.º 9
0
    else:
        return "private_" + str(event.get_user_id())


@dynmap.handle()
async def _(args: Namespace = ShellCommandArgs(),
            user_id: str = Depends(get_id)):
    args.matcher = dynmap
    args.user_id = user_id

    if hasattr(args, "func"):
        await args.func(**vars(args))


async def _poke_status(event: Event) -> bool:
    if isinstance(event, PokeNotifyEvent) and event.is_tome():
        user_id = get_id(event)
        dynmap_list = get_dynmap_list()
        if user_id in dynmap_list:
            if dynmap_list[user_id]["poke"]:
                return True
    return False


poke_status = on_notice(Rule(_poke_status), priority=15, block=False)


@poke_status.handle()
async def _(event: Event, user_id: str = Depends(get_id)):
    await status(poke_status, user_id)
Exemplo n.º 10
0
async def handle_group_invite(bot: Bot, event: GroupRequestEvent,
                              state: T_State):
    user_id = event.user_id
    group_id = event.group_id
    sub_type = event.sub_type
    detail_type = event.request_type
    if detail_type == 'group' and sub_type == 'invite':
        await bot.call_api('set_group_add_request',
                           flag=event.flag,
                           sub_type='invite',
                           approve=True)
        logger.info(f'已处理群组请求, 被用户: {user_id} 邀请加入群组: {group_id}.')


# 注册事件响应器, 新增群成员
group_increase = on_notice(priority=100)


@group_increase.handle()
async def handle_group_increase(bot: Bot, event: GroupIncreaseNoticeEvent,
                                state: T_State):
    user_id = event.user_id
    group_id = event.group_id
    detail_type = event.notice_type
    if detail_type == 'group_increase' and DBGroup(
            group_id=group_id).permission_command().result == 1:
        # 发送欢迎消息
        at_seg = MessageSegment.at(user_id=user_id)
        msg = f'{at_seg}欢迎新朋友~\n进群请先看群公告~\n一起愉快地聊天吧!'
        await bot.send(event=event, message=Message(msg))
        logger.info(f'群组: {group_id}, 有新用户: {user_id} 进群')
Exemplo n.º 11
0
from nonebot import on_notice
from nonebot.adapters import Bot
from nonebot.adapters.cqhttp import unescape
from nonebot.adapters.cqhttp.event import (
    FriendRecallNoticeEvent,
    GroupRecallNoticeEvent
)


# 私聊防撤回
friend_recall = on_notice()

@friend_recall.handle()
async def handle_friend_recall(bot: Bot, event: FriendRecallNoticeEvent):
    user_id = event.get_user_id()

    # 仅用于自己测试
    if user_id == 593457446:
        msg_id = event.message_id
        msg = await bot.get_msg(message_id=msg_id)
        msg = unescape(msg["raw_message"])
        await bot.send_private_msg(user_id=user_id, message=f"撤回了一条消息:\n{msg}")


test_group_list = [595741581, 873459758]

# 群消息防撤回
group_recall = on_notice()

@group_recall.handle()
async def handle_group_recall(bot: Bot, event: GroupRecallNoticeEvent):
Exemplo n.º 12
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=user_name,
                      raw_data=raw_data,
                      msg_data=msg_data)
    except Exception as e:
        logger.error(f'Message history recording Failed, error: {repr(e)}')


# 注册事件响应器, 处理NoticeEvent
notice_history = on_notice(priority=101, block=True)


@notice_history.handle()
async def handle_notice(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,
Exemplo n.º 13
0
from nonebot import on_notice
from nonebot.rule import Rule
from nonebot.adapters.cqhttp import Bot, Event, GroupRecallNoticeEvent, FriendRecallNoticeEvent, Message
from nonebot.typing import T_State, Union
from nonebot.log import logger
from typing import Dict, Any


async def recall_checker(bot: Bot, event: Event, state: T_State) -> bool:
    return isinstance(event, GroupRecallNoticeEvent) or isinstance(
        event, FriendRecallNoticeEvent)


anti_recall = on_notice(rule=Rule(recall_checker), priority=10)


@anti_recall.handle()
async def handle_anti_recall(bot: Bot, event: Union[GroupRecallNoticeEvent,
                                                    FriendRecallNoticeEvent],
                             state: T_State):
    message_detail = await bot.get_msg(message_id=event.message_id)

    user_info = await get_user_info(message_detail, bot)
    user_text = ' '.join(user_info + ['撤回了:\n'])

    user_segment = {"type": "text", 'data': {'text': user_text}}
    message_segment = message_detail['message']

    logger.info(f'recall message detail: {message_segment}')

    for superuser in bot.config.superusers:
Exemplo n.º 14
0
import os
import json
import base64
import httpx
from PIL import Image
from io import BytesIO
from nonebot import on_message, on_notice
from nonebot.adapters.cqhttp.message import MessageSegment
from nonebot.adapters.cqhttp import Bot, utils, MessageEvent, NoticeEvent

proxies = {"all://": "http://127.0.0.1:7890"}
pictureMessage = on_message(priority=2, block=True)
pictureNotice = on_notice(priority=3, block=True)
inputPath = os.path.dirname(__file__) + '/resource/original.png'
resolutionPath = os.path.dirname(__file__) + '/resource'
outputPath = resolutionPath + '/original_out.png'
imagePath = 'file:///' + outputPath
realersganPath = os.path.dirname(
    __file__) + '/realesrgan/inference_realesrgan.py'
modelPath = os.path.dirname(
    __file__
) + '/realesrgan/experiments/pretrained_models/RealESRGAN_x4plus_anime_6B.pth'
exception = '图片过大,御坂网络无法传输。\n御坂如此遗憾地说道。'


def writePicture(dir, data):
    file = open(dir, 'wb')
    file.write(data)
    file.close

Exemplo n.º 15
0
from nonebot import on_notice
from nonebot.adapters.cqhttp.bot import Bot
from nonebot.adapters.cqhttp.event import GroupBanNoticeEvent

ban_req = on_notice()


@ban_req.handle()
async def group_ban(bot: Bot, event: GroupBanNoticeEvent):
    '''
    群禁言
    '''
    if (event.sub_type) == "ban":
        pass
    if (event.sub_type) == "lift_ban":
        pass
Exemplo n.º 16
0
from pathlib import Path
from nonebot import on_notice
from nonebot.rule import Rule
from nonebot.adapters.onebot.v11 import MessageSegment, Bot, GroupIncreaseNoticeEvent

dir_path = Path(__file__).parent
welcome_path = dir_path / "resources" / "welcome.jpg"


async def welcome_rule(bot: Bot, event: GroupIncreaseNoticeEvent) -> bool:
    return event.user_id != bot.self_id


welcome = on_notice(rule=Rule(welcome_rule), priority=10)


@welcome.handle()
async def _():
    await welcome.finish(MessageSegment.image(welcome_path.read_bytes()))
Exemplo n.º 17
0
检测群内上传文件并自动锤轴

**AuthNode**
basic

**Usage**
配置AuthNode启用'''

# 声明本插件可配置的权限节点
__plugin_auth_node__ = ['basic']

# Init plugin export
init_export(export(), __plugin_name__, __plugin_usage__, __plugin_auth_node__)

zhouShenHime = on_notice(rule=has_auth_node(__plugin_raw_name__, 'basic'),
                         priority=100,
                         block=False)


@zhouShenHime.handle()
async def hime_handle(bot: Bot, event: GroupUploadNoticeEvent, state: T_State):
    file_name = event.file.name
    file_url = event.file.dict().get('url')
    user_id = event.user_id

    # 不响应自己上传的文件
    if int(event.user_id) == int(bot.self_id):
        await zhouShenHime.finish()

    if file_name.split('.')[-1] not in ['ass', 'ASS']:
        await zhouShenHime.finish()
Exemplo n.º 18
0
    save(universal_id, 'current_combo', (combo + 1) * (not can_mutate))
    return mutate_msg(final, mutate=can_mutate)


praise = on_command(cmd='praise', aliases={'膜'}, rule=check('exclaim'))

admire = on_command(cmd='admire', aliases={'狂膜'}, rule=check('exclaim'))

cheer = on_command(cmd='cheer', aliases={'加油 '}, rule=check('exclaim'))

cheer_ending = on_endswith(msg='加油', priority=10, rule=check('exclaim'))

greet = on_simple_command(cmd='greet', aliases={'小鱼'}, rule=check('exclaim'))

poke_greet = on_notice(priority=10,
                       block=True,
                       rule=check('exclaim', PokeNotifyEvent))

repeater = on_endswith(msg='', priority=11, block=True, rule=check('exclaim'))


@praise.handle()
async def show_praise(bot: Bot, event: Event, state: dict):
    """Praise the person."""
    person = str(event.message).strip()
    await bot.send(event=event, message=exclaim_msg(person, '1', True))


@admire.handle()
async def show_admire(bot: Bot, event: Event, state: dict):
    """Admire(Praise * 2) the person."""
Exemplo n.º 19
0
from nonebot import on_notice
from nonebot.adapters.cqhttp import Bot, Event, unescape
from Pbot.utils import getSetuHigh
from datetime import datetime
import Pbot.cq as cq

poke = on_notice()
helloNew = on_notice()


@poke.handle()
async def firsthandle(bot: Bot, event: Event, state: dict):
    if event.sub_type == "poke" and event.raw_event["target_id"] == 3418961367:
        r18 = False
        if event.group_id == 145029700:
            hour = datetime.today().hour
            r18 = hour <= 7 or hour >= 22
        if event.group_id == 1037557679:
            r18 = True
        x, err = await getSetuHigh(bot, r18)
        if x == None:
            await poke.finish(err)
        try:
            await poke.send(unescape(x))
        except:
            await poke.send("呀,发送失败辣,。,")


@helloNew.handle()
async def firsthandle(bot: Bot, event: Event, state: dict):
    if event.detail_type == "group_increase":
Exemplo n.º 20
0
from nonebot import on_notice, on_message
from nonebot.adapters.cqhttp import GroupRecallNoticeEvent, Bot, Message, FriendRecallNoticeEvent, PokeNotifyEvent, \
    MessageEvent
from nonebot.rule import to_me
from random import choice

poke = on_notice(rule=to_me())
recall = on_notice()
flashimg = on_message()


# 群聊
@recall.handle()
async def _(bot: Bot, event: GroupRecallNoticeEvent):
    mid = event.message_id
    meg = await bot.get_msg(message_id=mid)
    if event.user_id != event.self_id and 'type=flash,' not in meg['message']:
        re = '刚刚说了:' + meg['message'] + '\n不要以为派蒙没看见!'
        await recall.finish(message=Message(re), at_sender=True)


# 私聊
@recall.handle()
async def _(bot: Bot, event: FriendRecallNoticeEvent):
    mid = event.message_id
    meg = await bot.get_msg(message_id=mid)
    if event.user_id != event.self_id and 'type=flash,' not in meg['message']:
        re = '刚刚说了:' + meg['message'] + '\n不要以为派蒙没看见!'
        await recall.finish(message=Message(re))

Exemplo n.º 21
0
from nonebot import on_notice
from nonebot.adapters.cqhttp.bot import Bot
from nonebot.adapters.cqhttp.event import Event, PokeNotifyEvent
from nonebot.adapters.cqhttp.message import Message
import random
poke = on_notice()
a = [
    '那...那里...那里不能戳...绝对...', '嘤嘤嘤,好疼', '你再戳,我就把你的作案工具没收了,哼哼~', '别戳了别戳了,戳怀孕了',
    '戳🔨戳', '我错了我错了,别戳了', '桥豆麻袋,别戳老子', '再戳砍手', '手感怎么样', '戳够了吗?该学习了',
    '戳什么戳,没戳过吗', '你用左手戳的还是右手戳的?'
]


@poke.handle()
async def _(bot: Bot, event: Event):
    if isinstance(event, PokeNotifyEvent):
        if event.is_tome() and event.user_id != event.self_id:
            await bot.send(event=event,
                           message=a[random.randint(0,
                                                    len(a) - 1)])
    else:
        await poke.finish()
Exemplo n.º 22
0

# endregion
# region 机器人是否为管理员
_bot_role: dict[int, str] = {}


async def refresh_bot_role(bot: Bot) -> None:
    """更新机器人在群内的身份"""
    group_list = await bot.get_group_list()
    for group in group_list:
        member_info = await bot.get_group_member_info(
            group_id=group["group_id"], user_id=int(bot.self_id))
        _bot_role[group["group_id"]] = member_info["role"]


admin_notice = on_notice()


@admin_notice.handle()
async def admin_handle(bot: Bot, event: GroupAdminNoticeEvent):
    """群内管理员发生变化时,更新机器人在群内的身份"""
    if bot.self_id == str(event.self_id):
        if event.sub_type == "set":
            _bot_role[event.group_id] = "admin"
        elif event.sub_type == "unset":
            _bot_role[event.group_id] = "member"


# endregion
Exemplo n.º 23
0
from nonebot import on_notice
from nonebot.typing import T_State
from nonebot.adapters.cqhttp import Bot, Message, GroupDecreaseNoticeEvent, GroupIncreaseNoticeEvent

wel = on_notice()


@wel.handle()
async def _(bot: Bot, event: GroupIncreaseNoticeEvent, state: T_State):
    user = event.get_user_id()
    at_ = "[CQ:at,qq={}]".format(user)
    msg = at_ + '欢迎新进群的小伙伴,\来了就别走了哦'
    msg = Message(msg)
    await wel.finish(message=msg)


@wel.handle()
async def _(bot: Bot, event: GroupDecreaseNoticeEvent, state: T_State):
    user = event.get_user_id()
    at_ = "[CQ:at,qq={}]".format(user)
    msg = at_ + "\n" + '有一位朋友离我们而去了'
    msg = Message(msg)
    await wel.finish(message=msg)
Exemplo n.º 24
0
from nonebot import on_notice
from nonebot.adapters.cqhttp import Bot, GroupDecreaseNoticeEvent
from nonebot.typing import T_State

from ..database import DB

group_decrease = on_notice(priority=5)


@group_decrease.handle()
async def _(bot: Bot, event: GroupDecreaseNoticeEvent, state: T_State):
    """退群时,自动删除该群订阅列表"""

    if event.self_id == event.user_id:
        async with DB() as db:
            await db.delete_sub_list('group', event.group_id)
Exemplo n.º 25
0
import random

from nonebot import on_notice
from nonebot.adapters.cqhttp import Bot, Event, GroupDecreaseNoticeEvent, GroupIncreaseNoticeEvent, \
    FriendAddNoticeEvent, PokeNotifyEvent, LuckyKingNotifyEvent, HonorNotifyEvent, Message
from nonebot.rule import to_me
from nonebot.typing import T_State

from .data_source import get_nickname

LuckyKing = on_notice()
"""群红包运气王提醒事件"""


@LuckyKing.handle()
async def handle_first_receive(bot: Bot, event: LuckyKingNotifyEvent, state: T_State):
    rely = f'[CQ:at,qq={event.target_id}]是运气王!\n\t来自{event.user_id}的红包'
    await bot.send(event=event, message=rely)


poke = on_notice(rule=to_me())
"""戳一戳提醒事件"""


@poke.handle()
async def handle_first_receive(bot: Bot, event: PokeNotifyEvent, state: T_State):
    expr_poke = [
        f'[CQ:poke,qq={event.get_user_id()}]',
        '那里不可以!(>﹏<)',
        '再戳就要坏了!',
        '我在!',
Exemplo n.º 26
0
from nonebot import on_notice, on_message
from nonebot.adapters.cqhttp import GroupRecallNoticeEvent, Bot, Message, FriendRecallNoticeEvent, PokeNotifyEvent, \
    MessageEvent
from nonebot.rule import to_me
from random import choice

poke = on_notice(rule=to_me())
# recall = on_notice()
# flashimg = on_message()

# # 群聊
# @recall.handle()
# async def _(bot: Bot, event: GroupRecallNoticeEvent):
#     mid = event.message_id
#     meg = await bot.get_msg(message_id=mid)
#     if event.user_id != event.self_id and 'type=flash,' not in meg['message']:
#         re = '刚刚说了:' + meg['message'] + '\n不要以为派蒙没看见!'
#         await recall.finish(message=Message(re), at_sender=True)

# 私聊
# @recall.handle()
# async def _(bot: Bot, event: FriendRecallNoticeEvent):
#
#      mid = event.message_id
#      meg = await bot.get_msg(message_id=mid)
#      if event.user_id != event.self_id and 'type=flash,' not in meg['message']:
#         re = '刚刚说了:' + meg['message'] + '\n不要以为派蒙没看见!'
#         await recall.finish(message=Message(re))


@poke.handle()
Exemplo n.º 27
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,然后和我一起玩叭',
    )
Exemplo n.º 28
0
    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',
                                 aliases={'更新群成员'},
                                 rule=check('group') & check('supercmd'))

Exemplo n.º 29
0
from nonebot.rule import to_me
from nonebot.typing import T_State
from nonebot.adapters import Bot, Event
from nonebot.adapters.cqhttp import Message,MessageSegment,GroupIncreaseNoticeEvent

from .data_source import get_words,IsAdded,IsDel

# 默认配置
global_config = nonebot.get_driver().config
plugin_config = Config(**global_config.dict())

# 响应命令
BDwords = on_command("BDwords", aliases=set(['*/爆点语录','*/BD语录','*/bd语录']), priority=2)
Addwords = on_regex("\*/add\n([\s\S]*)\n\*/end")
Delwords = on_command("*/del",priority=2)
welcom = on_notice()

@BDwords.handle()
async def handle_first_receive(bot: Bot, event: Event, state: T_State):
    words = await get_words()
    await BDwords.finish(Message(words))


@Addwords.handle()
async def handle_first_receive(bot: Bot,event: Event, state: T_State):
    words = re.findall("\*/add\n([\s\S]*)\n\*/end",str(event.get_message()))
    if IsAdded(words):
        await Addwords.finish(Message("语录追加成功,爆点世界重构中……"))
    else:
        await Addwords.finish(Message("追加失败了,吖屎啦!"))
Exemplo n.º 30
0
                                           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()


@group_request.handle()
async def handle_group_request(bot: Bot, event: GroupRequestEvent):