예제 #1
0
async def _(bot: Bot, event: Event, state: dict) -> None:
    global ban_temp_list
    msg = str(event.message)
    user = str(event.user_id)

    # 检查是否满足条件
    if countX(ban_temp_list,
              user) == Textcheck().get_times(str(Textcheck().check(msg))):
        ban_temp_list = list(set(ban_temp_list))
        ban(user)

        delta = timedelta(minutes=Textcheck().get_ban_time(msg))
        trigger = DateTrigger(run_date=datetime.now() + delta)
        scheduler.add_job(func=unban,
                          trigger=trigger,
                          args=(user, ),
                          misfire_grace_time=60)

        await publicOpinion.finish(Textcheck().check(msg))

    if Textcheck().check(msg) == "False":
        return

    if Textcheck().check(msg):
        if user in master:
            await publicOpinion.finish("主人你给我注意点阿?!你这可是在死亡边缘试探呢!!")

        ban_temp_list.append(int(user))

        await publicOpinion.finish(Textcheck().check(msg))
예제 #2
0
async def _(bot: Bot, event: Event, state: dict) -> None:
    global b_list
    user = event.user_id
    msg = str(event.message)

    # 防刷屏机制:回复次数达到五次自动忽略下一次
    if countX(b_list, user) == 5:
        return

    if "qqdocurl" not in msg:
        try:
            bv = re.findall(r"(BV\w+)", msg)
        except:
            return
    else:
        bvURL = re.findall(r"(........b23...\S+\=)", msg)

        try:
            r = requests.get(bvURL[0], stream=True, allow_redirects=True)
        except:
            logger.waring("Get BV ERROR. (Request ERROR)")
            return

        bv = re.findall(r"(BV\w+)", r.url)

    if bv:
        aid = str(dec(bv[0]))
        ad = 'av' + aid
        URL = f'https://api.imjad.cn/bilibili/v2/?aid={aid}'

        try:
            res = request_get(URL)
        except:
            logger.waring("Request ERROR")
            return

        data = json.loads(res)
        msg = BILI_REPORT_FORMAT.format(title=data["data"]["title"],
                                        view=data["data"]["stat"]["view"],
                                        coin=data["data"]["stat"]["coin"],
                                        share=data["data"]["stat"]["share"],
                                        like=data["data"]["stat"]["like"],
                                        bid=data["data"]["bvid"],
                                        bid_link=data["data"]["short_link"],
                                        aid=ad,
                                        aid_link=f'https://b23.tv/{ad}')

        b_list.append(user)
        await bilibiliRich.finish(msg)

    else:
        return
예제 #3
0
async def _(bot: Bot, event: Event, state: dict) -> None:
    user = str(event.user_id)
    global list_Y

    if countX(list_Y, user) == 3:
        list_Y.append(user)
        await bot.send(event, "额......需要咱安慰一下嘛~?")

    elif countX(list_Y, user) == 6:
        await bot.send(event, "如果心里感到难受就赶快去睡觉奥!别再憋自己了!")
        list_Y = list(set(list_Y))

    else:
        list_Y.append(user)
        URL = "https://api.imjad.cn/hitokoto/?cat=a&charset=utf-8&length=50&encode=json&fun=sync&source="
        info = {}

        try:
            info = json.loads(request_api_text(URL))
        except:
            await hitokoto.finish(errorRepo("请求错误"))

        await hitokoto.finish(info["hitokoto"])
예제 #4
0
async def _(bot: Bot, event: Event, state: dict) -> None:
    user = str(event.user_id)
    global list_M

    if countX(list_M, user) == 3:
        list_M.append(user)
        await bot.send(event,
                       "不是??你这么想被咱骂的嘛??被咱骂就这么舒服的吗?!该......你该不会是.....M吧!")

    elif countX(list_M, user) == 6:
        await bot.send(event, "给我适可而止阿!?")
        list_M = list(set(list_M))

    else:
        list_M.append(user)
        URL = "https://nmsl.shadiao.app/api.php?level=min&lang=zh_cn"
        msg = ""

        try:
            msg = request_api_text(URL)
        except exceptions:
            await fxxkMe.finish(errorRepo("请求错误"))

        await fxxkMe.finish(msg)
