GenshinUID/getDB.py
2021-09-27 00:58:43 +08:00

102 lines
3.2 KiB
Python

import sqlite3
import os
import yaml
import random
FILE_PATH = os.path.abspath(os.path.join(os.getcwd(), "hoshino"))
DATA_PATH = os.path.join(FILE_PATH,'config')
async def connectDB(userid,uid = None,mys = None):
conn = sqlite3.connect('ID_DATA.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS UIDDATA
(USERID INT PRIMARY KEY NOT NULL,
UID TEXT,
MYSID TEXT);''')
c.execute("INSERT OR IGNORE INTO UIDDATA (USERID,UID,MYSID) \
VALUES (?, ?,?)",(userid,uid,mys))
if uid:
c.execute("UPDATE UIDDATA SET UID = ? WHERE USERID=?",(uid,userid))
if mys:
c.execute("UPDATE UIDDATA SET MYSID = ? WHERE USERID=?",(mys,userid))
conn.commit()
conn.close()
async def selectDB(userid):
conn = sqlite3.connect('ID_DATA.db')
c = conn.cursor()
cursor = c.execute("SELECT * FROM UIDDATA WHERE USERID = ?",(userid,))
for row in cursor:
if row[0]:
if row[2]:
return [row[2],3]
elif row[1]:
return [row[1],2]
else:
return None
else:
return None
def deletecache():
conn = sqlite3.connect('ID_DATA.db')
c = conn.cursor()
c.execute("DROP TABLE CookiesCache")
conn.commit()
conn.close()
async def cacheDB(uid,mode = 1,mys = None):
use = ''
conn = sqlite3.connect('ID_DATA.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS CookiesCache
(UID TEXT PRIMARY KEY,
MYSID TEXT,
Cookies TEXT);''')
if mode == 1:
if mys:
cursor = c.execute("SELECT * FROM CookiesCache WHERE MYSID = ?",(mys,))
c_data = cursor.fetchall()
else:
cursor = c.execute("SELECT * FROM CookiesCache WHERE UID = ?",(uid,))
c_data = cursor.fetchall()
elif mode == 2:
cursor = c.execute("SELECT * FROM CookiesCache WHERE MYSID = ?",(uid,))
c_data = cursor.fetchall()
if len(c_data)==0:
cookiesrow = c.execute("SELECT * FROM CookiesTable ORDER BY RANDOM() limit 1")
#r = cookiesrow.fetchall()
#random.randint(0,len(r))
for row2 in cookiesrow:
if mode == 1:
c.execute("INSERT OR IGNORE INTO CookiesCache (Cookies,UID) \
VALUES (?, ?)",(row2[0],uid))
if mode == 2:
c.execute("INSERT OR IGNORE INTO CookiesCache (Cookies,MYSID) \
VALUES (?, ?)",(row2[0],uid))
use = row2[0]
else:
use = c_data[0][2]
if mys:
c.execute("UPDATE CookiesCache SET UID = ? WHERE MYSID=?",(uid,mys))
conn.commit()
conn.close()
return use
async def cookiesDB(Cookies):
conn = sqlite3.connect('ID_DATA.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS CookiesTable
(Cookies TEXT PRIMARY KEY NOT NULL);''')
c.execute("INSERT OR IGNORE INTO CookiesTable (Cookies) \
VALUES (?)",(Cookies,))
conn.commit()
conn.close()