import re from nonebot.adapters.cqhttp import Bot, MessageEvent from ATRI.service import Service as sv from ATRI.rule import is_in_service from .data_source import roll_dice, Encrypt __doc__ = """ roll一下 权限组:所有人 用法: /roll (int)d(int)+... 补充: int: 阿拉伯数字 示例: /roll 1d10+10d9+4d5+2d3 """ roll = sv.on_command( cmd="roll", docs=__doc__, rule=is_in_service('roll') ) @roll.handle() async def _roll(bot: Bot, event: MessageEvent, state: dict) -> None: args = str(event.message).strip() if args: state['resu'] = args @roll.got("resu", prompt="roll 参数不能为空~!\ndemo:1d10 或 2d10+2d10") async def _(bot: Bot, event: MessageEvent, state: dict) -> None: resu = state['resu'] match = re.match(r'^([\dd+\s]+?)$', resu) if not match: await roll.finish("请输入正确的参数!!\ndemo:1d10 或 2d10+2d10") await roll.finish(roll_dice(resu)) __doc__ = """ 加密传输(bushi 权限组:所有人 用法: /enc e,d msg 补充: e,d:对应 编码/解码 msg: 目标内容 示例: /enc e アトリは高性能ですから! """ encrypt = sv.on_command( cmd="enc", docs=__doc__, rule=is_in_service('enc') ) @encrypt.handle() async def _encrypt(bot: Bot, event: MessageEvent) -> None: msg = str(event.message).split(' ') _type = msg[0] s = msg[1] e = Encrypt() if _type == "e": await encrypt.finish(e.encode(s)) elif _type == "d": await encrypt.finish(e.decode(s)) else: await encrypt.finish('请检查输入~!')