Exemplo n.º 1
0
from nonebot.typing import T_State

from .config import Config
from .platform import check_sub_target, platform_manager
from .scheduler import *
from .types import Target
from .utils import parse_text

common_platform = [
    p.platform_name for p in filter(
        lambda platform: platform.enabled and platform.is_common,
        platform_manager.values(),
    )
]

sub = CommandGroup("sub")

# region 添加订阅
add_sub_cmd = sub.command("add",
                          aliases={"添加订阅"},
                          permission=GROUP_ADMIN | GROUP_OWNER | SUPERUSER)
add_sub_cmd.__doc__ = """
订阅

仅允许群主与管理员操作
/添加订阅
"""


@add_sub_cmd.handle()
async def init_promote(event: GroupMessageEvent, state: T_State):
Exemplo n.º 2
0
说明:

当bot加入新群组时, 请管理员【首先】使用"/更新群组信息"命令为bot录入当前群组信息
之后使用"/设置群组权限"为当前群组配置命令权限
仅允许本群组接收bot推送通知, 请配置"/设置群组权限 通知"
仅允许本群组使用bot命令, 请配置"/设置群组权限 命令"
同时允许本群组使用命令与接收bot推送通知, 请配置"/设置群组权限 通知 命令"
取消本群组所有权限请使用"/重置群组权限"

