mirror of
https://gitee.com/bookshelfplus/bookshelfplus
synced 2025-09-01 22:53:29 +08:00
删除adminUploadHelper
This commit is contained in:
6
utils/adminUploadHelper/.gitignore
vendored
6
utils/adminUploadHelper/.gitignore
vendored
@@ -1,6 +0,0 @@
|
|||||||
output/*
|
|
||||||
*.pdf
|
|
||||||
*.png
|
|
||||||
*.zip
|
|
||||||
*.json
|
|
||||||
*.bak
|
|
@@ -1,143 +0,0 @@
|
|||||||
# 书栖网 电子书打包工具
|
|
||||||
|
|
||||||
# 获取系统命令行参数
|
|
||||||
import sys
|
|
||||||
# 获取当前目录
|
|
||||||
import os
|
|
||||||
# 压缩文件
|
|
||||||
import zipfile
|
|
||||||
# 计算哈希
|
|
||||||
import hashlib
|
|
||||||
# 获取文档缩略图
|
|
||||||
import fitz
|
|
||||||
# 写入JSON文件
|
|
||||||
import json
|
|
||||||
|
|
||||||
def get_filePath_fileName_fileExt(fileUrl):
|
|
||||||
"""
|
|
||||||
获取文件路径, 文件名, 后缀名
|
|
||||||
:param fileUrl:
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
filepath, tmpfilename = os.path.split(fileUrl)
|
|
||||||
shotname, extension = os.path.splitext(tmpfilename)
|
|
||||||
return filepath, shotname, extension
|
|
||||||
|
|
||||||
def get_fileName(fileUrl):
|
|
||||||
"""
|
|
||||||
获取文件名
|
|
||||||
:param fileUrl:
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
return os.path.basename(fileUrl)
|
|
||||||
|
|
||||||
def pack(filename, zipFileName):
|
|
||||||
f = zipfile.ZipFile(zipFileName, 'w', zipfile.ZIP_DEFLATED)
|
|
||||||
f.write(filename, get_fileName(filename))
|
|
||||||
f.write("书栖网 bookshelf.plus.txt")
|
|
||||||
f.close()
|
|
||||||
|
|
||||||
def CalcSha1(filepath):
|
|
||||||
with open(filepath,'rb') as f:
|
|
||||||
sha1obj = hashlib.sha1()
|
|
||||||
sha1obj.update(f.read())
|
|
||||||
hash = sha1obj.hexdigest()
|
|
||||||
print(hash)
|
|
||||||
return hash
|
|
||||||
|
|
||||||
def getCover(file_name, saveName):
|
|
||||||
"""
|
|
||||||
获取封面
|
|
||||||
:param filepath:
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
cover = ""
|
|
||||||
try:
|
|
||||||
if '.pdf' not in file_name:
|
|
||||||
print("此文件非PDF文件")
|
|
||||||
return None
|
|
||||||
# 打开PDF文件,生成一个对象
|
|
||||||
doc = fitz.open(file_name)
|
|
||||||
if doc.pageCount > 1:
|
|
||||||
page = doc[0]
|
|
||||||
rotate = int(0)
|
|
||||||
# 每个尺寸的缩放系数为2,这将为我们生成分辨率提高四倍的图像。
|
|
||||||
zoom_x = 2.0
|
|
||||||
zoom_y = 2.0
|
|
||||||
trans = fitz.Matrix(zoom_x, zoom_y).prerotate(rotate)
|
|
||||||
pm = page.get_pixmap(matrix=trans, alpha=False)
|
|
||||||
# 保存路径
|
|
||||||
pm.save(saveName)
|
|
||||||
# pm.save('%s.png' % get_filePath_fileName_fileExt(file_name)[1])
|
|
||||||
print("完成")
|
|
||||||
return doc.pageCount
|
|
||||||
else:
|
|
||||||
return None
|
|
||||||
except Exception as e:
|
|
||||||
print(e)
|
|
||||||
|
|
||||||
# 字节bytes转化kb\m\g
|
|
||||||
def formatSize(bytes):
|
|
||||||
try:
|
|
||||||
bytes = float(bytes)
|
|
||||||
kb = bytes / 1024
|
|
||||||
except:
|
|
||||||
print("传入的字节格式不对")
|
|
||||||
return "Error"
|
|
||||||
|
|
||||||
if kb >= 1024:
|
|
||||||
M = kb / 1024
|
|
||||||
if M >= 1024:
|
|
||||||
G = M / 1024
|
|
||||||
return "%fG" % (G)
|
|
||||||
else:
|
|
||||||
return "%fM" % (M)
|
|
||||||
else:
|
|
||||||
return "%fkb" % (kb)
|
|
||||||
|
|
||||||
if __name__=='__main__':
|
|
||||||
print("脚本名", sys.argv[0])
|
|
||||||
print("当前文件夹", os.getcwd())
|
|
||||||
if len(sys.argv) < 2:
|
|
||||||
print("请拖入文件!")
|
|
||||||
input("按回车键继续...")
|
|
||||||
exit
|
|
||||||
elif len(sys.argv) > 2:
|
|
||||||
print("只能拖入一个文件!")
|
|
||||||
input("按回车键继续...")
|
|
||||||
exit
|
|
||||||
|
|
||||||
if not os.path.exists("output"):
|
|
||||||
os.mkdir("output")
|
|
||||||
|
|
||||||
# 文件名
|
|
||||||
filename = sys.argv[1]
|
|
||||||
print(get_fileName(filename), filename)
|
|
||||||
hash = CalcSha1(filename)
|
|
||||||
|
|
||||||
# 压缩文件
|
|
||||||
zipFileName = "output/"+"zipFile.zip"
|
|
||||||
pack(filename, zipFileName)
|
|
||||||
os.rename(zipFileName, "output/"+hash+".zip")
|
|
||||||
|
|
||||||
# 页数
|
|
||||||
pageCount = None
|
|
||||||
# 封面
|
|
||||||
if '.pdf' in sys.argv[1]:
|
|
||||||
# 单个文件尝试获取封面
|
|
||||||
pdfFile = sys.argv[1]
|
|
||||||
pageCount = getCover(pdfFile, "output/"+hash+".png")
|
|
||||||
|
|
||||||
# 文件大小
|
|
||||||
fileSize = os.path.getsize(filename)
|
|
||||||
|
|
||||||
# JSON
|
|
||||||
result = {
|
|
||||||
'name': get_fileName(filename),
|
|
||||||
"pageCount": pageCount,
|
|
||||||
'size': fileSize,
|
|
||||||
'size_format': formatSize(fileSize)
|
|
||||||
}
|
|
||||||
with open("output/"+hash+".json", 'w') as f:
|
|
||||||
json.dump(result, f)
|
|
||||||
input()
|
|
@@ -1,13 +0,0 @@
|
|||||||
[书栖网] 一个完全免费无门槛的计算机类电子书下载网站
|
|
||||||
|
|
||||||
本电子书由书栖网收集整理。我们承诺永远免费,不设置关注公众号等下载门槛,也不接受打赏。
|
|
||||||
|
|
||||||
书籍收集自互联网,由于电子书数量较多,整理时难免有所疏漏。我们无意侵犯他人的合法权益,如不申侵犯了您的权益,请发送邮件至 admin@only4.work 并提供相关权益证明材料,我们将第一时间下架相应资源。
|
|
||||||
|
|
||||||
书栖网由程序员小墨个人开发,网站已开源,如果对你有帮助,欢迎前往仓库点个Star,你的支持是我们前行的动力!
|
|
||||||
GitHub: https://github.com/bookshelfplus/bookshelfplus
|
|
||||||
Gitee: https://gitee.com/bookshelfplus/bookshelfplus
|
|
||||||
我的B站: https://space.bilibili.com/457109942
|
|
||||||
|
|
||||||
书栖网 bookshelf.plus
|
|
||||||
网站始建于 2022.04
|
|
Reference in New Issue
Block a user