MoviePilot项目历史记录删除功能异常分析
MoviePilot NAS媒体库自动化管理工具 项目地址: https://gitcode.com/gh_mirrors/mo/MoviePilot
问题概述
MoviePilot v2.0.0-beta版本中,用户在使用历史记录功能时发现了一个关键缺陷:系统无法正确删除源文件和媒体文件,仅能删除历史记录本身。这一问题影响了用户对下载内容的管理能力,特别是在需要清理存储空间时。
技术背景
MoviePilot是一个媒体管理工具,其历史记录功能设计用于跟踪和管理用户下载的媒体文件。正常情况下,该功能应提供三种删除选项:
- 仅删除历史记录
- 删除历史记录及媒体库文件
- 删除历史记录、媒体库文件及源文件
问题表现
在v2.0.0-beta版本中,当用户尝试删除源文件时,系统会抛出错误。从用户提供的截图可以看到,删除操作界面中后三个选项显示为"undefined",表明前端未能正确获取或显示这些选项。
系统日志显示,当用户尝试删除操作时,程序执行了以下模块:
- delete_file
- get_file_item
- list_files
但显然这些模块未能正确处理删除源文件的请求。
关联问题
有用户报告了另一个相关现象:当使用软链接方式进行文件整理时,系统实际上执行的是复制操作而非创建软链接。这表明文件管理模块可能存在更深层次的问题。
数据库状态异常
进一步调查发现,即使文件被手动删除后,数据库downloadfiles表中的状态字段(state)仍保持为1(表示文件存在),而未被更新为0(表示文件已删除)。这表明数据库状态同步机制存在缺陷。
解决方案建议
- 前端修复:确保删除选项正确显示,避免出现"undefined"
- 后端增强:
- 完善文件删除逻辑
- 确保数据库状态与实际文件状态同步
- 文件整理功能:修复软链接实现,确保按用户选择的方式(复制/软链接)正确处理文件
总结
MoviePilot的历史记录删除功能异常是一个涉及前后端联动的复杂问题。开发团队需要全面检查文件管理模块,包括前端显示、后端处理逻辑以及数据库状态同步机制,才能彻底解决这一问题。对于用户而言,在问题修复前,建议通过文件系统手动管理文件,或回退到稳定版本使用。
MoviePilot NAS媒体库自动化管理工具 项目地址: https://gitcode.com/gh_mirrors/mo/MoviePilot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考