ComiPy/db/comments.py

98 lines
2.5 KiB
Python

import time
import db.util as util
# 查找评论
def getById(id: str):
"通过id查找所有评论"
conn = util.getConn()
c = conn.cursor()
cursor = c.execute("SELECT * FROM Comments WHERE id = ?", (id,))
return cursor.fetchone()
# 查找评论
def listByBookid(id: str):
"通过bookid查找所有评论"
conn = util.getConn()
c = conn.cursor()
cursor = c.execute("SELECT * FROM Comments WHERE bookid = ? ORDER BY time desc", (id,))
out = []
for row in cursor:
out.append(row)
conn.close()
return out
# 获取综合评分
def getScore(bookid: str):
"获取综合评分 返回一个字典 字典有两个key like和dislike分别记录不同评论的个数"
conn = util.getConn()
c = conn.cursor()
cursor = c.execute("SELECT * FROM Comments WHERE bookid = ? ", (bookid,))
num={'like':0,'dislike':0}
for row in cursor:
if row[4] == "like":
num["like"]+=1
elif row[4] == "dislike":
num["dislike"]+=1
conn.close()
return num
# 查找评论
def searchByUid(uid: str):
"通过用户查找所有评论"
conn = util.getConn()
c = conn.cursor()
cursor = c.execute("SELECT * FROM Comments WHERE from_uid = ? ORDER BY time desc", (uid,))
out = []
for row in cursor:
out.append(row)
conn.close()
return out
# 查找评论
def searchByAll(uid: str,bookid:str):
"通过用户和BookID查找所有评论"
conn = util.getConn()
c = conn.cursor()
cursor = c.execute("SELECT * FROM Comments WHERE from_uid = ? AND bookid= ? ORDER BY time desc", (uid,bookid))
out = []
for row in cursor:
out.append(row)
conn.close()
return out
# 在数据库中添加一个新的文件记录
def new(bookid: str, from_uid: int, score: str, content=""):
"添加一条新评论 score字段可选值为[like,none,dislike] content字段非必填"
conn = util.getConn()
c = conn.cursor()
c.execute(
"""
INSERT INTO Comments
(time, bookid, from_uid, score, content)
VALUES
(?, ?, ?, ?,?);
""",
(int(time.time()), bookid, from_uid, score, content),
)
conn.commit()
conn.close()
return
# 查找评论
def remove(id:int)->bool:
"通过id删除评论"
conn = util.getConn()
c = conn.cursor()
c.execute("DELETE FROM Comments WHERE id = ?", (id,))
conn.commit()
changes = conn.total_changes
conn.close()
if changes == 0:
return False
return True