示例#1
0
    def __init__(
        self,
        api_key: str = None,
        output_type=2,
        testmode=1,
        dbmaski=32768,
        db=5,
        numres=5,
    ):
        Service.__init__(self, "以图搜图", __doc__, rule=is_in_service("以图搜图"))

        params = dict()
        params["api_key"] = api_key
        params["output_type"] = output_type
        params["testmode"] = testmode
        params["dbmaski"] = dbmaski
        params["db"] = db
        params["numres"] = numres
        self.params = params
示例#2
0
 def __init__(self):
     Service.__init__(self, "乐", __doc__, rule=is_in_service("乐"))
示例#3
0
    "swift": {"ext": "swift"},
    "typescript": {"ext": "ts"},
}


__doc__ = """
在线运行代码
权限组:所有人
用法:
  /code (lang) (code)
示例:
  /code python
  print('Hello world!')
"""

code_runner = sv.on_command(cmd="code", docs=__doc__, rule=is_in_service("code"))


@code_runner.handle()
async def _code_runner(bot: Bot, event: MessageEvent) -> None:
    msg = str(event.message).split("\n")

    if msg[0] == "list":
        msg0 = "咱现在支持的语言如下:\n"
        msg0 += ", ".join(map(str, SUPPORTED_LANGUAGES.keys()))

        await code_runner.finish(msg0)
    elif not msg[0]:
        await code_runner.finish("请键入/help以获取更多支持...")

    laug = msg[0].replace("\r", "")
示例#4
0
from random import choice, randint

from nonebot.adapters.cqhttp import Bot, MessageEvent, GroupMessageEvent

from ATRI.service import Service as sv
from ATRI.utils.limit import is_too_exciting
from ATRI.rule import is_in_service

__doc__ = """
看不懂的笑话
权限组:所有人
用法:
  来句笑话
"""

get_laugh = sv.on_message(rule=is_in_service("来句笑话"))
sv.manual_reg_service("来句笑话", __doc__)


@get_laugh.handle()
async def _get_laugh(bot: Bot, event: MessageEvent) -> None:
    user_name = event.sender.nickname
    msg = str(event.message)
    laugh_list = []

    if msg != "来句笑话":
        return

    FILE = Path(".") / "ATRI" / "data" / "database" / "funny" / "laugh.txt"
    with open(FILE, "r", encoding="utf-8") as r:
        for line in r:
示例#5
0
import psutil
from nonebot.adapters.cqhttp import Bot, MessageEvent

from ATRI.log import logger as log
from ATRI.service import Service as sv
from ATRI.rule import is_in_service
from ATRI.exceptions import GetStatusError
from ATRI.utils.apscheduler import scheduler
from ATRI.config import Config

__doc__ = """
测试机器人状态
"""

ping = sv.on_command(cmd="ping", docs="测试机器人", rule=is_in_service("ping"))


@ping.handle()
async def _ping(bot: Bot, event: MessageEvent) -> None:
    await ping.finish("I'm fine.")


__doc__ = """
检查机器人性能
权限组:所有人
用法:
  /status
"""

