Skip to content

Releases: linyuan0213/nexus-media

Nexus Media v4.1.3

18 Jun 13:42

Choose a tag to compare

下载事件 SSE 推送

  • DownloadStartedPayload 增加 download_id 字段
  • DOWNLOAD_STARTED 事件从流水线入口移至 _stage_add 成功后发布,避免 fetch/resolve 失败时误报
  • 新增 download_event_queue 模块级 queue.Queue 作为事件通道
  • handler 推送 download.started / download.failed / download.completed 事件到队列
  • 新增 GET /api/download/events SSE 端点,权限 download:view

站点资源内置索引器

  • /api/download/indexers 始终返回内置索引器站点列表,不受索引器切换影响
  • IndexerService 新增 get_builtin_user_indexers() 方法

修复 MySQL NOT NULL 兼容性

  • CONFIG_SITE.EXCLUDESIZE 添加 ORM 默认值,修复新增站点 500
  • SITE_USER_INFO_STATS.JOIN_ATEXT_INFO 等列添加 ORM 默认值,修复统计更新 500
  • site_service.update_site 异常分支添加 log.errormsg,不再吞掉错误信息
  • site_repository.update_site_user_statisticsJOIN_AT=None 时写入空字符串

Nexus Media v4.1.2

16 Jun 13:51

Choose a tag to compare

刷流修复

  • 缓存线程安全:_torrents_cachethreading.Lock 防止并发下载重复种子
  • 删种前用 get_torrents 确认种子离开下载器,避免边缘状态误删记录导致孤儿
  • 删种失败不再标记为已删除
  • 新任务不触发全量 start_service(),缓存在 delete_brushtask 未命中时回退查 DB

订阅修复

  • RSS 自动订阅事件处理器已注册到 DI,功能恢复可用
  • 删除订阅时同步清理 SubscribeTorrents 种子记录,重新订阅可正常下载
  • truncate_rss_episodes 只清除非活跃订阅的剧集进度
  • TOCTOU 并发防重复插入订阅
  • 状态字符串统一替换为 SubscribeState 枚举
  • 状态设为 SEARCHING 移到协调锁之后,消除异常窗口

测试修复

  • 测试配置改用临时文件 + SQLite,不再依赖外部 MySQL 服务器

数据库兼容性

  • 14 处 String=Integer 类型比较加 cast 适配 PostgreSQL
  • MySQL ENCLOSURE 索引加前缀长度,避免 VARCHAR(8192) 超限
  • ConfigRepository.execute 适配 SQLAlchemy 2.0 text()
  • drop_table SQL 注入修复
  • SQL 适配器 MySQL 双引号转反引号

其他修复

  • get_secret_key 保存后 reload 确保同次运行不生成多个密钥
  • _brush_tasks 先停旧 job 再 pop,消除竞态窗口
  • auth router 清除重复标签,prefix 统一到 include_router
  • 清理绞杀式迁移相关注释
  • 后端 nginx 加兜底路由代理 /docs 等非 API 路径

依赖

  • python-jose 替换为 PyJWT[crypto],消除 ecdsa 安全告警

Nexus Media v4.1.1

16 Jun 00:53

Choose a tag to compare

部署修复

  • ConfigReloader 重构:改为工厂模式重建实例,而非 reset(),tmdb_client 热重载时清除 Redis 缓存
  • settings.save 合并:修复保存时只保留 database 节点导致其他配置(TMDB key 等)丢失
  • 配置保存触发重载:/config/update 自动调用 ConfigReloader.reload()
  • NOGROUP 根治:RedisMessageQueue dispatch 循环幂等创建消费组
  • static 目录持久化:跟随 NEXUS_MEDIA_DATA 落到 /data/static
  • 过滤规则初始化:首次启动从 init_filter.sql 导入默认规则,INSERT OR IGNORE 防覆盖
  • TMDB 异常降级:get_tmdb_new_movies/tvs 捕获异常返回 [],不抛 500

Nexus Media v4.1.0

15 Jun 05:25

Choose a tag to compare

部署优化

  • Docker Compose 三模式部署:支持基础模式(前端+后端+Redis+MySQL/PostgreSQL)、完整模式(+OCR+Chrome)、仅前后端模式(SQLite)
  • 默认基础 MySQL 模式:执行 docker compose up -d 即可启动
  • 统一数据库环境变量:Docker 与代码统一使用 DATABASE__* 格式读取配置
  • Redis 默认命令启动:移除对 ./config/redis.conf 文件挂载的依赖
  • 数据库升级到 MySQL 8.4 / PostgreSQL 17-alpine

