Example #1
0
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
async def _(bot: Bot, event: Event, state: dict):
    args = str(event.message).strip()
Example #2
0
**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('操作已取消')


@luck.handle()
async def handle_first_receive(bot: Bot, event: GroupMessageEvent, state: T_State):
Example #3
0
    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('操作已取消')


@deck.handle()
async def handle_first_receive(bot: Bot, event: GroupMessageEvent, state: T_State):
Example #4
0
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:
        await gate_cmd.reject("你什么都不输入我怎么知道呢,请告诉我有几个门!")

    if not door_number.isdigit():
Example #5
0
参考 https://github.com/pcrbot/yobot
"""
from nonebot import CommandGroup
from nonebot.typing import Bot, Event

from src.utils.helpers import strtobool

from .calender import calender
from .config import plugin_config
from .news import news

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

#region 新闻推送
news_cmd = pcr.command('news')
news_cmd.__doc__ = """
pcr.news

公主连结Re:Dive 新闻推送

当前新闻推送状态
/pcr.news
开启推送
/pcr.news on
关闭推送
/pcr.news off
"""


@news_cmd.handle()
Example #6
0
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):
    state["_prompt"] = ("请输入想要订阅的平台,目前支持:\n" + "".join([
        "{}:{}\n".format(platform_name, platform_manager[platform_name].name)
        for platform_name in common_platform
    ]) + '要查看全部平台请输入:"全部"')
Example #7
0
# endregion
# region 复读
repeat_message = on_message(
    rule=need_repeat,
    permission=GROUP,
    priority=5,
    block=True,
)


@repeat_message.handle()
async def repeat_message_handle(event: GroupMessageEvent):
    await repeat_message.finish(event.message)


repeat_cmd = repeat.command("basic", aliases={"repeat", "复读"}, permission=GROUP)
repeat_cmd.__doc__ = """
复读

查看当前群是否启用复读功能
/repeat
启用复读功能
/repeat on
关闭复读功能
/repeat off
"""


@repeat_cmd.handle()
async def repeat_handle(event: GroupMessageEvent, arg: Message = CommandArg()):
    args = arg.extract_plain_text()
Example #8
0

P = register('flexperm')

cg = CommandGroup('flexperm')


def h(x):
    return x.handle()


def plaintext(_b, e, _s):
    return all(seg.is_text() for seg in e.get_message())


@h(cg.command('help', permission=P('edit.perm.group')))
async def _(bot: Bot, event: Event):
    help_msg = f"添加权限:/flexperm.add 权限描述\n" \
               f"移除权限:/flexperm.remove 权限描述\n" \
               f"可设置权限的插件列表:\n"
    help_msg += '\n'.join(plugins.keys())
    await bot.send(event, help_msg)


@h(cg.command('reload', permission=P('reload')))
async def _(bot: Bot, event: Event):
    core.reload()
    await bot.send(event, '重新加载权限配置')


@h(cg.command('save', permission=P('reload')))
Example #9
0
async def mimikko_sign_in_auto():
    bot = get_bots()[config.bot_id]
    sign_data, energy_info_data, energy_reward_data, sign_info, sign_history = mimikko(app_id, authorization)
    res = "Sign Data:\n"
    res += f"获得成长值Reward:{sign_data['body']['Reward']}\n"
    res += f"获得硬币GetCoin:{sign_data['body']['GetCoin']}\n"
    if sign_data["code"] == "0":
        res += f"[CQ:image,file=file:///{drawSigncard(sign_data)}]\n"
    res += "================\nSign History:\n"
    day_list = []
    for item in sign_history["body"]["signLogs"]:
        rex_data = re.search("(?P<月>.*)月(?P<日>.*)日", timeStamp2time(item["signDate"]))
        if rex_data.group("月") == re.search(
            "(?P<月>.*)月(?P<日>.*)日", timeStamp2time(sign_history["body"]["startTime"])
        ).group("月"):
            day_list.append(rex_data.group("日"))
    img_path = drawMonth(datetime.datetime.now().month, day_list, plugin_path)
    res += f"[CQ:image,file=file:///{plugin_path}/{img_path}]"
    await bot.send_group_msg(group_id=group_id, message=Message(res))


# 1. mimikko sign: 梦梦奈签到
# 2. mimikko energy: 领取能量值
# 3. mimikko check: 检查签到状态
# 4. 自动签到任务
mimikko_com = CommandGroup("mimikko")
bots = mimikko_com.command("sign", handlers=[mimikko_sign])
matchers = mimikko_com.command("energy", handlers=[mimikko_energy])
event = mimikko_com.command("check", handlers=[mimikko_check])
scheduler.add_job(mimikko_sign_in_auto, "cron", hour="12")
Example #10
0
""" 公主连结Re:Dive

日程推送和查询

参考 https://github.com/pcrbot/yobot
"""
from nonebot import CommandGroup

from .data import calendar

pcr = CommandGroup("pcr")

# region 日程表
calendar_cmd = pcr.command("calendar", aliases={("pcr", "日程表"), ("pcr", "日程")})
calendar_cmd.__doc__ = """
公主连结Re:Dive 日程表

获取一周日程表
/pcr.calendar
"""


@calendar_cmd.handle()
async def calendar_handle():
    await calendar_cmd.finish(await calendar.get_week_events())


# endregion
Example #11
0
"""
from nonebot import CommandGroup
from nonebot.adapters.onebot.v11 import Message, MessageEvent, PrivateMessageEvent
from nonebot.adapters.onebot.v11.permission import PRIVATE
from nonebot.matcher import Matcher
from nonebot.params import ArgPlainText, CommandArg

from .api import Genshin
from .config import get_cookie, set_cookie

genshin = CommandGroup("ys")

# region 绑定账号
bind_cmd = genshin.command(
    "bind",
    aliases={("原神", "绑定"), ("原神", "绑定账号")},
    permission=PRIVATE,
)
bind_cmd.__doc__ = """
原神

绑定账号
/ys.bind
绑定账号(直接附带 Cookie)
/ys.bind cookie=1234567890

获取 Cookie 的方法详见:
https://github.com/Womsxd/YuanShen_User_Info
"""