Commit Graph

207 Commits

Author SHA1 Message Date
mediabot-pt
af4b2bde75 refactor: 移除风险规则 siteType fallback 逻辑,仅按站点 ID 查找专属规则 2026-07-12 23:21:14 +08:00
mediabot-pt
efd693e8e9 fix: 修复快照风险规则串站问题
buildSnapshot() 原先仅按 siteType 查询风险规则,导致同类型站点共享同一套规则。
改为优先按 siteId 查找站点专属规则,无则 fallback 到 siteType 兜底。
同时用 selectOne+limit 1 替代 selectList 优化性能,并增加 debug 日志。
2026-07-12 22:59:05 +08:00
mediabot-pt
eb3458cb1b refactor: PageKey枚举 SYNC→INDEX 2026-07-10 10:54:12 +08:00
mediabot-pt
70031db38f refactor: 快照不再回退到类型默认脚本 2026-07-10 09:51:49 +08:00
mediabot-pt
86d35f9754 fix: ScriptUtils加toDouble+PluginContext桩补字段匹配新脚本 2026-07-10 09:23:22 +08:00
mediabot-pt
252dbe5f86 feat: PageKey枚举加control/userdetail/peerStats/profile 2026-07-09 23:29:47 +08:00
mediabot-pt
d79b8ddf22 refactor: default-nexusphp移除旧sign/sync/search,加统一fetch方法 2026-07-09 17:58:20 +08:00
mediabot-pt
ce1e87b813 refactor: parse统一用pageKey路由,移除URL回退逻辑 2026-07-09 15:58:34 +08:00
mediabot-pt
e0f3772275 refactor: parse(content,pageKey)替代URL路由,新增resolvePageKey 2026-07-09 15:53:56 +08:00
mediabot-pt
30b7b5d29f refactor: 去掉所有默认脚本中的 import groovy.xml.XmlSlurper,引擎 SCRIPT_PREFIX 已注入 import groovy.xml.* 2026-07-08 23:12:50 +08:00
mediabot-pt
3dbc544881 docs: 注释清理 2026-07-08 23:12:13 +08:00
mediabot-pt
b7d445fb74 feat: nexusphp 脚本增加做种积分识别(seedingScore/seedScore) 2026-07-08 23:09:50 +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
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
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
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
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
6505f621d1 feat: 编辑器增加「重置」和「丢弃预览版」按钮,支持回退预览版快照 2026-07-07 13:12:19 +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
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
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
5a7b218944 fix: store risk rules per siteId instead of shared siteType 2026-07-06 23:50:23 +08:00
mediabot-pt
355f586086 fix: WebConfig HMAC 拦截器排除 GET pages/version 端点公开访问 2026-07-06 12:55:32 +08:00
mediabot-pt
02b7278c8c remove-authvalue-from-page-config 2026-07-06 12:15:40 +08:00
mediabot-pt
7042149a13 fix-page-config-reload-empty 2026-07-06 12:14:38 +08:00
mediabot-pt
f9caee68ed feat: 脚本添加parseDetail独立入口,parseDetailPage扩展提取促销信息和豆瓣链接 2026-07-06 10:03:44 +08:00
mediabot-pt
722b4fcf1d feat: 脚本parseRss改为实际解析RSS XML,返回items列表 2026-07-06 09:30:35 +08:00