diff options
Diffstat (limited to 'ATRI/plugins/Setu.py')
-rw-r--r-- | ATRI/plugins/Setu.py | 327 |
1 files changed, 0 insertions, 327 deletions
diff --git a/ATRI/plugins/Setu.py b/ATRI/plugins/Setu.py deleted file mode 100644 index 42d8bdc..0000000 --- a/ATRI/plugins/Setu.py +++ /dev/null @@ -1,327 +0,0 @@ -import os -import re -import time -import json -import sqlite3 -import aiohttp -from urllib.parse import urlencode -from random import choice, randint -from pathlib import Path -from datetime import datetime -from random import choice -import nonebot -from nonebot import on_command, CommandSession -from nonebot.helpers import send_to_superusers - -import config -from ATRI.modules.error import errorBack -from ATRI.modules.b64 import b64_str_img_url -from ATRI.modules.response import request_api_params -from ATRI.modules.funcControl import checkSwitch, checkNoob - - -bot = nonebot.get_bot() -master = config.SUPERUSERS -apikey_LOLI = config.LoliconAPI -APP_ID = config.BaiduApiID -API_KEY = config.BaiduApiKEY -SECRECT_KEY = config.BaiduApiSECRET -__plugin_name__ = "setu" -__plugin_name1__ = "setu_img" - -URL = 'https://api.lolicon.app/setu/' - -SETU_REPLY = """Title: {title} -Pid: {pid} -{setu} ---------------- -Complete time:{time}s""" - - -def now_time(): - now_ = datetime.now() - hour = now_.hour - minute = now_.minute - now = hour + minute / 60 - return now - - -setu_type = 1 -@on_command('setu', patterns = (r"来[点丶张份副个幅][涩色瑟][图圖]|[涩色瑟][图圖]来|[涩色瑟][图圖][gkd|GKD|搞快点]|[gkd|GKD|搞快点][涩色瑟][图圖]|[图圖]来|[我你她他它]想要[点丶张份副][涩色瑟][图圖]|我想要[1一][张份幅副个只][涩色瑟][图圖]|[我你她他它]想[看|look][涩涩|色色]的东西"), only_to_me = False) -async def setu(session: CommandSession): - start = time.perf_counter() - user = session.event.user_id - group = session.event.group_id - if checkNoob(user, group): - if 0 <= now_time() < 5.5: - await session.send( - choice( - [ - 'zzzz......', - 'zzzzzzzz......', - 'zzz...好涩哦..zzz....', - '别...不要..zzz..那..zzz..', - '嘻嘻..zzz..呐~..zzzz..' - ] - ) - ) - else: - if checkSwitch(__plugin_name__, group): - res = randint(1,10) - if 1 <= res <= 9: - res = randint(1,4) - if 1 <= res <= 3: - if setu_type == 1: - res = randint(1,5) - await session.send('别急!正在找图!') - con = sqlite3.connect(Path('.') / 'ATRI' / 'data' / 'sqlite' / 'setu' / 'nearR18.db') - cur = con.cursor() - msg = cur.execute('SELECT * FROM nearR18 ORDER BY RANDOM() limit 1;') - - if 1 <= res <= 4: - for i in msg: - pid = i[0] - title = i[1] - img = i[7] - end = time.perf_counter() - await session.send( - SETU_REPLY.format( - title = title, - pid = pid, - setu = img, - time = round(end - start, 3) - ) - ) - elif res == 5: - for i in msg: - pid = i[0] - title = i[1] - img = i[7] - end = time.perf_counter() - await session.send('我找到涩图了!但我发给主人了\nο(=•ω<=)ρ⌒☆') - await send_to_superusers( - bot, - message = f"主人,从群{group}来的涩图!热乎着!\nTitle: {title}\nPid: {pid}\n{img}\nComplete time: {round(end - start, 3)}" - ) - - elif setu_type == 2: - res = randint(1,5) - await session.send('别急!正在找图!') - start = time.perf_counter() - values = { - "apikey": apikey_LOLI, - "r18": "0", - "num": "1" - } - - try: - dc = json.loads(request_api_params(URL, values)) - title = dc["data"][0]["title"] - pid = dc["data"][0]["pid"] - setu = dc["data"][0]["url"] #b64.b64_str_img_url(dc["data"][0]["url"]) - except: - session.finish(errorBack('请求数据失败')) - - if 1 <= res <= 4: - end = time.perf_counter() - await session.send( - SETU_REPLY.format( - title = title, - pid = pid, - setu = dc["data"][0]["url"], - time = round(end - start, 3) - ) - ) - elif res == 5: - end = time.perf_counter() - await session.send('我找到涩图了!但我发给主人了\nο(=•ω<=)ρ⌒☆') - await send_to_superusers( - bot, - message = f"主人,从群{group}来的涩图!热乎着!\nTitle: {title}\nPid: {pid}\n{setu}\nComplete time: {round(end - start, 3)}" - ) - elif res == 4: - img = choice( - [ - 'SP.jpg', 'SP1.jpg', 'SP2.jpg' - ] - ) - img = Path('.') / 'ATRI' / 'data' / 'emoji' / f'{img}' - img = os.path.abspath(img) - await session.send(f'[CQ:image,file=file:///{img}]') - - elif res == 10: - img = choice( - [ - 'GDZ.png', 'SHZY1.jpg', 'SHZY2.jpg', 'SHZY3.jpg', 'SHZY4.jpg', 'SHZY5.jpg', 'SHZY6.jpg' - ] - ) - img = Path('.') / 'ATRI' / 'data' / 'img' / 'niceIMG' / f'{img}' - img = os.path.abspath(img) - await session.send(f'[CQ:image,file=file:///{img}]') - - else: - await session.send('该功能已关闭...') - - -@on_command('change_setu_type', aliases = ['涩图导向'], only_to_me = False) -async def _(session: CommandSession): - global setu_type - if session.event.user_id == master: - msg = session.event.raw_message.split(' ', 1) - s_type = msg[1] - - if s_type == '数据库': - setu_type = 1 - - elif s_type == '接口': - setu_type = 2 - - else: - session.finish('请检查输入~~~(') - - await session.send('okay~~~~') - - [email protected]_message("group") -async def _(context): - start = time.perf_counter() - user = context["user_id"] - group = context["group_id"] - if checkNoob(user, group): - if checkSwitch(__plugin_name1__, group): - try: - img = str(context["message"]) - pattern = re.compile(r"url=(.*)]") - img = re.findall(pattern, img) - img = img[0].replace('url=', '') - img = img.replace(']', '') - print(img) - except: - return - - try: - img = b64_str_img_url(img) - print('转换图片至base64成功') - except: - return - - try: - host = f'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={API_KEY}&client_secret={SECRECT_KEY}' - headers = { - 'Content-Type': 'application/json;charset=UTF-8' - } - res = json.loads(request_api_params(host, headers)) - access_token=res['access_token'] - url = f'https://aip.baidubce.com/rest/2.0/ocr/v1/general?access_token={access_token}' - headers = {'Content-Type': 'application/x-www-form-urlencoded'} - data = urlencode({'image': img}) - # res = requests.post(url=url, headers=headers, data=data) - - async def func0(url, headers, data): - async with aiohttp.ClientSession() as client: - async with client.post(url, headers = headers, data = data) as req: - res = await req.read() - return res - - words = json.loads(str(func0(url, headers, data)))['words_result'][0]['words'] - print('BaiduAPI请求成功') - except: - return - - if re.findall(r"[涩色]图|炼铜", words): - if checkSwitch(__plugin_name__, group): - res = randint(1,10) - if 1 <= res <= 9: - res = randint(1,5) - if 1 <= res <= 4: - if setu_type == 1: - res = randint(1,5) - await bot.send_group_msg(group_id = group, message = '别急!正在找图!') # type: ignore - con = sqlite3.connect(Path('.') / 'ATRI' / 'data' / 'sqlite' / 'setu' / 'nearR18.db') - cur = con.cursor() - msg = cur.execute('SELECT * FROM nearR18 ORDER BY RANDOM() limit 1;') - - if 1 <= res <= 4: - for i in msg: - pid = i[0] - title = i[1] - img = i[7] - end = time.perf_counter() - msg = SETU_REPLY.format( - title = title, - pid = pid, - setu = img, - time = round(end - start, 3) - ) - await bot.send_group_msg(group_id = group, message = msg) # type: ignore - elif res == 5: - for i in msg: - pid = i[0] - title = i[1] - img = i[7] - end = time.perf_counter() - await bot.send_group_msg(group_id = group, message = '我找到涩图了!但我发给主人了\nο(=•ω<=)ρ⌒☆') # type: ignore - await send_to_superusers( - bot, - message = f"主人,从群{group}来的涩图!热乎着!\nTitle: {title}\nPid: {pid}\n{img}\nComplete time: {round(end - start, 3)}" - ) - - elif setu_type == 2: - res = randint(1,5) - await bot.send_group_msg(group_id = group, message = '别急!正在找图!') # type: ignore - start = time.perf_counter() - values = { - "apikey": apikey_LOLI, - "r18": "0", - "num": "1" - } - - try: - dc = json.loads(request_api_params(URL, values)) - title = dc["data"][0]["title"] - pid = dc["data"][0]["pid"] - setu = dc["data"][0]["url"] #b64.b64_str_img_url(dc["data"][0]["url"]) - except: - await bot.send_group_msg(group_id = group, message = errorBack('数据请求失败')) # type: ignore - return - if 1 <= res <= 4: - end = time.perf_counter() - msg = SETU_REPLY.format( - title = title, - pid = pid, - setu = img, - time = round(end - start, 3) - ) - await bot.send_group_msg(group_id = group, message = msg) # type: ignore - elif res == 5: - end = time.perf_counter() - await bot.send_group_msg(group_id = group, message = '我找到涩图了!但我发给主人了\nο(=•ω<=)ρ⌒☆') # type: ignore - await send_to_superusers( - bot, - message = f"主人,从群{group}来的涩图!热乎着!\nTitle: {title}\nPid: {pid}\n{setu}\nComplete time: {round(end - start, 3)}" - ) - elif res == 5: - img = choice( - [ - 'SP.jpg', 'SP1.jpg', 'SP2.jpg' - ] - ) - img = Path('.') / 'ATRI' / 'data' / 'emoji' / f'{img}' - img = os.path.abspath(img) - await bot.send_group_msg(group_id = group, message = f'[CQ:image,file=file:///{img}]') # type: ignore - - elif res == 10: - img = choice( - [ - 'GDZ.png', 'SHZY1.jpg', 'SHZY2.jpg', 'SHZY3.jpg', 'SHZY4.jpg', 'SHZY5.jpg', 'SHZY6.jpg' - ] - ) - img = Path('.') / 'ATRI' / 'data' / 'img' / 'niceIMG' / f'{img}' - img = os.path.abspath(img) - await bot.send_group_msg(group_id = group, message = f'[CQ:image,file=file:///{img}]') # type: ignore - - else: - pass - - else: - pass
\ No newline at end of file |