若需要使用"技能""请假"命令组
请管理员在更新群组信息之后【依次】执行"/更新用户信息""/更新群组成员列表"
并在新成员加入后同样执行上述命令
'''

manage = CommandGroup('Manage')


@manage.command('refresh_member',
                aliases=('刷新用户信息', '更新用户信息'),
                only_to_me=False,
                permission=permission.SUPERUSER | permission.GROUP_ADMIN)
async def refresh_member(session: CommandSession):
    try:
        __group_user_list = await session.bot.get_group_member_list(
            group_id=session.event.group_id)
    except Exception as e:
        log.logger.warning(
            f'{__name__}: 用户{session.event.user_id} 使用命令refresh_member时发生错误: {e}, 该命令需要在群组中使用'
        )
        session.finish('请在群组内使用该命令!')
Exemplo n.º 3
0
求签, 求运势, 包括且不限于抽卡、吃饭、睡懒觉、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]
    if state[state["_current_key"]] == '取消':
        await luck.finish('操作已取消')

Exemplo n.º 4
0
from app.libs.cache import cache


@on_command("get_configs", aliases=["设置"], permission=perm.SUPERUSER)
async def get_config(session: CommandSession):
    await session.send(f"{pprint.pformat(get_bot().config.__dict__, indent=2)}")


@on_command("get_commands", aliases=["命令"], permission=perm.SUPERUSER)
async def get_command(session: CommandSession):
    await session.send(f"{pprint.pformat(CommandManager._commands, indent=2)}")
    await session.send(f"{pprint.pformat(CommandManager._aliases, indent=2)}")


cc = CommandGroup("cache", permission=perm.SUPERUSER)


@cc.command("set")
async def _(session: CommandSession):
    data = session.current_arg
    try:
        key, value = data.split()
        key = key.strip()
        value = value.strip()
        await cache.set(key, value)
    except Exception:
        await session.send("输入有误")


@cc.command("get")
Exemplo n.º 5
0
# coding=utf-8
from collections import UserDict
from string import Formatter
import requests
import re
import json
import datetime
import asyncio
import chiharu.plugins.config as config
from nonebot import on_command, CommandSession, CommandGroup, scheduler, get_bot

seiyuu = CommandGroup('seiyuu', only_to_me=False)

@seiyuu.command('today')
@config.ErrorHandle
async def GetSeiyuuToday(session: CommandSession):
    strout = await _GetSeiyuuToday()
    await session.send(strout, auto_escape=True)

@seiyuu.command('check')
@config.ErrorHandle
async def CheckSeiyuu(session: CommandSession):
    name = session.get('name')
    count = session.get('count')
    loop = asyncio.get_event_loop()
    url = await loop.run_in_executor(None, requests.get, "https://sakuhindb.com/anime/search.asp?S_iC=%E6%96%87%E5%AD%97&ocs=euc&key=" + name + "&todo=%E6%83%85%E5%A0%B1DB")
    seiyuu = url.text.encode(url.encoding).decode("utf-8")
    pos = re.search("検索時間", seiyuu).span()[1]
    match = re.search("<a href\\=\"(https://sakuhindb.com/tj/[A-Za-z0-9_]*/)\">", seiyuu[pos:])
    if match:
        if re.search("<a href\\=\"(https://sakuhindb.com/tj/[A-Za-z0-9_]*/)\">((?!CV|Cv).)*?</a>", seiyuu[pos + match.span()[1]:]):
Exemplo n.º 6
0
from nonebot import CommandSession, CommandGroup

from sql_exe import sql_exe
from .live_state import *
from .book_state import *

from .push_live_info import *

__plugin_name__ = '订阅'
__plugin_usage__ = r"""订阅服务

目前仅支持: bilibili
指令: b订阅 / b取订 / b订阅列表"""

cg = CommandGroup('subscription', only_to_me=False)


@cg.command('j', aliases=['j订阅'])
async def subscription_jj(session: CommandSession):
    bid = session.get('bid', prompt='请输入你要订阅的novel id')
    group_id = session.ctx.get('group_id')

    # 检查novel是否存在
    state, book_info = await get_book_info(bid)
    if state == 2:
        session.finish('这本小说不存在')
    elif state == 1:
        session.finish('这本小说已经完结')
    # 验证是否已订阅
    sql_select = (
        'SELECT live_id FROM subscription WHERE group_id=? AND platform = "jjwxc";'
Exemplo n.º 7
0
from nonebot import (CommandGroup, CommandSession, NLPSession, logger,
                     on_command, on_natural_language, permission)
import sqlite3
import re
from random import choice
from hashlib import md5

# talk命令组
talk = CommandGroup('talk', shell_like=True)

# TODO 自动配置数据库

# 连接数据库
database = sqlite3.connect('./teachabletalk.sqlite')
cursor = database.cursor()


def rule_exist(pattern: str, reply: str):
    check_SQL = '''SELECT * FROM rules WHERE pattern = ? AND reply = ?'''
    cursor.execute(check_SQL, (pattern, reply))
    if cursor.fetchone():
        return True
    else:
        return False


def add_rule(pattern: str, reply: str):
    if rule_exist(pattern, reply):
        raise sqlite3.IntegrityError
    add_SQL = '''INSERT INTO rules (pattern, reply) VALUES (?, ?)'''
    cursor.execute(add_SQL, (pattern, reply))
Exemplo n.º 8
0
from nonebot import CommandGroup
from nonebot.adapters.onebot.v11 import Message, MessageEvent
from nonebot.matcher import Matcher
from nonebot.params import ArgPlainText, CommandArg, Depends

from src.utils.helpers import strtobool

from ..help.commands import get_command_help
from .config import DATA, global_config, plugin_config
from .fflogs_api import fflogs
from .fflogs_data import FFLOGS_DATA
from .gate import get_direction
from .nuannuan import get_latest_nuannuan
from .universalis_api import get_item_price

ff14 = CommandGroup("ff14")

# region 藏宝选门
gate_cmd = ff14.command("gate", aliases={"gate"})
gate_cmd.__doc__ = """
最终幻想XIV 藏宝选门

选择门的数量
/gate 2
/gate 3
"""


async def get_door_number(door_number: str = ArgPlainText()) -> int:
    """获取门的数量"""
    if not door_number:
Exemplo n.º 9
0
from nonebot import CommandGroup

__plugin_name__ = 'B站番剧指南'
__plugin_usage__ = """
------banned------
关键字:"番", "动漫", "动画"【需要at】

触发示例:

最近有什么新番
18年7月有啥动漫
约会大作战什么时候更新
梦幻岛今天更新了吗
刀剑神域明天会更新嘛

########################
"""

cg = CommandGroup('anime_index')

from . import index, timeline, nlp
Exemplo n.º 10
0
from nonebot import (CommandSession, CommandGroup, on_natural_language,
                     NLPSession, NLPResult)
from nonebot.helpers import render_expression as __

from . import expressions as e

__plugin_name__ = '天气'
__plugin_usage__ = r"""
天气功能使用帮助

天气  [城市名称]
""".strip()

w = CommandGroup('weather')


@w.command('weather', aliases=('天气', '天气预报'))
async def weather(session: CommandSession):
    city = session.get('city', prompt=__(e.WHICH_CITY))
    await session.send(__(e.REPORT, city=city))


@weather.args_parser
async def _(session: CommandSession):
    striped_arg = session.current_arg_text.strip()
    if session.current_key:
        session.args[session.current_key] = striped_arg
    elif striped_arg:
        session.args['city'] = striped_arg

Exemplo n.º 11
0
from nonebot import CommandGroup

__plugin_name__ = 'Bilibili'

cg = CommandGroup('bilibili_anime')

from . import index, timeline, nlp
Exemplo n.º 12
0
# 声明本插件可配置的权限节点
__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]
    if state[state["_current_key"]] == '取消':
        await deck.finish('操作已取消')

Exemplo n.º 13
0
from nonebot import permission as perm
from nonebot.command import call_command
from nonebot.command.argfilter import (converters, extractors, validators,
                                       controllers)
from nonebot.helpers import context_id

from nana import scheduler
from nana.command import allow_cancellation
from nana.helpers import random_string
from nana.scheduler import ScheduledCommand

__plugin_name__ = '订阅'

PLUGIN_NAME = 'subscribe'

cg = CommandGroup('subscribe',
                  permission=perm.PRIVATE | perm.GROUP_ADMIN | perm.DISCUSS)


@cg.command('subscribe',
            aliases=['订阅', '添加订阅', '新增订阅', '新建订阅'],
            only_to_me=False)
async def subscribe(session: CommandSession):
    message = session.get('message',
                          prompt='你想订阅什么内容呢?',
                          arg_filters=[
                              controllers.handle_cancellation(session),
                              str.lstrip,
                              validators.not_empty('请输入有效内容哦~'),
                          ])

    hour = session.state.get('hour')
Exemplo n.º 14
0
                'id INTEGER PRIMARY KEY AUTOINCREMENT,'
                'user_id INT NOT NULL,'
                'user_nickname TEXT NOT NULL,'
                'user_card TEXT,'
                'cards TEXT'
                ');')
    sql_exe(sql_init)
except OperationalError:
    pass

__plugin_name__ = '抽卡'
__plugin_usage__ = """借用塔罗, 图一乐

指令: 单抽 / 十连 / 仓库"""

cg = CommandGroup('_card', only_to_me=False)


@cg.command('choice', aliases=['单抽'])
async def card_choice(session: CommandSession):
    path = 'data/image'

    file_list = os.listdir(path)

    ch = random.choice(file_list)

    ch_id = ch.split('_')[0]

    sql = ('INSERT INTO draw VALUES (NULL, ?, ?, ?, ?);')

    ctx = session.ctx
Exemplo n.º 15
0
from nonebot import CommandGroup, CommandSession
from pyquery import PyQuery as pq
from .data_source import *
import random

__plugin_name__ = 'scp'
__plugin_usage__ = r"""scp查询

指令: scp"""

cg = CommandGroup('scp', only_to_me=False)


@cg.command('scp', aliases=['SCP', 'Scp', 'scp'])
async def scp(session: CommandSession):
    q_type = session.get('type', prompt='最近翻译or最近原创or随机?')
    result_str = ''
    if q_type.find("原创") > -1:
        q_type_int = 0
    elif q_type.find("翻译") > -1:
        q_type_int = 1
    elif q_type.find("随机") > -1:
        q_type_int = 2
    else:
        q_type_int = -1
    if q_type_int == 0 or q_type_int == 1:
        scp_list = await get_latest_article(q_type_int, 1)
        for s in scp_list[:5]:
            result_str = result_str + s['title'] + '\nhttp://scp-wiki-cn.wikidot.com' + s['link'] + '\n创建于' \
                         + s['created_time'] + '\n评分' + s['rank'] + '\n'
    elif q_type_int == 2:
Exemplo n.º 16
0
"""
from nonebot import CommandGroup

from coolqbot import PluginData

__plugin_name__ = 'repeat'
__plugin_usage__ = r"""
人类本质

用来模仿人类,同时提供排行榜,历史记录和记录复读状态功能。

例如:
-------排行榜---------
/rank
/rank 30n0
-------历史记录-------
/history
/history 2020-01
/history 2020-01-01
-------状态-----------
/status

命令均需要在群里使用。
""".strip()

cg = CommandGroup('repeat')

DATA = PluginData('repeat', config=True)

from . import commands, nlp
Exemplo n.º 17
0
from nonebot import CommandGroup, CommandSession
import random
import shlex
from .data_source import get_random_things

__plugin_name__ = '随机'
__plugin_usage__ = r"""有关随机

指令: 随机数 / 打乱 / 抽签 / 找点乐子"""

cg = CommandGroup('random', only_to_me=False)


@cg.command('number', aliases=['随机数'])
async def random_number(session: CommandSession):
    argv = shlex.split(session.current_arg_text)
    start, end = 1, 100
    try:
        if len(argv) == 1:
            start, end = 1, int(argv[0])
        elif len(argv) > 1:
            start, end = int(argv[0]), int(argv[1])
    except ValueError:
        session.finish('格式错误,随机数范围需是数字')

    start = min(start, end)
    end = max(start, end)
    if end > 10000 or start < -10000:
        session.pause('范围过大,请重新输入')

    await session.send(str(random.randint(start, end)))
Exemplo n.º 18
0
from nonebot.rule import to_me
from nonebot import CommandGroup, MatcherGroup

cmd = CommandGroup("test", rule=to_me())
match = MatcherGroup(priority=2)

from . import commands, matches
Exemplo n.º 19
0
import random
import shlex

from nonebot import CommandGroup, CommandSession

__plugin_name__ = '随机'

cg = CommandGroup('random')


@cg.command('number', aliases=['随机数'])
async def random_number(session: CommandSession):
    argv = shlex.split(session.current_arg_text)
    start, end = 1, 100
    try:
        if len(argv) == 1:
            start, end = 1, int(argv[0])
        elif len(argv) > 1:
            start, end = int(argv[0]), int(argv[1])
    except ValueError:
        session.finish('用法不对啦,随机数范围需要是数字哦')

    start = min(start, end)
    end = max(start, end)
    if end > 10000 or start < -10000:
        session.pause('范围太大啦,请重新输入')

    await session.send(str(random.randint(start, end)))


@cg.command('shuffle', aliases=['打乱'])
Exemplo n.º 20
0
import sqlite3
from sqlite3 import OperationalError

from nonebot import CommandSession, CommandGroup
from nonebot.permission import SUPERUSER

from random import randint
import time

from plugins.group_admin import timestamp2date_string
from sql_exe import sql_exe

__plugin_name__ = '回应'
__plugin_usage__ = r"""应激反应"""

cg = CommandGroup('response', only_to_me=False)


@cg.command('yyy', aliases=['嘤一下', '嘤一个', '来嘤'])
async def response_yyy(session: CommandSession):
    await session.send('嘤嘤嘤')


@cg.command('meow', aliases=['喵一下', '喵一个', '来喵'])
async def response_meow(session: CommandSession):
    await session.send('喵~')


@cg.command('kusa', aliases=['草'])
async def response_kusa(session: CommandSession):
    if randint(1, 10) > 8:
Exemplo n.º 21
0
from nonebot import CommandGroup, CommandSession
import os
import random
from shutil import copyfile
from .languages_image import LanguagesImage
from .run_source import *

__plugin_name__ = '代码'
__plugin_usage__ = r"""在线运行代码

指令: languages_list / java_run"""

cg = CommandGroup('code', only_to_me=False)


@cg.command('languages_list',
            aliases=['languages_list', '语言列表', 'languages列表', 'list'])
async def code_languages_list(session: CommandSession):
    text_out = ('Currently supported languages:\n'
                'assembly   ats   bash   c\n'
                'clojure   cobol   coffeescript   cpp\n'
                'crystal   csharp   d   elixir\n'
                'elm   erlang   fsharp   go\n'
                'groovy   haskell   idris   java\n'
                'javascript   julia   kotlin   lua\n'
                'mercury   nim   ocaml   perl\n'
                'perl6   php   python   ruby\n'
                'rust   scala   swift   typescript')
    li = os.listdir('data/image')
    im = 'data/image/' + random.choice(li)
    img = LanguagesImage(im, text_out)
Exemplo n.º 22
0
from nonebot import CommandGroup, CommandSession
from nonebot.permission import SUPERUSER
from aiocqhttp import MessageSegment
from .data_source import *
from ..chick_in import get_image
from ..tips import cuprum

cmd = ['色图', '涩图', '瑟图', '来张色图', '来张涩图', '来张瑟图']

__plugin_name__ = '希望'
__plugin_usage__ = fr"""色图服务
暂不开放

指令: {' / '.join(cmd)}"""

cg = CommandGroup('hope', only_to_me=False)


@cg.command('random_hope', aliases=cmd, permission=SUPERUSER)
async def hope_random_hope(session: CommandSession):
    bot = session.bot
    boo = await bot.can_send_image()
    boo = boo['yes']

    if boo:
        await session.send('少女祈祷中...')
        hope_url = await get_random_hope()
        msg = f'[CQ:image,file={hope_url}]'
        await session.send(msg)
    else:
        await session.send('机器人暂不支持发图, 请给作者打钱')
Exemplo n.º 23
0
from nonebot import CommandGroup

cg = CommandGroup('signup')

from . import sponsor
from . import participator
Exemplo n.º 24
0
def conf_read(name):
    # 读配置文件
    with open('%s/configs/%s' % (os.path.dirname(__file__), f'{name}_config.json')) as FILE:
        config_dict = json.loads(FILE.read())
    return config_dict


def conf_write(name, dict_):
    os.makedirs(os.path.join(os.path.dirname(__file__), 'configs'), 0o755, exist_ok=True)
    with open('%s/configs/%s' % (os.path.dirname(__file__), f'{name}_config.json'), 'w+', encoding='utf-8') as f:
        f.write(json.dumps(dict_, sort_keys=False, indent=4, ensure_ascii=False))


_battles = {}
_cmd_group = CommandGroup('ksmgame', only_to_me=False)

_anonymous_alert = '不要匿名' * 6

try:
    config = conf_read('ksmgame')
except:
    config = dict(enabled_group=[], pre_version="")
    conf_write('ksmgame', config)


@on_natural_language(only_to_me=False)
async def _(session: NLPSession):
    global config
    if get_ver() != config['pre_version']:
        config['pre_version'] = get_ver()
Exemplo n.º 25
0
from nonebot import CommandGroup, CommandSession
from .data_source import *

cmd_qq = ['qq点歌']
cmd_163 = ['网易云点歌', '点歌']
cmd = cmd_qq + cmd_163

__plugin_name__ = '点歌'
__plugin_usage__ = fr"""点歌服务
默认为网易云

指令: {' / '.join(cmd)}"""

cg = CommandGroup('music', only_to_me=False)


@cg.command('qq_song', aliases=cmd_qq)
async def music_qq_song(session: CommandSession):
    session.finish('肥肠爆芡, 正在努力开发qq音乐点歌')
    keyword = session.get('keyword', prompt='你想点播哪首歌')
    song_id = await search_song_qq(keyword)
    if not song_id:
        session.finish('发生未知错误或歌曲不存在')
    await session.send(f'[CQ:music,type=qq,id={song_id}]')


@cg.command('163_song', aliases=cmd_163)
async def music_163_song(session: CommandSession):
    # session.finish('遇到未知错误, 无法分享')
    keyword = session.get('keyword', prompt='你想点播哪首歌')
    song_id = await search_song_163(keyword)
Exemplo n.º 26
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@Author         : richardchien
@Date           : 2020-04-14 21:59:54
@LastEditors    : yanyongyu
@LastEditTime   : 2020-04-14 22:12:11
@Description    : None
@GitHub         : https://github.com/richardchien
"""
__author__ = "richardchien"

from nonebot import CommandGroup

__plugin_name__ = "bilibili"


def __plugin_usage__(target, *args, **kwargs):
    if target == "name":
        return "📺 bilibili番剧"
    else:
        return "📺 bilibili番剧\n\n最近有什么番\n2018年1月有什么番\nJOJO的奇妙冒险更新了没有"


cg = CommandGroup("bilibili_anime")

from . import commands, nlp
Exemplo n.º 27
0
FFLogs
"""
from nonebot import CommandGroup
from nonebot.exception import FinishedException
from nonebot.permission import GROUP
from nonebot.typing import Bot, Event

from src.utils.commands import get_command_help
from src.utils.helpers import strtobool

from .config import plugin_config
from .fflogs_api import fflogs
from .gate import get_direction
from .news import news

ff14 = CommandGroup('ff14', block=True)

#region 藏宝选门
gate_cmd = ff14.command('gate', aliases={'gate'})
gate_cmd.__doc__ = """
ff14.gate gate

最终幻想XIV 藏宝选门

选择门的数量
/gate 2
/gate 3
"""


@gate_cmd.args_parser
Exemplo n.º 28
0
from nonebot import CommandGroup, CommandSession
from .data_source import *

pixivic_cmd = ['psearch', 'pixiv_search', 'p识图1', 'p搜图1']
trace_cmd = ['asearch', 'trace_search', '动画识图']
saucenao_cmd = ['ssearch', 'saucenao_search', 'p识图', 'p搜图', 'p识图2', 'p搜图2']

__plugin_name__ = '搜图'
__plugin_usage__ = fr"""搜二次元图
搜索源: Pixivic.com, trace.moe, saucenao.com
存在bug

指令: {' / '.join(pixivic_cmd) + ' | ' + ' / '.join(trace_cmd) + ' | ' + ' / '.join(saucenao_cmd)}"""

cg = CommandGroup('isearch', only_to_me=False)


@cg.command('pixivic', aliases=pixivic_cmd)
async def isearch_pixivic(session: CommandSession):
    oiu = session.get('oiu', prompt='请发送要搜索的图片, 或图片的url')

    bot = session.bot
    boo = await bot.can_send_image()
    boo = boo['yes']
    await session.send('少女祈祷中...')

    # 怪
    if '[CQ:' in oiu:
        message = session.ctx.get('message')[0]
        m = str(message)
        start = m.find('url=') + 4
Exemplo n.º 29
0
"""
bili plugins __init__.py
"""
from nonebot import CommandGroup, CommandSession
from .data_source import *

__plugin_name__ = '新番'
__plugin_usage__ = r"""获取bili新番时间表

指令: 新番 / 新番时间表"""

cg = CommandGroup('new_animation', only_to_me=False)


@cg.command('新番', aliases=['新番时间表', '新番'])
async def new_animation(session: CommandSession):
    q_type = session.get('type', prompt='⌘国创or番剧?⌘')
    result_str = ''
    q_type_int = 0 if q_type.find("国创") > -1 else 1
    time_line = await get_time_line(q_type_int)
    if len(time_line) == 0:
        result_str = '今日无更新'
    else:
        for t in time_line:
            result_str = result_str + t['title'] + t['index'] + '\n' \
                         + t['time'] + '更新\n' + t['link'] + '\n'

    await session.send(result_str)


@cg.command('extraction', aliases=['提取b站封面', '提取封面', '封面提取'])
Exemplo n.º 30
0
                ),
                event=session.event,
                trigger="date",
                run_date=time,
                replace_existing=True,
            )

    session.finish(
        render_expression(
            EXPR_OK, time=time_str, action=target, escape_args=False) +
        f"\n提醒创建成功:\n"
        f"> 提醒时间:{time_str}\n"
        f"> 内容:{target}")


cg = CommandGroup(PLUGIN_NAME,
                  permission=perm.PRIVATE | perm.GROUP_ADMIN | perm.DISCUSS)


@cg.command(PLUGIN_NAME, aliases=["添加提醒", "新增提醒", "新建提醒"], only_to_me=False)
async def push(session: CommandSession):
    message = session.get(
        "message",
        prompt="你想让我提醒什么内容呢?语句命令都可,输入 `取消、不` 等来取消",
        arg_filters=[
            controllers.handle_cancellation(session),
            str.lstrip,
            validators.not_empty("请输入有效内容哦~"),
        ],
    )
    tn = TimeNormalizer()
    hour = session.state.get("hour")