16 Commits

Author SHA1 Message Date
yw1573 63a7cb347b fix: cancel parse requests when modal is closed
点击取消解析时,清空 PQueue 队列并中断正在进行的请求。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 09:11:10 +08:00
yw1573 2a3dc99a7a refactor: remove showFile API for Docker compatibility
Docker 容器内无法调用宿主机文件管理器,移除 showFile 接口:
- 移除后端 showFile 路由和处理函数
- 移除前端 showFile 调用和"打开文件位置"按钮
- 移除 opening 状态和 FolderSVG 组件

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 18:11:56 +08:00
yw1573 be925abfdb perf: increase download and merge concurrency to 5
将并发下载数和合并数从 3 提升到 5,加快批量任务处理速度。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 18:05:17 +08:00
yw1573 c8ee9685b9 perf: optimize batch task creation with single transaction
批量创建任务使用单事务数据库插入,显著提升性能。
移除任务列表的批量取消/删除进度显示(批处理接口无意义)。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 17:24:06 +08:00
yw1573 a0ef988bd5 fix: resolve critical issues and improve task management
- Fix path traversal vulnerability in downloadVideo handler by adding
  download directory whitelist validation
- Add graceful shutdown with signal handling for task persistence
- Fix division by zero panic in progressBar.percent() when total <= 0
- Add GetDB() function that returns error instead of using log.Fatal
- Change deleteTask to only remove database records, preserve downloaded files
- Add paused status for interrupted tasks on shutdown

Co-Authored-By: Claude
2026-04-09 16:51:22 +08:00
yw1573 86caa5765d feat: create season subdirectory when downloading season
下载合集时创建以合集标题命名的子目录:
- 前端 TaskInitData 增加 seasonTitle 字段
- 前端下载时传递合集 seasonTitle
- 后端 TaskInitOption 增加 SeasonTitle 字段
- 后端创建任务时根据 seasonTitle 创建子目录

Co-Authored-By: AI
2026-04-09 11:46:32 +08:00
yw1573 60b8a98a74 fix: cleanup temp files when task is cancelled
任务取消时清理临时文件(.audio/.video),避免残留

Co-Authored-By: AI
2026-04-09 11:20:14 +08:00
yw1573 36d089705a fix: remove duplicate timestamp in log output
禁用 log 默认时间戳,避免日志输出重复时间

Co-Authored-By: AI
2026-04-09 11:06:17 +08:00
yw1573 9b73ea9b68 feat: add structured logging system for Docker deployment
添加日志系统,支持 Docker logs 捕获:
- 新增 logger 模块,提供 Info/Warn/Error/Debug 等日志级别
- 任务生命周期日志:创建、开始、完成、失败、取消
- 用户登录/登出日志
- 服务启动和 FFmpeg 状态日志
- 数据库初始化日志

日志格式:[时间] [级别] 消息,便于 Docker logs 查看

Co-Authored-By: AI
2026-04-09 11:02:33 +08:00
yw1573 04e1045c4f refactor: remove shutdown button for Docker deployment
Docker 容器化部署是长期运行的服务,移除关闭服务按钮:
- 删除前端 header.ts 中的关闭按钮
- 删除 main.go 中的 /api/shutdown 接口
- 删除 router.go 中的 quit 路由和处理函数

Co-Authored-By: AI
2026-04-09 10:46:29 +08:00
yw1573 e8f71b04ac feat(task): add batch delete and cancel API support
支持批量删除和取消任务的接口:
- deleteTask 接口支持 POST 方式传入 ids 数组
- cancelTask 接口支持 POST 方式传入 ids 数组
- 前端批量操作改为调用批量接口,减少请求数量

Co-Authored-By: AI
2026-04-07 17:38:52 +08:00
yw1573 81df437b2c feat: add task cancellation support
- Add CancelTask function to cancel running/waiting tasks
- Add /api/cancelTask endpoint
- Add cancel button in task list for running/waiting tasks
- Check cancellation status during download and merge operations

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 16:40:27 +08:00
yw1573 1b23d813a8 perf: optimize createTask by moving GetCurrentFolder outside loop
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 16:16:49 +08:00
yw1573 ca6d6db708 fix: create download directory before starting task
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 15:30:53 +08:00
yw1573 eb662a8b66 feat: add FFmpeg status check and shutdown button
- FFmpeg check no longer blocks server startup
- Add /api/checkFFmpeg endpoint to query FFmpeg availability
- Add /api/shutdown endpoint to gracefully stop the server
- Add FFmpeg status indicator in web header
- Add shutdown button in web interface
- Move static files output to cmd/bilidown/static for embedding
- Update .gitignore to exclude cmd/bilidown/static

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 15:27:55 +08:00
yw1573 dd8eaef97d refactor: restructure project to standard Go layout
- Reorganize code into cmd/bilidown and internal/ packages
- Rename client/ to web/ for frontend source
- Remove systray dependency for headless web service
- Embed static files into binary using go:embed
- Update import paths to use internal/ prefix
- Update .gitignore with common patterns

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 17:21:49 +08:00