feat: 增加转移覆盖模式配置

This commit is contained in:
Shurelol 2023-10-26 15:24:39 +08:00
parent 6415fd9286
commit 9a810f440d
3 changed files with 18 additions and 3 deletions

View File

@ -199,6 +199,8 @@ MoviePilot需要配套下载器和媒体服务器配合使用。
- **BIG_MEMORY_MODE** 大内存模式,默认为`false`,开启后会占用更多的内存,但响应速度会更快 - **BIG_MEMORY_MODE** 大内存模式,默认为`false`,开启后会占用更多的内存,但响应速度会更快
- **OVERWRITE_MODE** 转移覆盖模式,默认为`nerver`,支持`nerver`/`size`/`always`,分别表示`不覆盖`/`根据大小覆盖(大覆盖小)`/`总是覆盖`
- **MOVIE_RENAME_FORMAT** 电影重命名格式 - **MOVIE_RENAME_FORMAT** 电影重命名格式
`MOVIE_RENAME_FORMAT`支持的配置项: `MOVIE_RENAME_FORMAT`支持的配置项:

View File

@ -204,6 +204,8 @@ class Settings(BaseSettings):
"/Season {{season}}" \ "/Season {{season}}" \
"/{{title}} - {{season_episode}}{% if part %}-{{part}}{% endif %}{% if episode %} - 第 {{episode}} 集{% endif %}" \ "/{{title}} - {{season_episode}}{% if part %}-{{part}}{% endif %}{% if episode %} - 第 {{episode}} 集{% endif %}" \
"{{fileExt}}" "{{fileExt}}"
# 转移时覆盖模式
OVERWRITE_MODE: str = "nerver"
# 大内存模式 # 大内存模式
BIG_MEMORY_MODE: bool = False BIG_MEMORY_MODE: bool = False

View File

@ -468,9 +468,20 @@ class FileTransferModule(_ModuleBase):
# 判断是否要覆盖 # 判断是否要覆盖
overflag = False overflag = False
if new_file.exists(): if new_file.exists():
if new_file.stat().st_size < in_path.stat().st_size: # 目标文件已存在
logger.info(f"目标文件已存在,但文件大小更小,将覆盖:{new_file}") match settings.OVERWRITE_MODE:
overflag = True case 'always':
overflag = True
logger.info(f"目标文件已存在,将被覆盖:{new_file}")
case 'size':
if new_file.stat().st_size < in_path.stat().st_size:
logger.info(f"目标文件已存在,但文件大小更小,将被覆盖:{new_file}")
overflag = True
case 'never':
overflag = False
logger.info(f"目标文件已存在,停止转移")
case _:
pass
# 原文件大小 # 原文件大小
file_size = in_path.stat().st_size file_size = in_path.stat().st_size
# 转移文件 # 转移文件