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))
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
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"])
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)
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
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"]))}]' )