Пример #1
0
# Custom plugin usage text
__plugin_name__ = '求签'
__plugin_usage__ = r'''【求签】
求签, 求运势, 包括且不限于抽卡、吃饭、睡懒觉、DD
每个人每天求同一个东西的结果是一样的啦!
不要不信邪重新抽啦!

**Permission**
Command & Lv.10

**Usage**
/求签 [所求之事]
/DD老黄历'''

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

# 注册事件响应器
Maybe = CommandGroup('maybe', rule=has_command_permission() & permission_level(level=10),
                     permission=GROUP, priority=10, block=True)

luck = Maybe.command('luck', aliases={'求签'})


# 修改默认参数处理
@luck.args_parser
async def parse(bot: Bot, event: GroupMessageEvent, state: T_State):
    args = str(event.get_plaintext()).strip().lower().split()
    if not args:
        await luck.reject('你似乎没有发送有效的参数呢QAQ, 请重新发送:')
    state[state["_current_key"]] = args[0]
Пример #2
0
from pathlib import Path

import nonebot

from .data_source import user_cache_dir, user_config_dir, user_data_dir

BASE_CACHE_DIR = Path(user_cache_dir("nonebot2")).resolve()
BASE_CONFIG_DIR = Path(user_config_dir("nonebot2")).resolve()
BASE_DATA_DIR = Path(user_data_dir("nonebot2")).resolve()

export = nonebot.export()


@export
def get_cache_dir(plugin_name: str) -> str:
    return str(BASE_CACHE_DIR / plugin_name)


@export
def get_cache_file(plugin_name: str, filename: str) -> str:
    return str(BASE_CACHE_DIR / plugin_name / filename)


@export
def get_config_dir(plugin_name: str) -> str:
    return str(BASE_CONFIG_DIR / plugin_name)


@export
def get_config_file(plugin_name: str, filename: str) -> str:
    return str(BASE_CONFIG_DIR / plugin_name / filename)
Пример #3
0
**SuperUser Only**
/图库统计
/导入图库'''

# 声明本插件可配置的权限节点
__plugin_auth_node__ = [PluginCoolDown.skip_auth_node, 'setu', 'moepic']

# 声明本插件的冷却时间配置
__plugin_cool_down__ = [
    PluginCoolDown(__plugin_raw_name__, 'user', 10),
    PluginCoolDown(__plugin_raw_name__, 'group', 2)
]

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

# 注册事件响应器
setu = on_command('来点涩图',
                  rule=has_command_permission()
                  & has_level_or_node(50, __plugin_raw_name__, 'setu'),
                  permission=GROUP,
                  priority=20,
                  block=True)


@setu.handle()
async def handle_first_receive(bot: Bot, event: GroupMessageEvent,
                               state: T_State):
    args = set(str(event.get_plaintext()).strip().split())
Пример #4
0
**Usage**
/抽卡 [卡组]'''

# 声明本插件可配置的权限节点
__plugin_auth_node__ = [
    PluginCoolDown.skip_auth_node
]

# 声明本插件的冷却时间配置
__plugin_cool_down__ = [
    PluginCoolDown(__plugin_raw_name__, 'user', 1)
]

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

# 注册事件响应器
Draw = CommandGroup('draw', rule=has_command_permission() & permission_level(level=10),
                    permission=GROUP, priority=10, block=True)

deck = Draw.command('deck', aliases={'抽卡'})


# 修改默认参数处理
@deck.args_parser
async def parse(bot: Bot, event: GroupMessageEvent, state: T_State):
    args = str(event.get_plaintext()).strip().lower().split()
    if not args:
        await deck.reject('你似乎没有发送有效的参数呢QAQ, 请重新发送:')
    state[state["_current_key"]] = args[0]
Пример #5
0
"""
Nonebot 2 Dice Plugin
Author: XZhouQD
Since: 16 May 2021
"""
from pathlib import Path
import nonebot
from .handler import dice

# store all subplugins
_sub_plugins = set()
# load sub plugins
_sub_plugins |= nonebot.load_plugins(
    str((Path(__file__).parent / "plugins").resolve()))

default_start = list(nonebot.get_driver().config.command_start)[0]
__usage__ = f'掷x个y面骰,为每个骰子增加附加值a,增加总和附加值b,使用{default_start}roll xdy+aSb'

__help_version__ = '0.1.0'

__help_plugin_name__ = "XZhouQD's Dice"

nonebot.export().roll = dice
Пример #6
0
import logging

from nonebot import get_driver, export
from nonebot.log import logger, LoguruHandler
from apscheduler.schedulers.asyncio import AsyncIOScheduler

from .config import Config

driver = get_driver()
global_config = driver.config
plugin_config = Config(**global_config.dict())

scheduler = AsyncIOScheduler()
export().scheduler = scheduler


async def _start_scheduler():
    if not scheduler.running:
        scheduler.configure(plugin_config.apscheduler_config)
        scheduler.start()
        logger.opt(colors=True).info("<y>Scheduler Started</y>")


if plugin_config.apscheduler_autostart:
    driver.on_startup(_start_scheduler)

aps_logger = logging.getLogger("apscheduler")
aps_logger.setLevel(plugin_config.apscheduler_log_level)
aps_logger.handlers.clear()
aps_logger.addHandler(LoguruHandler())
Пример #7
0
from nonebot import export
from nonebot import get_driver
from nonebot.adapters.cqhttp import Bot, Event, GroupMessageEvent
from nonebot.rule import T_State
from .config import Config


global_config = get_driver().config
config = Config(**global_config.dict())
export = export()


async def separate_trigger(bot: Bot, event: Event, state: T_State):
    """
    群里事件与私人事件分离
    并且群与群之间分离
    """
    if "event" not in state:
        state["event"] = event
    else:
        if state["event"] is not event:
            return False
    if isinstance(event, GroupMessageEvent):
        if "group_id" not in state:
            state["group_id"] = event.group_id
        return state["group_id"] == event.group_id
    return True

export.separate_trigger = separate_trigger

Пример #8
0
"""风格化字符串管理"""
import nonebot
from nonebot import export

from . import config as conf
from .styledstr import Styledstr


driver = nonebot.get_driver()
config = conf.Config(**driver.config.dict())

# 导出解析器对象
export().parser = Styledstr(config)
Пример #9
0
from pathlib import Path
import json

from .Service import *
from nonebot import export, get_driver, on_command
from nonebot.rule import to_me
from nonebot.log import logger
from nonebot.typing import T_State
from nonebot.adapters.cqhttp import Bot, Event

# Initialization
driver = get_driver()
export().Service = Service

plugins = list()
cfg = Path(__file__).parent / '_services' / 'gcfg.json'


def _init():
    if Path.is_file(cfg):
        Path.unlink(cfg)


async def _get_plugins():
    if not Path.is_file(cfg):
        return
    with open(cfg, 'r', encoding='UTF-8') as f:
        global plugins
        try:
            plugins = list(json.load(f).get('plugins'))
            logger.info('成功添加%d个插件于分群管理' % len(plugins))
Пример #10
0
"""冷却事件插件"""
from nonebot import export

from . import cooldown, rule

export().cooldown = cooldown
export().rule = rule