summaryrefslogtreecommitdiff
path: root/ATRI/plugins/UploadSqlite.py
diff options
context:
space:
mode:
Diffstat (limited to 'ATRI/plugins/UploadSqlite.py')
-rw-r--r--ATRI/plugins/UploadSqlite.py136
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