ComiPy/db.py

83 lines
1.6 KiB
Python

import sqlite3, configparser, shortuuid
config = configparser.ConfigParser()
config.read("./conf/app.ini")
def getConn():
return sqlite3.connect(config.get("database", "path"))
def init():
conn = getConn()
c = conn.cursor()
c.execute(
"""
CREATE TABLE IF NOT EXISTS Metadata (
num INTEGER PRIMARY KEY AUTOINCREMENT,
id TEXT NOT NULL,
filename TEXT NOT NULL
);
"""
)
conn.commit()
conn.close()
# 查找文件信息
def searchByid(id: str):
conn = getConn()
c = conn.cursor()
cursor = c.execute("SELECT * FROM Metadata WHERE id = ?", (id,))
out = []
for row in cursor:
out.append(row)
conn.close()
return out
# 查找文件信息
def searchByFilename(filename: str):
conn = getConn()
c = conn.cursor()
cursor = c.execute("SELECT * FROM Metadata WHERE filename = ?", (filename,))
out = []
for row in cursor:
out.append(row)
conn.close()
return out
# 在数据库中添加一个新的文件记录
def newFile(filename: str):
suuid = shortuuid.random(8)
conn = getConn()
c = conn.cursor()
c.execute(
"""
INSERT INTO Metadata
(id, filename)
VALUES
(?, ?);
""",
(suuid, filename),
)
conn.commit()
conn.close()
return suuid
# 获取文件元数据
def getMetadata(form: int, num: int):
conn = getConn()
c = conn.cursor()
cursor = c.execute(
"SELECT * FROM Metadata ORDER BY num desc LIMIT ?, ?", (form, num)
)
out = []
for row in cursor:
out.append(list(row))
conn.close()
return out