status = sv.on_command(cmd="status",
                       docs=__doc__,
示例#6
0
__doc__ = """
抑郁一下
权限组:所有人
用法:
  @一言
  抑郁一下
  网抑云
补充:
  @:at Bot
"""

hitokoto = sv.on_command(cmd="一言",
                         docs=__doc__,
                         aliases={"抑郁一下", "网抑云"},
                         rule=is_in_service("一言") & to_bot())


@hitokoto.handle()
async def _hitokoto(bot: Bot, event: MessageEvent) -> None:
    global sick_list
    user = event.get_user_id()

    if count_list(sick_list, user) == 3:
        sick_list.append(user)
        await hitokoto.finish("额......需要咱安慰一下嘛~?")
    elif count_list(sick_list, user) == 6:
        sick_list = del_list_aim(sick_list, user)
        msg = "如果心里感到难受就赶快去睡觉!别再憋自己了!\n" "我...我会守在你身边的!...嗯..一定"
        await hitokoto.finish(msg)
    else:
示例#7
0
from ATRI.rule import is_in_service
from ATRI.utils.list import count_list, del_list_aim
from ATRI.utils.request import get_text
from ATRI.exceptions import RequestTimeOut

URL = "https://zuanbot.com/api.php?level=min&lang=zh_cn"
sick_list = []

__doc__ = """
口臭一下
权限组:所有人
用法:
  口臭,口臭一下,骂我
"""

curse = sv.on_message(rule=is_in_service("口臭"))
sv.manual_reg_service("口臭", __doc__)


@curse.handle()
async def _curse(bot: Bot, event: MessageEvent) -> None:
    global sick_list
    msg = str(event.message)
    user = event.get_user_id()
    curse_key = ["口臭", "口臭一下", "骂我"]

    if msg not in curse_key:
        return

    if count_list(sick_list, user) == 3:
        sick_list.append(user)
示例#8
0
 def __init__(self):
     Service.__init__(self, "在线跑代码", __doc__, rule=is_in_service("在线跑代码"))
示例#9
0

__doc__ = """
检测你图片的涩值
权限组:所有人
用法:
  /nsfw (pic)
补充:
  pic: 图片
示例:
  /nsfw 然后Bot会向你索取图片
"""

nsfw_reading = sv.on_command(cmd="nsfw",
                             docs=__doc__,
                             rule=is_in_service("nsfw"))


@nsfw_reading.handle()
async def _nsfw_r(bot: Bot, event: GroupMessageEvent, state: T_State) -> None:
    user = event.user_id
    group = event.group_id
    msg = str(event.message).strip()
    check = await coolq_code_check(msg, user, group)
    if check and msg:
        state["pic"] = msg


@nsfw_reading.got("pic", prompt="图呢?")
async def _nsfw_reading(bot: Bot, event: GroupMessageEvent,
                        state: T_State) -> None:
示例#10
0
from ATRI.utils.request import get_bytes

from .data_source import to_simple_string

URL = "https://trace.moe/api/search?url="

__doc__ = """
以图搜番
权限组:所有人
用法:
  /anime
"""

anime_search = sv.on_command(cmd="anime",
                             docs=__doc__,
                             rule=is_in_service("anime"))


@anime_search.handle()
async def _anime_search(bot: Bot, event: MessageEvent, state: T_State) -> None:
    msg = str(event.message).strip()
    if msg:
        state["msg"] = msg


@anime_search.got("msg", prompt="图呢?")
async def _(bot: Bot, event: MessageEvent, state: T_State) -> None:
    msg = state["msg"]
    img = re.findall(r"url=(.*?)]", msg)
    if not img:
        await anime_search.reject("请发送图片而不是其它东西!!")
示例#11
0
    add_key_temp,
    load_key_data,
    add_key,
    load_key_history,
    load_key_temp_data,
    del_key_temp,
)

# 此功能暂未完善:未添加关键词删除

# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#     !屎山注意!屎山注意!屎山注意!屎山注意!
#          !请自备降压药!请自备降压药!
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

keyrepo = sv.on_message(rule=is_in_service("keyrepo") & to_bot())


@keyrepo.handle()
async def _keyrepo(bot: Bot, event: MessageEvent) -> None:
    msg = str(event.get_message())
    data = load_key_data()

    for key in data.keys():
        if key in msg:
            await keyrepo.finish(choice(data[key]))


__doc__ = """
关键词申请/审核
权限组:所有人
示例#12
0
 def __init__(self):
     Service.__init__(self, "涩图", "hso!", rule=is_in_service("涩图"))
示例#13
0
 def __init__(self):
     Service.__init__(self, "小程序处理", __doc__, rule=is_in_service("小程序处理"))
示例#14
0
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: