mediabot-pt
ce794d1b61
fix: DRATIO 动态分享率默认值合理化,UI 加'要求'二字消除歧义
...
预设默认值: 1.0/2.0/3.0 → 0.3/0.5/0.8
意图: 下载量越大,允许的分享率越低,不是越高
2026-07-08 22:28:03 +08:00
mediabot-pt
6828220c77
fix: nexusphp 脚本 parseUserInfo/sync 正则修复,适配 carpt 实际 HTML
...
1. 上传/下载: 兼容 '上传量:' 等变体
2. 魔力/邀请: 兼容中间有 HTML 链接的情况
3. 做种/下载数: 改为识别 '当前活动' 后的两个数字(NexusPHP 用 img 图标不是文字)
2026-07-08 15:58:58 +08:00
mediabot-pt
223d1c5372
fix: 添加 groovy-xml 依赖,XmlSlurper 在 Apache Groovy 4.x 是独立模块
2026-07-08 15:12:14 +08:00
mediabot-pt
412de70402
fix: GroovyScriptEngine SCRIPT_PREFIX 添加 import groovy.xml.*,修复 XmlSlurper 找不到
2026-07-08 15:02:56 +08:00
mediabot-pt
26a6f64375
fix: 所有默认脚本添加 import groovy.xml.XmlSlurper,nexusphp 补上 download 页面处理
2026-07-08 14:37:29 +08:00
mediabot-pt
2e8d2146c4
feat: 页面配置默认初始化时带预设URL,初次编辑即可直接使用
...
sync → /index.php
signIn → /attendance.php
search → /torrents.php?search={keyword}
download → /download.php?id={id}
rss → /torrentrss.php?rows=10&search={keyword}&search_mode=1&linktype=dl&passkey={passkey}
detail → /details.php?id={id}
2026-07-08 13:30:42 +08:00
mediabot-pt
3041763e44
feat: 页面配置首次编辑时默认初始化所有页面类型,删除不需要的比逐个添加更高效
2026-07-08 13:24:37 +08:00
mediabot-pt
0f69fecb8f
refactor: 页面配置UI改为下拉添加模式,每个类型只能添加一次
...
1. +添加按钮改为下拉选择可用页面类型,已添加的自动隐藏
2. 每个条目的key改为固定tag显示,不可再通过下拉修改
3. URL placeholder 去掉{base},直接用相对路径
4. resolveUrl 改为自动拼接站点baseUrl
2026-07-08 13:22:49 +08:00
mediabot-pt
6e53e8c014
feat: 生成快照时自动去掉页面URL中的{base}前缀,MediaBot自动补全
2026-07-08 13:20:26 +08:00
mediabot-pt
6de1df9acf
fix: 创建新 draft 前先清理旧 draft,避免旧预览版残留导致版本号显示错误
...
每次 savePreview/updateSnapshot 插入新 draft 前 deleteBySiteIdAndStatus('draft'),确保每站点最多一个预览版
2026-07-07 23:56:46 +08:00
mediabot-pt
b19821bf83
fix: 快照版本号取全表最大+1,修复发布后版本回退到1导致的唯一键冲突
...
bug: selectLatestDraft 只查 status='draft',发布后 draft→published 查不到,下一版又从 1 开始
fix: selectMaxVersion 查全表 MAX(version),保证单调递增
2026-07-07 23:47:53 +08:00
mediabot-pt
f65b8d0e2e
fix: 四页面 savePreview 检查 save-preview 响应 code,失败时不误显成功
...
ApiResponse.error 返回 HTTP 200 + JSON code:400,Axios 当成功处理
前端未检查 code 字段导致误显成功但 draft 实际未创建,发布按钮不出现
2026-07-07 23:46:55 +08:00
mediabot-pt
04fc009a33
refactor: AccessResultCheck 去掉审批相关按钮和逻辑,简化为两阶段发布
...
移除:通过/拒绝/发布(approveConfig)按钮、approveConfig/rejectConfig/saveScript 函数、approving/rejecting/saving ref
保留:保存预览版 → 发布正式版 两阶段流程
2026-07-07 23:38:48 +08:00
mediabot-pt
886e2fba70
fix: 适配校验页两个 bug
...
1. buildSnapshot 改用 selectRecentBySiteId(按updated_at取最新配置),不再依赖 is_latest
修复:编辑脚本后保存预览版,buildSnapshot 读到旧脚本导致快照生成失败,发布按钮不出现
2. approveConfig 版本号排序改为 CAST(version AS UNSIGNED) 数值排序
修复:version 是 VARCHAR,字母序导致 '9' > '10',版本号永远过不了 10
2026-07-07 23:33:45 +08:00
mediabot-pt
6e881daeb9
fix: buildSnapshot 放宽有效性检查,页面/规则任一有效即可,不再强制要求脚本
...
修复场景:仅编辑页面配置时,站点可能尚无脚本,导致保存预览版失败、发布按钮不出现
2026-07-07 23:22:37 +08:00
mediabot-pt
1436f81667
feat: 快照API响应增加顶层version字段,与check接口保持一致
2026-07-07 22:49:03 +08:00
mediabot-pt
dfbedcf09d
fix: Qiniu 上传令牌改为 key 作用域,支持覆盖已有文件
2026-07-07 18:16:05 +08:00
mediabot-pt
f2fd0ce2a0
revert: 风险规则不需要默认模板 fallback
2026-07-07 18:04:33 +08:00
mediabot-pt
4bbaa0cd1c
fix: buildSnapshot 风险规则补上默认模板 fallback
2026-07-07 18:04:07 +08:00
mediabot-pt
45f16f2b54
refactor: 统一所有页面按钮文案,合并上传逻辑到保存
...
1. Sites.vue: '保存' → '保存预览版'
2. SitePages.vue: '保存' → '保存预览版',移除上传按钮和uploadPages函数
3. AccessResultCheck.vue: 两处'保存' → '保存预览版'
4. SitePagesController: savePages/saveDefaultPages 直接包含CDN上传,移除 /upload 端点
2026-07-07 18:02:22 +08:00
mediabot-pt
51e9341748
fix: 风险规则保存按钮文案改为'保存预览版'
2026-07-07 17:58:46 +08:00
mediabot-pt
ec37369bc2
refactor: 合并上传到保存按钮,去掉上传按钮
...
1. 后端 saveRules/saveDefaultRules 接口直接包含 CDN 上传逻辑
2. 移除独立的 /upload 端点(风险规则 + 默认规则)
3. 前端去掉上传按钮和 uploadRules 函数
4. 现在只需保存→发布正式版两步即可完成
2026-07-07 17:57:20 +08:00
mediabot-pt
40eea42710
fix: 上传风险规则后同步更新站点快照,解决状态仍显示未发布的问题
...
1. 后端 RiskRuleServiceImpl:将 updateSnapshotsByType 从异步事件改为同步调用 snapshotService.updateSnapshot
2. 前端 RiskRules.vue:上传按钮成功后调用 fetchSnapshotStatus 刷新状态标签
2026-07-07 17:54:37 +08:00
mediabot-pt
5777a02823
revert: 回退自动删除旧快照的逻辑,保留完整历史版本供人工恢复
2026-07-07 13:24:03 +08:00
mediabot-pt
2c126a6ec5
fix: 保存/发布快照时清理同状态旧记录,每个站点每种状态最多保留一条
2026-07-07 13:23:13 +08:00
mediabot-pt
e953e9a7fd
refactor: 合并保存按钮,点击保存即自动保存源数据+拍快照
2026-07-07 13:19:50 +08:00
mediabot-pt
e659b9bca6
refactor: 保存预览版自动先保存源数据,简化操作一步完成
2026-07-07 13:16:34 +08:00
mediabot-pt
6505f621d1
feat: 编辑器增加「重置」和「丢弃预览版」按钮,支持回退预览版快照
2026-07-07 13:12:19 +08:00
mediabot-pt
e99de15703
feat: 编辑器增加版本状态(预览版/正式版)和未保存提示
2026-07-07 12:19:18 +08:00
mediabot-pt
090fab8883
docs: 更新 API.md 和 mediabot-api-migration.md,补充快照接口和两阶段发布说明\n\n1. API.md 新增 2.6 站点快照接口(/snapshots/{siteId}、/check)\n2. API.md 补充 ?preview 参数说明\n3. API.md 新增 SiteSnapshot 数据结构\n4. API.md 更新 4.3 工作流程为两阶段发布\n5. mediabot-api-migration.md 补充 preview 参数说明\n6. mediabot-api-migration.md 新增第六章:预览模式与两阶段发布\n7. mediabot-api-migration.md 补充 checksum 字段到 Bundle JSON 结构"
2026-07-07 11:53:46 +08:00
mediabot-pt
ebfb6395db
refactor: 合并三级缓存为统一缓存 + 重命名 saveDraft → savePreview
...
1. 三个 Caffeine Cache 合并为一个 jsonCache,key 用 :published/:draft 后缀区分
2. saveDraft → savePreview,更准确反映「预览版」语义(非临时草稿)
3. getPreviewBundleJson 去掉独立缓存,直接查 DB(preview 是 draft+published 逻辑并集,缓存意义不大)
4. 前端按钮「保存草稿」→「保存预览版」,API 路径 /save-draft → /save-preview
2026-07-07 11:45:04 +08:00
mediabot-pt
3cc7b932a8
fix: 修复快照两阶段发布方案的缓存一致性和前端问题
...
1. updateSnapshot() 自动触发生成 draft 后刷新 draft/preview 缓存
2. saveDraft() 同时刷新 previewJsonCache
3. 前端编辑页新增「保存站点」按钮,确保站点基本信息可持久化
4. publishManifest() 兼容 bundle 改用缓存 JSON,避免重复 buildSnapshot
2026-07-07 11:43:06 +08:00
mediabot-pt
e839fe9bba
perf: preview查询改为一条SQL(draft优先,无则published),独立preview缓存
2026-07-07 11:39:42 +08:00
mediabot-pt
e15e242153
fix: preview模式改为draft优先fallback到published(正式版+预览版并集)
2026-07-07 11:38:52 +08:00
mediabot-pt
5f58083074
feat: 快照改为预览版/正式版两阶段发布 - 新增 saveDraft 接口手动保存草稿快照 - 新增 getDraftBundleJson 方法读取预览版(Caffeine缓存) - SnapshotController 支持 ?preview=true 参数读取 draft - 前端编辑页改为'保存草稿'+'发布正式版'两个按钮 - AdminController 新增单站点 save-draft/publish 接口 - 复用 populateSnapshotFields 消除重复代码
2026-07-07 11:36:38 +08:00
mediabot-pt
820b180d87
perf: 优化快照接口——缓存预序列化 JSON,消除重复序列化
...
- Caffeine 缓存改为存储 bundle JSON 字符串而非 SiteSnapshot 对象(减少内存占用)
- 新增 getActiveBundleJson 方法,SnapshotController 直接使用缓存 JSON
- bundle JSON 新增 checksum 字段,ETag 比较无需额外查库
- 删除 SnapshotController.toJson 重复序列化代码
- publish 时复用已序列化的 JSON 上传 CDN
2026-07-07 11:28:28 +08:00
mediabot-pt
9f94b53753
perf: 为 SiteSnapshotService.getActive 增加 Caffeine 本地缓存
...
- 缓存过期时间 10 分钟,最大 500 条
- publish 时主动刷新缓存,确保最新配置立即可用
- 避免 mediabot 每次请求都查数据库
2026-07-07 11:19:36 +08:00
mediabot-pt
a92ddccc46
docs: 完善接口文档可用性说明,补充 PAR Server 整体不可用时的 CDN fallback 方案
2026-07-07 11:18:15 +08:00
mediabot-pt
c823878ae0
fix: 解决 ConfigServiceImpl 与 SiteSnapshotServiceImpl 循环依赖
...
- 移除 SiteSnapshotServiceImpl 对 ConfigService 的依赖,直接使用 SiteConfigMapper
- ConfigServiceImpl/SitePagesServiceImpl/RiskRuleServiceImpl 改用 ApplicationEvent 异步触发快照更新
- 新增 SnapshotUpdateEvent 和 SnapshotUpdateListener
- ParApplication 添加 @EnableAsync 支持异步事件处理
- AdminController 中 updateSnapshot 调用改为发布事件
2026-07-07 11:17:22 +08:00
mediabot-pt
b25aa82c73
重构: 引入 site_snapshots 表统一站点配置快照管理
...
- 新增 site_snapshots 表 (V16 迁移),统一存储脚本+页面+规则的合并快照
- 新增 SiteSnapshot 实体、Mapper、Service
- 配置变更时自动触发快照更新 (checksum 去重)
- 新增 SnapshotController 提供 /api/v1/snapshots/{siteId} 端点,支持 ETag/304
- 重构 publishManifest 使用快照服务,只发布变更站点
- 保留七牛云 CDN 作为灾备层
- 兼容旧 /bundle 和 /bundles/ 路径
2026-07-07 11:09:52 +08:00
mediabot-pt
98bc5b3183
feat: 合并配置包 - publish 时生成 bundle,mediabot 下载保证版本一致
2026-07-07 10:50:37 +08:00
mediabot-pt
223528817e
fix: 修复 Admin 权限校验与 GET /api/v1/configs 404 问题
2026-07-07 08:59:39 +08:00
mediabot-pt
a0780c64bb
fix: 修复mediabot拉取风险规则失败的三个问题
...
1. HMAC拦截器跳过GET请求,mediabot拉取规则不再被401拦截
2. findByIdentifier增加site_type回退查找,兼容按site_type查询
3. saveRules自动填充site_type字段,从站点表获取
4. GET接口version参数支持非数字值如latest
2026-07-07 00:33:46 +08:00
mediabot-pt
15a3c381d0
fix: 修复risk_rules表site_type字段无默认值导致插入失败问题
2026-07-07 00:19:01 +08:00
mediabot-pt
64de9a0284
fix: 将迁移脚本中的SELECT替换为DO 0以避免Flyway处理结果集问题
2026-07-07 00:10:09 +08:00
mediabot-pt
83441e5a96
fix: 修复V15迁移脚本CREATE INDEX IF NOT EXISTS语法错误
2026-07-07 00:06:55 +08:00
mediabot-pt
c34eaed59b
fix: 修复V15迁移脚本MySQL语法错误,移除不支持的IF NOT EXISTS语法
2026-07-06 23:59:15 +08:00
mediabot-pt
0b0dcb4f04
refactor: use only siteId for risk rule storage, drop type-level fallback
2026-07-06 23:52:30 +08:00
mediabot-pt
a643d976cf
feat: support both site-level and type-level risk rule storage
...
List shows source column: site-level or type-level
Fallback: siteId rule first, then siteType rule
Save always creates site-level entry; load falls back to type-level if none exists
2026-07-06 23:51:26 +08:00
mediabot-pt
5a7b218944
fix: store risk rules per siteId instead of shared siteType
2026-07-06 23:50:23 +08:00