Releases: linyuan0213/nexus-media
Releases · linyuan0213/nexus-media
Nexus Media v4.1.3
下载事件 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/eventsSSE 端点,权限download:view
站点资源内置索引器
/api/download/indexers始终返回内置索引器站点列表,不受索引器切换影响IndexerService新增get_builtin_user_indexers()方法
修复 MySQL NOT NULL 兼容性
CONFIG_SITE.EXCLUDE、SIZE添加 ORM 默认值,修复新增站点 500SITE_USER_INFO_STATS.JOIN_AT、EXT_INFO等列添加 ORM 默认值,修复统计更新 500site_service.update_site异常分支添加log.error和msg,不再吞掉错误信息site_repository.update_site_user_statistics中JOIN_AT=None时写入空字符串
Nexus Media v4.1.2
刷流修复
- 缓存线程安全:
_torrents_cache加threading.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.0text()drop_tableSQL 注入修复- 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
部署修复
- 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
部署优化
- 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_repositoryN+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改为单次hgetall;MemoryCacheAdapter仅在存在监听器时触发CacheEvent,避免高频空转 - 消息队列:
MessageQueueFactory单例实现线程安全,避免重复创建队列 - 下载完成监控:
DownloadMonitor改为增量检查,后续轮询只拉取新增任务;qBittorrent 使用sync/maindata增量接口获取 completed 任务,减少数据传输与 per-torrent API 调用 - 图片代理: 下载逻辑全面异步化,使用
AsyncHttpClient连接池与asyncio.gather并发下载,替代ThreadPoolExecutor - JSON 序列化: 高频路径统一使用
JsonUtils(orjson为主,stdlib 为 fallback)
问题修复
- EventBus 注册: 修复 DI 容器创建的
EventBus与@on_eventhandler 注册脱节的问题;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;启用httpxHTTP/2 - 新增 Alembic 迁移
e9d9eaed8d5c补充查询索引 - 安全扫描:
just bandit/just safety均通过 - 测试: 1195 个测试通过,覆盖率
36%;新增事件系统异常隔离与异步投递测试
v3.7.0
新增功能
- 支持迅雷下载器
- 支持Rousi站点(API v1接口)
- 新增自动重启插件
- 新增消息模板
- 搜索结果支持分页浏览(输入 n/p 翻页)
- 支持直接从搜索结果中选择下载
功能优化
- 优化数据库性能(使用连接池、WAL模式)
- 优化HTTP工具类(添加连接池和重试策略)
- 优化自动签到插件(跳过BT站点)
- 优化馒头站点仿真登录
- 优化Web界面交互体验
- 添加消息模板配置支持
问题修复
- 修复Aria2状态显示拼写错误
- 修复下载器返回值格式问题
- 修复authorization请求头处理问题
v3.6.9
新增功能
- 支持馒头仿真登录
- 支持自由农场签到
- 刷流支持下载付费种子
功能优化
- 签到流程优化
- 增加仿真签到延时
- 优化搜索速度
- 重启时重置订阅状态
问题修复
- 修复微信插件初始化问题
- 修复观众做种数据
- 修复飞牛图片显示问题
- 修复猫站签到
- 修复chrome服务找不到一直报错
- 修复transmission状态显示
- 修复http工具类
- 修复tags没有配置时无法添加任务
- 修复观众下载失败
- 修复种子下载页面报错
v3.6.8
新增功能
- 支持飞牛媒体服务器
功能优化
- 憨憨支持H&R
- 优化调度
问题修复
- 修复下载器标签排序问题
- cf优选插件下载路径错误
- 订阅下载重复
- 黑名单条目无法删除
v3.6.7
新增功能
- 新增PTGTK站点支持
- Server酱支持TAG和图片
- 增加TMDB黑名单功能
功能优化
- 优化索引器搜索速度
- TMDB缓存优化
- 站点维护增加图标LOGO
问题修复
- 修复订阅搜索暂停问题
- 修复HDSky生成RSS失败
v3.2.6
fix: bugfix
v3.2.5
fix: m-team 促销显示