修复bug 和 添加book详细页

This commit is contained in:
Kakune55 2024-04-15 16:16:01 +08:00
parent 79beba473e
commit a434e44f7f
6 changed files with 110 additions and 11 deletions

View File

@ -1,4 +1,4 @@
import shortuuid
import shortuuid, time
import db.util as util
@ -27,18 +27,18 @@ def searchByname(filename: str):
# 在数据库中添加一个新的文件记录
def new(filename: str):
def new(filename: str, pagenumber:int):
suuid = shortuuid.random(8)
conn = util.getConn()
c = conn.cursor()
c.execute(
"""
INSERT INTO Metadata
(id, filename)
(id, filename, pagenumber, inputtime)
VALUES
(?, ?, ?);
(?, ?, ?, ?);
""",
(suuid, filename),
(suuid, filename, pagenumber, int(time.time())),
)
conn.commit()
conn.close()

View File

@ -16,7 +16,9 @@ def init():
CREATE TABLE IF NOT EXISTS Metadata (
num INTEGER PRIMARY KEY AUTOINCREMENT,
id TEXT NOT NULL,
filename TEXT NOT NULL
filename TEXT NOT NULL,
pagenumber INT NOT NULL,
inputtime INT NOT NULL
);
"""
)

View File

@ -24,7 +24,7 @@ def auotLoadFile():
with zipfile.ZipFile(
config.get("file", "inputdir") + "/" + item, "r"
) as zip_ref:
db.file.new(item) # 添加数据库记录 移动到存储
db.file.new(item, len(zip_ref.namelist())) # 添加数据库记录 移动到存储
shutil.move(
config.get("file", "inputdir") + "/" + item,
config.get("file", "storedir") + "/" + item,

82
templates/book.html Normal file
View File

@ -0,0 +1,82 @@
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="/static/css/bootstrap.min.css" rel="stylesheet">
<title>详情页面</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
}
.container {
display: flex;
flex-direction: column;
align-items: center;
}
.header {
display: flex;
justify-content: space-between;
width: 80%;
margin-top: 20px;
}
.movie-poster {
flex: 1;
margin-right: 20px;
}
.movie-details {
flex: 2;
}
.movie-details h1 {
font-size: 24px;
margin-bottom: 10px;
}
.movie-details p {
font-size: 16px;
margin-bottom: 10px;
}
.comments-section {
width: 80%;
margin-top: 20px;
}
.comment {
border: 1px solid #ccc;
padding: 10px;
margin-bottom: 10px;
}
.comment p {
margin: 0;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<div class="movie-poster">
<!-- 封面 -->
<img src="/api/img/{{ id }}/1?mini=yes" alt="封面" style="max-width: 100%;">
</div>
<div class="movie-details">
<!-- 详细信息 -->
<h1>{{ data[0][2] }}</h1>
<h2>时间: {{time}}</h2>
<h2>暂无评价</h2>
<button onclick="window.location.href='/view/{{ id }}'">在线浏览</button>
</div>
</div>
<div class="comments-section">
<h2>评论区</h2>
<!-- 评论 -->
<div class="comment">
<p>用户ALorem ipsum dolor sit amet consectetur adipisicing elit. Nobis, quam!</p>
</div>
<div class="comment">
<p>用户BLorem, ipsum dolor sit amet consectetur adipisicing elit. Aut sunt tempore architecto minus, cum mollitia voluptatibus repellendus aliquid id reprehenderit.</p>
</div>
<!-- 在此添加更多评论 -->
</div>
</div>
</body>
</html>

View File

@ -27,6 +27,7 @@
<div class="alert alert-success mt-3 d-none" id="uploadSuccess" role="alert">
文件上传成功!
<button onclick="window.location.href='/'">返回首页</button>
</div>
</div>

View File

@ -1,7 +1,7 @@
from flask import *
from flask import Blueprint
import configparser
import db.file , file
import configparser, time
import db.file, file
page_bp = Blueprint("page_bp", __name__)
@ -15,6 +15,8 @@ def overview(page): # 概览
if request.cookies.get("islogin") is None:
return redirect("/")
metaDataList = db.file.getMetadata((page - 1) * 20, page * 20)
for item in metaDataList:
item[2] = item[2][:-4] #去除文件扩展名
if page <= 3:
lastPageList = range(1, page)
else:
@ -36,14 +38,26 @@ def book(bookid): # 接口
data = db.file.searchByid(bookid)
if data == "":
return abort(404)
return render_template("view.html", id=bookid, index=range(1, data[0][3]))
data[0] = list(data[0])
data[0][2] = data[0][2][0:-4] # 把文件扩展名去掉
local_time = time.localtime(float(data[0][4]))
return render_template(
"book.html",
id=bookid,
data=data,
time=time.strftime("%Y-%m-%d %H:%M:%S",local_time),
)
@page_bp.route("/view/<bookid>")
def view(bookid): # 接口
if request.cookies.get("islogin") is None:
return abort(403)
return bookid
data = db.file.searchByid(bookid)
if data == "":
return abort(404)
return render_template("view.html", id=bookid, index=range(1, data[0][3]))
@page_bp.route("/upload", methods=["GET", "POST"]) # 文件上传