54 lines
2.1 KiB
Python
54 lines
2.1 KiB
Python
from src.common.naming import FileNaming
|
||
from src.common.ComicInfo import ImageInfo
|
||
from zipfile import ZipFile
|
||
from datetime import datetime
|
||
import os
|
||
|
||
class test:
|
||
|
||
def clean_cbz(self):
|
||
dir_path = "/mnt/Comics/CBZ/rm_comic"
|
||
for dir in os.listdir(dir_path):
|
||
c_dir = os.path.join(dir_path, dir)
|
||
if os.path.isdir(c_dir):
|
||
files = list(FileNaming.get_filenames_optimized(c_dir, ext_filter=['.CBZ']))
|
||
for file in files:
|
||
size = os.path.getsize(file)
|
||
if size < 3000:
|
||
os.remove(file)
|
||
print(f"已删除{file}")
|
||
|
||
def _clean_old_cbz(self, cbz_path):
|
||
m_time = datetime.fromtimestamp(os.path.getmtime(cbz_path))
|
||
str_strftime = '%Y%m%d'
|
||
zip_time = m_time.strftime(str_strftime)
|
||
|
||
with ZipFile(cbz_path, 'r') as zip_ref:
|
||
old_img = 0
|
||
for file_info in zip_ref.infolist():
|
||
# 获取日期时间信息,格式为 (year, month, day, hour, minute, second)
|
||
date_time = file_info.date_time
|
||
# 将日期时间元组转换为datetime对象
|
||
dt = datetime(*date_time)
|
||
# 格式化输出日期时间,例如:YYYY-MM-DD HH:MM:SS
|
||
file_date_time = dt.strftime(str_strftime)
|
||
# 一周内的图片跳过
|
||
if int(zip_time) - int(file_date_time) > 7:
|
||
#print(f"Clear Filename: {file_info.filename}, zip: {cbz_path}")
|
||
old_img += 1
|
||
|
||
if old_img > 0:
|
||
#os.remove(cbz_path)
|
||
print(f"remove cbz {cbz_path}")
|
||
|
||
def clean_old_cbz(self):
|
||
dir_path = "/mnt/Comics/CBZ/rm_comic"
|
||
for dir in os.listdir(dir_path):
|
||
c_dir = os.path.join(dir_path, dir)
|
||
if os.path.isdir(c_dir):
|
||
files = list(FileNaming.get_filenames_optimized(c_dir, ext_filter=['.CBZ']))
|
||
for file in files:
|
||
self._clean_old_cbz(file)
|
||
|
||
if __name__ == "__main__":
|
||
test().clean_old_cbz() |