mediabot-pt
|
1664033c53
|
refactor: 站点列表和站点审核拆分为两个独立页面
- Sites.vue: 精简为纯站点列表(编辑/配置/变更)
- SiteReview.vue: 新文件,站点审核队列(通过/拒绝/匹配)
- router: 新增 /sites/review 路由
- Layout: 导航栏新增「站点审核」菜单项
|
2026-06-30 11:25:01 +08:00 |
|
mediabot-pt
|
0c7a579c6d
|
fix: V7__site_changes.sql 编码修复,中文注释乱码导致 SQL 语法错误
|
2026-06-30 11:03:00 +08:00 |
|
mediabot-pt
|
8d8e066e6d
|
feat: Flyway 启动自动 repair → migrate,应用自愈失败迁移记录
- FlywayConfig: 自定义 FlywayMigrationStrategy
- 启动时先 flyway.repair() 清理残留失败记录
- 再 flyway.migrate() 执行待迁移
- 全程应用内完成,无需外部操作
|
2026-06-30 10:44:41 +08:00 |
|
mediabot-pt
|
da79a2dd70
|
fix: 使用 Flyway repair-on-migrate 清理残留失败迁移记录
|
2026-06-30 10:02:31 +08:00 |
|
mediabot-pt
|
56e2615624
|
feat: 待审核变更支持手动搜索匹配已有站点
|
2026-06-30 09:09:24 +08:00 |
|
mediabot-pt
|
690d1ae926
|
feat: 站点信息提交时自动匹配已有站点(URL/名称),匹配则关联否则新建
|
2026-06-30 09:07:50 +08:00 |
|
mediabot-pt
|
d504649100
|
fix: SiteController.submitSiteInfo 返回类型改为 Map(不再返回SiteDTO)
|
2026-06-30 09:05:15 +08:00 |
|
mediabot-pt
|
a7eb63ce1b
|
refactor: site_change_log 重命名为 site_changes,更准确表达待审核+已变更
|
2026-06-30 09:03:58 +08:00 |
|
mediabot-pt
|
39af3dc034
|
refactor: site_submissions 重命名为 site_change_log,更通用的变更记录表
|
2026-06-30 09:02:09 +08:00 |
|
mediabot-pt
|
a6bfc69000
|
feat: 站点管理支持按站点查看变更(审核)记录
|
2026-06-30 08:58:39 +08:00 |
|
mediabot-pt
|
657e0c1a78
|
feat: 新增 site_submissions 审核表, 提交先进审核再写入sites
|
2026-06-30 08:57:10 +08:00 |
|
mediabot-pt
|
aa1e3e9b28
|
feat: sites表支持多名称/多地址(names/urls JSON列), DTO/Service/前端全部适配
|
2026-06-30 08:53:22 +08:00 |
|
mediabot-pt
|
b37b5cc5de
|
fix: 站点管理改用admin全量接口, 显示待审核站点并提供通过/拒绝
|
2026-06-30 08:44:46 +08:00 |
|
mediabot-pt
|
ec9d00f25a
|
feat: 站点管理增加查看配置功能, 显示最新已审批配置内容
|
2026-06-30 00:57:06 +08:00 |
|
mediabot-pt
|
c3f12d1521
|
fix: 站点编辑类型改为下拉框选择
|
2026-06-30 00:55:01 +08:00 |
|
mediabot-pt
|
550535f882
|
fix: 站点编辑实现编辑弹窗+PUT端点, 配置查看修复(加载失败)改用/content端点+DTO加submitterId
|
2026-06-30 00:32:14 +08:00 |
|
mediabot-pt
|
48d0e6a247
|
feat: 新增 /api/v1/sites/{siteId}/info 站点信息反馈接口, 支持多名称/多地址/状态/备注
|
2026-06-30 00:16:05 +08:00 |
|
mediabot-pt
|
a4d5c9aa4f
|
fix: 删除多余的 }
|
2026-06-29 23:50:54 +08:00 |
|
mediabot-pt
|
4c9c53d7c8
|
feat: 配置审核页展示已审批历史版本,支持点击对比
|
2026-06-29 23:37:01 +08:00 |
|
mediabot-pt
|
7c7fe0405a
|
fix: manifest 只返回 ACTIVE 状态的站点
|
2026-06-29 23:35:48 +08:00 |
|
mediabot-pt
|
b829fc68fe
|
feat: 站点提交改为待审核(pending),管理员审核通过/拒绝
- submitSite: 新站点 status=PENDING
- AdminController: GET /admin/sites/pending, POST /admin/sites/{id}/approve|reject
- reject 物理删除站点记录
|
2026-06-29 23:34:14 +08:00 |
|
mediabot-pt
|
d1445d3920
|
fix: 下载配置接口加null检查,前端去掉responseType:text让axios自动解析
|
2026-06-29 23:25:26 +08:00 |
|
mediabot-pt
|
b806a01f13
|
feat: 审核通过移动文件到approved,拒绝删除pending文件
- StorageService 新增 delete()
- approve: 文件 pending → approved
- reject: 删除 pending 文件
|
2026-06-29 23:21:44 +08:00 |
|
mediabot-pt
|
7d7de75bbd
|
refactor: 文件路径按pending/approved区分,去掉版本号
- submit: configs/{siteId}/pending/{hash}.json
- approve: 文件移到 configs/{siteId}/approved/{hash}.json
|
2026-06-29 23:20:14 +08:00 |
|
mediabot-pt
|
d093c5eb28
|
refactor: 存储模式动态检查环境变量,改PAR_STORAGE_TYPE无需重启
- CachedStorageService 每次调用读 PAR_STORAGE_TYPE 环境变量
- QiniuStorageService 首次调用懒初始化,读 QINIU_* 环境变量
- 去掉 @ConditionalOnProperty/@ConditionalOnMissingBean
|
2026-06-29 23:13:38 +08:00 |
|
mediabot-pt
|
cd78cfbf88
|
fix: 七牛读取改用公开URL HTTP GET,不依赖SDK私有API
|
2026-06-29 23:05:07 +08:00 |
|
mediabot-pt
|
3cece4e07f
|
fix: 七牛 SDK 7.15 API 兼容 - BucketManager.get(url) / bodyString()
|
2026-06-29 23:03:27 +08:00 |
|
mediabot-pt
|
41f3a15ddd
|
refactor: 版本号由PAR审核通过时自动分配
- submitConfig: 不再比较版本号,相同hash跳过,不同hash都插入pending
- approveConfig: 自动取最大版本号+1 分配(如 1, 2, 3...)
- 存储路径含hash前缀避免同名冲突
|
2026-06-29 23:02:30 +08:00 |
|
mediabot-pt
|
980d985d9b
|
fix: 重复提交按hash判重,同hash跳过,异hash覆盖更新
|
2026-06-29 23:00:29 +08:00 |
|
mediabot-pt
|
a741736a5d
|
fix: 重复提交配置改为幂等,返回已有记录而非报错
|
2026-06-29 22:59:24 +08:00 |
|
mediabot-pt
|
f351d71d18
|
feat: 七牛云存储支持(本地缓存/备份)
- StorageService 抽象层(store/read/exists)
- QiniuStorageService: 七牛云主存储(@ConditionalOnProperty)
- LocalStorageService: 本地文件存储(默认/@ConditionalOnMissingBean)
- CachedStorageService: 七牛主+本地缓存(写:七牛→本地, 读:本地→七牛)
- 配置: PAR_STORAGE_TYPE=qiniu + QINIU_AK/SK/BUCKET/REGION
- 不配七牛时自动降级到纯本地存储
|
2026-06-29 22:58:32 +08:00 |
|
mediabot-pt
|
98e040c06b
|
feat: 配置审核页增加查看详情(语法高亮JSON)
|
2026-06-29 22:55:38 +08:00 |
|
mediabot-pt
|
377aa90c96
|
fix: 配置文件路径改为 ./data/static(容器内可写)
|
2026-06-29 22:50:14 +08:00 |
|
mediabot-pt
|
64c2ec7700
|
fix: 配置提交500 — 修正静态文件路径 + 启动时创建目录
- par.static.path 默认 ./static(不再重复 configs/)
- @PostConstruct 确保 static/configs 目录存在
- submitConfig 异常时详细日志
|
2026-06-29 22:49:48 +08:00 |
|
mediabot-pt
|
6412026c69
|
fix: @PathVariable 显式指定参数名,兼容无 -parameters 编译
|
2026-06-29 22:43:56 +08:00 |
|
mediabot-pt
|
9b8fe439d7
|
fix: 编译器加 -parameters,Spring 反射获取参数名
|
2026-06-29 22:42:14 +08:00 |
|
mediabot-pt
|
e8a30d5e54
|
refactor: PSK 认证不再依赖账户查询,clientId 即身份
- PSK 签名通过后直接用 X-Client-Id 作为提交者标识
- 不再查 account 表,提交者=clientId
- 保留 Bearer Token 方式供 Web 管理后台使用
|
2026-06-29 22:34:50 +08:00 |
|
mediabot-pt
|
dd113ebf09
|
fix: PSK 复制兼容 HTTP 环境(execCommand 降级)
|
2026-06-29 22:17:27 +08:00 |
|
mediabot-pt
|
94c0d2a398
|
feat(par): 管理后台增加 PSK 管理页面
- 新增 /psks 页面:列表展示、生成新PSK、启用/禁用、复制密钥
- 版本号唯一,密钥支持手动输入或随机生成
- 侧边菜单增加「PSK 管理」入口
|
2026-06-29 22:09:23 +08:00 |
|
mediabot-pt
|
8565629a80
|
fix: 恢复 V1 原样,site_type 改动迁移到 V5
- V1: 恢复到原始 DEFAULT 'private' + 原始注释
- V5: ALTER TABLE sites MODIFY site_type DEFAULT 'unknown'
- 彻底解决 Flyway checksum 冲突,不改 flyway_schema_history
|
2026-06-29 21:33:34 +08:00 |
|
mediabot-pt
|
23fc6375fd
|
fix: Flyway 关闭 validate-on-migrate 避免 V1 checksum 冲突
|
2026-06-29 21:22:44 +08:00 |
|
mediabot-pt
|
c7a3f653c1
|
fix: SiteType 改为引擎类型,与 mediabot 对齐
nexusphp/mtorrent/mteam/pttime/gazelle/unit3d/jsonapi/unknown
DB默认值 private → unknown
|
2026-06-29 18:20:43 +08:00 |
|
mediabot-pt
|
f247cc15fe
|
docs: 更新 API.md — Manifest ETag + /time 接口
|
2026-06-29 17:22:04 +08:00 |
|
mediabot-pt
|
cbf5684abc
|
feat: Manifest 接口支持 ETag 条件请求
- ETag = SHA256(所有 siteId + configHash 拼接)
- 客户端传 If-None-Match 命中返回 304 无数据
- 替代新增 /latest 接口,同一端点高效轮询
|
2026-06-29 17:21:22 +08:00 |
|
mediabot-pt
|
092cf22d7a
|
docs: 添加 PAR Server 集成开发文档 (API.md)
- 认证鉴权: PSK 签名步骤 + Bearer Token 说明
- 全部公开 API 接口参考 (系统/认证/站点/配置/清单)
- 数据结构: 统一响应格式/Site/SiteConfig
- 工作流程: 首次接入/系统重建/配置更新
- Python + Node.js 完整代码示例
|
2026-06-29 17:09:17 +08:00 |
|
mediabot-pt
|
4ba9ade790
|
feat: 添加 GET /api/v1/time 基准时间接口
- 返回服务端 Unix 时间戳(秒)
- 客户端签名前调用此接口获取 timestamp
- 避免跨服务器时钟偏差导致 PSK 签名过期
|
2026-06-29 17:07:29 +08:00 |
|
mediabot-pt
|
bb96062b7c
|
fix: 安全加固 — HMAC_SECRET 启动检查 + 登录锁定 + PSK 窗口配置
- SecurityCheck: 启动时 HMAC_SECRET 为空输出 ERROR 日志
- AccountServiceImpl: Caffeine 缓存实现登录失败计数/锁定
(par.security.login-max-failures=5, login-lock-minutes=30)
- PskService: pskWindowSeconds 从 application.yml 读取
- AdminController: 清理重复 import
|
2026-06-29 17:05:43 +08:00 |
|
mediabot-pt
|
c9dc78b6ef
|
feat: PSK 认证支持多个 X-Email 头,依次匹配账户
|
2026-06-29 17:00:56 +08:00 |
|
mediabot-pt
|
f69c75368c
|
fix: PSK 请求恢复 X-Email 头用于身份识别
- X-Email 参与身份查找但不参与签名
- 已注册邮箱:对应该账户 accountId/trustLevel
- 未注册邮箱:accountId=0, trustLevel=TRUSTED
- audit 日志通过 authEmail attribute 追踪
|
2026-06-29 16:59:49 +08:00 |
|
mediabot-pt
|
ae8d0ed7d2
|
refactor: PSK 签名改为 METHOD:path:timestamp 格式
- 签名内容不再包含 email,email 仅作审计
- 改用 METHOD:path:timestamp 防重放到不同端点
- X-Email 头改为可选
- medibot 签名: HMAC(PSK, 'POST:/api/v1/sites/x/submit:1234567890')
|
2026-06-29 16:58:56 +08:00 |
|