feat(media): 镜像装 ffmpeg,并补齐压缩配置与文档
机器人视频压缩依赖 ffmpeg;补 MediaCompressOptions、广场机器人说明与当日变动清单。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
53d41fbcae
commit
c26d61fd26
@ -1,6 +1,7 @@
|
|||||||
# Runtime only. Binaries are built on the developer machine (see Makefile `image`).
|
# Runtime only. Binaries are built on the developer machine (see Makefile `image`).
|
||||||
FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/gcr.io/iguazio/alpine:3.20
|
FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/gcr.io/iguazio/alpine:3.20
|
||||||
RUN apk add --no-cache ca-certificates tzdata \
|
# ffmpeg: required for squarebot video compress (media.bot_compress). Images use pure Go.
|
||||||
|
RUN apk add --no-cache ca-certificates tzdata ffmpeg \
|
||||||
&& adduser -D -H -u 10001 spark \
|
&& adduser -D -H -u 10001 spark \
|
||||||
&& mkdir -p /usr/share/zoneinfo/Asia \
|
&& mkdir -p /usr/share/zoneinfo/Asia \
|
||||||
&& cp /usr/share/zoneinfo/Asia/Shanghai /tmp/Shanghai \
|
&& cp /usr/share/zoneinfo/Asia/Shanghai /tmp/Shanghai \
|
||||||
|
|||||||
@ -168,3 +168,40 @@ make install-git-hooks # 本机只需一次
|
|||||||
|
|
||||||
- `make test`: skipped(本机无 go)
|
- `make test`: skipped(本机无 go)
|
||||||
|
|
||||||
|
|
||||||
|
## 23:30 — 广场机器人 RSS + 媒体压缩检测
|
||||||
|
|
||||||
|
### 概要
|
||||||
|
|
||||||
|
- 广场每 5 分钟由随机 seed 机器人发海外主流媒体公开 RSS 帖(标题+短摘要+原文链接,URL 去重)。
|
||||||
|
- 机器人帖 `expires_at` 默认 15 天,到期软删且 Feed/详情不可见。
|
||||||
|
- 用户上传路径:凭证 size + 发帖声明宽高/体积软检测(默认可日志,可拒收)。
|
||||||
|
- 机器人配图:入库对象存储前压到最长边 ≤1080;视频路径 ≤720(ffmpeg)。
|
||||||
|
|
||||||
|
### 变更范围
|
||||||
|
|
||||||
|
| 类型 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| 功能 | squarebot 调度、TTL、RSS、配图压缩 |
|
||||||
|
| 配置 | `media` / `square_bot` |
|
||||||
|
| 数据库 | migration 0026 |
|
||||||
|
| 文档 | `docs/media.md`、`docs/square.md` |
|
||||||
|
|
||||||
|
### 主要文件
|
||||||
|
|
||||||
|
- `internal/module/squarebot/logic/*` — RSS / Tick / Worker / 压缩上传
|
||||||
|
- `internal/module/square/logic/bot_publish.go` — 发帖 + Expire
|
||||||
|
- `internal/infrastructure/media/*` — 图/视频压缩
|
||||||
|
- `internal/pkg/media/*` — 检测策略
|
||||||
|
- `internal/bootstrap/app.go` — 接线 Start/Stop
|
||||||
|
- `migrations/0026_square_bot_rss.sql`
|
||||||
|
- `configs/config.yaml`
|
||||||
|
|
||||||
|
### 验证
|
||||||
|
|
||||||
|
- `make test`: skipped(本机无 go)
|
||||||
|
- 部署后:`go run ./cmd/migrate`、`go run ./cmd/seed`,观察日志 `squarebot posted` / `squarebot expired`
|
||||||
|
|
||||||
|
### 关联
|
||||||
|
|
||||||
|
- 用户需求:广场机器人 RSS + 15 天过期 + 后台机器人媒体压缩检测
|
||||||
|
|||||||
@ -48,6 +48,17 @@
|
|||||||
| 推荐算法、话题、@ | 后续 |
|
| 推荐算法、话题、@ | 后续 |
|
||||||
| 未登录刷广场 | 需 Bearer |
|
| 未登录刷广场 | 需 Bearer |
|
||||||
|
|
||||||
|
### 机器人海外媒体(已实现)
|
||||||
|
|
||||||
|
| 能力 | 说明 |
|
||||||
|
| --- | --- |
|
||||||
|
| 定时发帖 | `square_bot.enabled`;进程内 ticker,默认 **5 分钟**;随机 `botNNN@spark.bot` |
|
||||||
|
| 内容 | 海外主流媒体 **公开 RSS** 标题+短摘要+原文链接;URL 去重(`t_square_bot_links`) |
|
||||||
|
| TTL | 机器人帖 `expires_at` 默认 **15 天**;到期软删 + Feed/详情不可见 |
|
||||||
|
| 配图 | `media.bot_compress`:enclosure 图下载后压到 ≤1080 再 `Put` |
|
||||||
|
|
||||||
|
详见 `docs/media.md`。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 0.2 与朋友圈的差异
|
# 0.2 与朋友圈的差异
|
||||||
|
|||||||
@ -19,3 +19,9 @@ func MediaPolicy(cfg MediaConfig) media.Policy {
|
|||||||
}.Normalize(),
|
}.Normalize(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MediaCompressOptions returns limits + encoder settings for bot compressors.
|
||||||
|
func MediaCompressOptions(cfg MediaConfig) (lim media.Limits, jpegQuality, videoCRF int, ffmpegPath string) {
|
||||||
|
p := MediaPolicy(cfg)
|
||||||
|
return p.Limits, cfg.JPEGQuality, cfg.VideoCRF, cfg.FFmpegPath
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user