性能优化

  • 数据库查询性能: 消除 site_repository / transfer_repository N+1 查询;为 SUBSCRIBE_MOVIES / SUBSCRIBE_TVS / CONFIG_USER_RSS / SITE_BRUSH_TORRENTS / TRANSFER_HISTORY / TRANSFER_UNKNOWN 添加索引;subscribe_repository 用单次 first() 替代 .all() + 循环
  • HTTP 客户端连接池复用: HttpClient / AsyncHttpClient 按配置复用底层 httpx.Client / httpx.AsyncClient,相同代理/头/超时/认证/SSL 配置共享连接池
  • 缓存系统: RedisStore.hgetall 改为单次 hgetallMemoryCacheAdapter 仅在存在监听器时触发 CacheEvent,避免高频空转
  • 消息队列: MessageQueueFactory 单例实现线程安全,避免重复创建队列
  • 下载完成监控: DownloadMonitor 改为增量检查,后续轮询只拉取新增任务;qBittorrent 使用 sync/maindata 增量接口获取 completed 任务,减少数据传输与 per-torrent API 调用
  • 图片代理: 下载逻辑全面异步化,使用 AsyncHttpClient 连接池与 asyncio.gather 并发下载,替代 ThreadPoolExecutor
  • JSON 序列化: 高频路径统一使用 JsonUtilsorjson 为主,stdlib 为 fallback)

问题修复

  • EventBus 注册: 修复 DI 容器创建的 EventBus@on_event handler 注册脱节的问题;SystemLifecycleService 现在从 DI 接收真实 EventBus
  • 认证: 移除 SessionMiddleware 与 session 认证兼容层,API 统一使用 JWT/Token 认证
  • 消息通知图片: 添加诊断日志定位图片丢失问题;修复 _get_script_path 依赖注入错误

依赖与质量

  • 升级 redis / cryptography / pydantic-ai / granian / python-multipart / openai / google-genai / boto3 / beautifulsoup4 / qbittorrent-api / ruff 等依赖
  • 引入 orjson / uvloop;启用 httpx HTTP/2
  • 新增 Alembic 迁移 e9d9eaed8d5c 补充查询索引
  • 安全扫描: just bandit / just safety 均通过
  • 测试: 1195 个测试通过,覆盖率 36%;新增事件系统异常隔离与异步投递测试

v3.7.0

07 Apr 02:28

Choose a tag to compare

新增功能

  • 支持迅雷下载器
  • 支持Rousi站点(API v1接口)
  • 新增自动重启插件
  • 新增消息模板
  • 搜索结果支持分页浏览(输入 n/p 翻页)
  • 支持直接从搜索结果中选择下载

功能优化

  • 优化数据库性能(使用连接池、WAL模式)
  • 优化HTTP工具类(添加连接池和重试策略)
  • 优化自动签到插件(跳过BT站点)
  • 优化馒头站点仿真登录
  • 优化Web界面交互体验
  • 添加消息模板配置支持

问题修复

  • 修复Aria2状态显示拼写错误
  • 修复下载器返回值格式问题
  • 修复authorization请求头处理问题

v3.6.9

16 Dec 01:50

Choose a tag to compare

新增功能

  • 支持馒头仿真登录
  • 支持自由农场签到
  • 刷流支持下载付费种子

功能优化

  • 签到流程优化
  • 增加仿真签到延时
  • 优化搜索速度
  • 重启时重置订阅状态

问题修复

  • 修复微信插件初始化问题
  • 修复观众做种数据
  • 修复飞牛图片显示问题
  • 修复猫站签到
  • 修复chrome服务找不到一直报错
  • 修复transmission状态显示
  • 修复http工具类
  • 修复tags没有配置时无法添加任务
  • 修复观众下载失败
  • 修复种子下载页面报错

v3.6.8

22 Aug 10:23

Choose a tag to compare

新增功能

  • 支持飞牛媒体服务器

功能优化

  • 憨憨支持H&R
  • 优化调度

问题修复

  • 修复下载器标签排序问题
  • cf优选插件下载路径错误
  • 订阅下载重复
  • 黑名单条目无法删除

v3.6.7

01 Jul 14:38

Choose a tag to compare

新增功能

  • 新增PTGTK站点支持
  • Server酱支持TAG和图片
  • 增加TMDB黑名单功能

功能优化

  • 优化索引器搜索速度
  • TMDB缓存优化
  • 站点维护增加图标LOGO

问题修复

  • 修复订阅搜索暂停问题
  • 修复HDSky生成RSS失败

v3.2.6

20 Apr 07:17

Choose a tag to compare

fix: bugfix

v3.2.5

15 Apr 05:53

Choose a tag to compare

fix: m-team 促销显示