Skip to content

Releases: ywz978020607/mindoc

功能更新: 支持无用附件扫描清理和主题切换

Choose a tag to compare

mindoc新功能: 支持附件清理和主题切换
此处发布win10版本,其他版本请自行编译(ywz分支)

image

image

清理无用附件,os文件清理和附件管理表双向清理

Choose a tag to compare

@ywz978020607 ywz978020607 released this 18 Dec 09:34

将此python文件放于db同级,执行python xx.py即可

import sqlite3
import os, glob

conn = sqlite3.connect("mindoc.db")
cur = conn.cursor()         #通过建立数据库游标对象,准备读写操作


cmd = """
SELECT 
    att.http_path
FROM
    md_attachment AS att
WHERE (att.document_id != 0 OR (NOT EXISTS( SELECT 1 FROM md_documents WHERE markdown LIKE ("%" || att.http_path || "%"))))
AND (att.document_id = 0 OR (NOT EXISTS( SELECT 1 FROM md_documents WHERE att.document_id = document_id )))
"""
cur.execute(cmd)
file_list = cur.fetchall()
for file_item in file_list:
    item_path = file_item[0]
    # 1. 删除os文件
    if os.path.exists(os.path.join("..", item_path[1:])):
        os.remove(os.path.join("..", item_path[1:]))
    
    # 2. 查询os是否删除成功,成功则删除附件记录
    if not os.path.exists(os.path.join("..", item_path[1:])):
        cmd = """
        delete
        from md_attachment
        WHERE http_path = '{}'
        """.format(item_path)
        cur.execute(cmd)
conn.commit()   #保存提交,确保数据保存成功

conn.close()        #关闭与数据库的连接