diff options
Diffstat (limited to 'ATRI/plugins/UploadSqlite.py')
-rw-r--r-- | ATRI/plugins/UploadSqlite.py | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/ATRI/plugins/UploadSqlite.py b/ATRI/plugins/UploadSqlite.py new file mode 100644 index 0000000..f1dc602 --- /dev/null +++ b/ATRI/plugins/UploadSqlite.py @@ -0,0 +1,136 @@ +import os +import time +import json +import sqlite3 +import nonebot + +from pathlib import Path +from nonebot import on_command, CommandSession + +from ATRI.modules import response # type: ignore + + +bot = nonebot.get_bot() +master = bot.config.SUPERUSERS # type: ignore +url = f'https://api.imjad.cn/pixiv/v1/?type=illust&id=' + + +@on_command('upload_setu', aliases = ['上传涩图'], only_to_me = False) +async def _(session: CommandSession): + if session.event.user_id in master: + start = time.perf_counter() + msg = session.event.raw_message.split(' ', 2) + print(msg) + i_tpye = msg[1] + pid = msg[2] + + URL = url + pid + + dc = json.loads(response.request_api(URL)) + if not dc: + session.finish('ATRI在尝试解析数据时出问题...等会再试试吧...') + title = dc["response"][0]["title"] + tags = dc["response"][0]["tags"] + account = dc["response"][0]["user"]["account"] + name = dc["response"][0]["user"]["name"] + u_id = dc["response"][0]["user"]["id"] + user_link = f'https://www.pixiv.net/users/' + f'{u_id}' + img = f'https://pixiv.cat/{pid}.jpg' + + if i_tpye == '正常': + if os.path.exists('ATRI/data/sqlite/setu/normal.db'): + print('数据文件存在!') + else: + await session.send('数据库不存在,将在3秒后开始构建...') + time.sleep(3) + await session.send('开始构建数据库!') + con = sqlite3.connect(Path('.') / 'ATRI' / 'data' / 'sqlite' / 'setu' / 'normal.db') + cur = con.cursor() + cur.execute('CREATE TABLE normal(pid PID, title TITLE, tags TAGS, account ACCOUNT, name NAME, u_id UID, user_link USERLINK, img IMG, UNIQUE(pid, title, tags, account, name, u_id, user_link, img))') + con.commit() + cur.close() + con.close() + await session.send('完成') + + con = sqlite3.connect(Path('.') / 'ATRI' / 'data' / 'sqlite' / 'setu' / 'normal.db') + cur = con.cursor() + cur.execute('INSERT INTO normal VALUES ("%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s")'%(pid, title, tags, account, name, u_id, user_link, img)) + con.commit() + con.close() + + elif i_tpye == '擦边球': + if os.path.exists('ATRI/data/sqlite/setu/nearR18.db'): + print('数据文件存在!') + else: + await session.send('数据库不存在,将在3秒后开始构建...') + time.sleep(3) + await session.send('开始构建数据库!') + con = sqlite3.connect(Path('.') / 'ATRI' / 'data' / 'sqlite' / 'setu' / 'nearR18.db') + cur = con.cursor() + cur.execute('CREATE TABLE nearR18(pid PID, title TITLE, tags TAGS, account ACCOUNT, name NAME, u_id UID, user_link USERLINK, img IMG, UNIQUE(pid, title, tags, account, name, u_id, user_link, img))') + con.commit() + cur.close() + con.close() + await session.send('完成') + + con = sqlite3.connect(Path('.') / 'ATRI' / 'data' / 'sqlite' / 'setu' / 'nearR18.db') + cur = con.cursor() + cur.execute('INSERT INTO nearR18 VALUES ("%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s")'%(pid, title, tags, account, name, u_id, user_link, img)) + con.commit() + con.close() + + elif i_tpye == 'r18': + if os.path.exists('ATRI/data/sqlite/cloudmusic/cloudmusic.db'): + print('数据文件存在!') + else: + await session.send('数据库不存在,将在3秒后开始构建...') + time.sleep(3) + await session.send('开始构建数据库!') + con = sqlite3.connect(Path('.') / 'ATRI' / 'data' / 'sqlite' / 'setu' / 'r18.db') + cur = con.cursor() + cur.execute('CREATE TABLE r18(pid PID, title TITLE, tags TAGS, account ACCOUNT, name NAME, u_id UID, user_link USERLINK, img IMG, UNIQUE(pid, title, tags, account, name, u_id, user_link, img))') + con.commit() + cur.close() + con.close() + await session.send('完成') + + con = sqlite3.connect(Path('.') / 'ATRI' / 'data' / 'sqlite' / 'setu' / 'r18.db') + cur = con.cursor() + cur.execute('INSERT INTO r18 VALUES ("%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s")'%(pid, title, tags, account, name, u_id, user_link, img)) + con.commit() + con.close() + + end = time.perf_counter() + + await session.send(f'数据上传完成!\n耗时: {round(end - start, 3)}s') + +@on_command('upload_cloudmusic', aliases = ['上传网抑语', '网抑云', '网易云'], only_to_me = False) +async def _(session: CommandSession): + if session.event.user_id in master: + start = time.perf_counter() + msg = session.event.raw_message.split(' ', 1) + msg = msg[1] + + if os.path.exists('ATRI/data/sqlite/cloudmusic/cloudmusic.db'): + print('数据文件存在!') + else: + await session.send('数据库不存在,将在3秒后开始构建...') + time.sleep(3) + await session.send('开始构建数据库!') + con = sqlite3.connect(Path('.') / 'ATRI' / 'data' / 'sqlite' / 'cloudmusic' / 'cloudmusic.db') + cur = con.cursor() + cur.execute('CREATE TABLE cloudmusic(msg MSG, UNIQUE(msg))') + con.commit() + cur.close() + con.close() + await session.send('完成') + + con = sqlite3.connect(Path('.') / 'ATRI' / 'data' / 'sqlite' / 'cloudmusic' / 'cloudmusic.db') + cur = con.cursor() + cur.execute('INSERT INTO cloudmusic VALUES ("%s")'%(msg)) + con.commit() + con.close() + + end = time.perf_counter() + + await session.send(f'数据上传完成!\n耗时: {round(end - start, 3)}s')
\ No newline at end of file |