예제 #5
0
async def _(bot: Bot, event: Event, state: dict) -> None:
    global c_list
    user = event.user_id
    msg = str(event.message)

    # 防刷屏机制:回复次数达到五次自动忽略下一次
    if countX(b_list, user) == 5:
        return

    if "music.163.com" in msg:
        music_id = re.findall(r"song\S+\/|id=\S+\&", msg)

        if music_id:
            music_id = str(music_id[0])
            music_id = re.findall(r"-?[1-9]\d*", music_id)
            URL = f'https://api.imjad.cn/cloudmusic/?type=song&id={music_id[0]}&br=320000'

            try:
                res = request_get(URL)
            except:
                logger.waring("Request ERROR")
                return

            data = json.loads(res)
            msg = CLOUDMUSIC_REPORT_FORMAT.format(
                status=data["code"],
                id=data["data"][0]["id"],
                br=data["data"][0]["br"],
                url=data["data"][0]["url"],
                md5=data["data"][0]["md5"],
            )

            c_list.append(user)
            await cloudmusicRich.finish(msg)

    else:
        return
예제 #6
0
async def _(bot: Bot, event: Event, state: dict) -> None:
    global SP_temp_list
    user = event.user_id
    group = event.group_id
    res = randint(1, 5)

    check_sepi()

    if countX(SP_temp_list, user) == 5:
        add_sepi(user)  # type: ignore
        SP_temp_list = list(set(SP_temp_list))
        delta = timedelta(hours=1)
        trigger = DateTrigger(run_date=datetime.now() + delta)
        scheduler.add_job(func=del_sepi,
                          trigger=trigger,
                          args=(user, ),
                          misfire_grace_time=60)
        return

    if setu_type == 1:

        DATA_PATH = Path(
            '.') / 'ATRI' / 'data' / 'data_Sqlite' / 'setu' / 'nearR18.db'

        if not DATA_PATH.is_file():
            await setu.finish("数据库...她是空的!!!")

        con = sqlite3.connect(DATA_PATH)
        cur = con.cursor()
        msg = cur.execute('SELECT * FROM nearR18 ORDER BY RANDOM() limit 1;')

        for i in msg:
            pid = i[0]
            title = i[1]
            img = i[7]

            msg0 = "setu info:\n"
            msg0 += f"Title: {title}\n"
            msg0 += f"Pid: {pid}\n"
            msg0 += f"[CQ:image,file=file:///{compress_image(await aio_download_pics(img))}]"

            if 1 <= res < 5:
                SP_temp_list.append(user)
                await setu.finish(msg0)

            elif res == 5:
                await bot.send(event, "我找到涩图了!但我发给主人了\nο(=•ω<=)ρ⌒☆")

                for sup in config['bot']['superusers']:
                    await bot.send_private_msg(
                        user_id=sup,
                        message=
                        f"主人,从群{group}来的涩图!热乎着!\nTitle: {title}\nPid: {pid}\n[CQ:image,file=file:///{compress_image(await aio_download_pics(img))}]"
                    )

    else:
        params = {"apikey": key_LoliconAPI, "r18": "0", "num": "1"}

        data = {}

        try:
            data = json.loads(
                request_get('https://api.lolicon.app/setu/', params))
        except Exception:
            await setu.finish(errorRepo("请求数据失败,也可能为接口调用次数达上限"))

        msg0 = "setu info:\n"
        msg0 += f'Title: {data["data"][0]["title"]}\n'
        msg0 += f'Pid: {data["data"][0]["pid"]}\n'
        msg0 += f'[CQ:image,file=file:///{compress_image(await aio_download_pics(data["data"][0]["url"]))}]'

        if 1 <= res < 5:
            SP_temp_list.append(user)
            await setu.finish(msg0)

        elif res == 5:
            await bot.send(event, "我找到涩图了!但我发给主人了\nο(=•ω<=)ρ⌒☆")

            for sup in config['bot']['superusers']:
                await bot.send_private_msg(
                    user_id=sup,
                    message=
                    f'主人,从群{group}来的涩图!热乎着!\nTitle: {data["data"][0]["title"]}\nPid: {data["data"][0]["pid"]}\n[CQ:image,file=file:///{compress_image(await aio_download_pics(data["data"][0]["url"]))}]'
                )