[AI] feat: dramacmt 文案池扩到 637 条以支撑单剧 200 条
其余四站要求每部在线短剧加铺 50~200 条,原来 179 条的池子装不下: main.go 的硬校验会直接拒绝 --max 200,而且就算刚好够,每部剧都会抽到 九成文案,几千部剧的评论区长得一模一样。 新增 458 条(催更、剧情编剧、角色与 CP、演技、制作配乐、吐槽批评、 平台体验、追剧场景、讨论打卡、短评、长评),全池 637 条互不重复, 抽 200 条约占三成。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+25
-11
@@ -18,8 +18,11 @@
|
||||
|
||||
## 机器人用户
|
||||
|
||||
- uid 从 **1001** 开始往上发,默认 400 个。该区间原本完全空闲(`uid 1~17` 是库里
|
||||
已有的 17 个机器人,1000 以下整段不碰)
|
||||
- uid 从 **1001** 开始往上发,`--users` 控制池子大小。该区间原本完全空闲
|
||||
(`uid 1~17` 是库里已有的 17 个机器人,1000 以下整段不碰)
|
||||
- **池子要够大**:同一部剧内用户不重复,所以 `--users` 必须大于 `--max`;
|
||||
而且池子太小的话同一个昵称头像会在整个评论区刷屏。实测取值:
|
||||
tangguo 5,000(和 `scripts/vidcmt` 共用),其余四站 3,000
|
||||
- uid 必须 `<= 111999`(`common/constant.RobotUIDLimit`)——
|
||||
`commentser.getTrackInfo` 靠这个阈值判定 `isRobot`,后台可按机器人筛选和撤回
|
||||
- uid 池远低于 `auto_id` 的 uid 计数器(当时是 3111989,只增不减),
|
||||
@@ -74,8 +77,11 @@ createdAt <= now
|
||||
- **不写 `like` 集合的记录**。`likeCount` 是展示值,`isLike` 只反映当前请求用户,
|
||||
不建 like 文档不影响功能,也省掉几万条垃圾数据
|
||||
|
||||
文案池在 `content.go`,179 条互不重复。单剧内文案和用户都不重复,
|
||||
所以 `--max` 不能超过池子容量。
|
||||
文案池在 `content.go`,**637 条**互不重复。单剧内文案和用户都不重复,
|
||||
所以 `--max` 不能超过池子容量(`main.go` 里有硬校验)。
|
||||
|
||||
容量还要留足余量,不能刚好够:铺 200 条时池子只有 220 条的话,每部剧都会抽到
|
||||
九成文案,几千部剧的评论区长得一模一样。现在抽 200 条约占池子三成。
|
||||
|
||||
## 用法
|
||||
|
||||
@@ -88,8 +94,9 @@ go build -o /tmp/dramacmt ./scripts/dramacmt/
|
||||
# 只给评论数为 0 的剧铺,每部 20~50 条(默认)
|
||||
/tmp/dramacmt --dst "$DST_TANGGUO" --db tangguo
|
||||
|
||||
# 全部在线短剧都补到 20~50 条
|
||||
/tmp/dramacmt --dst "$DST_TANGGUO" --db tangguo --only-empty=false
|
||||
# 所有在线短剧都加铺 50~200 条(其余四站 2026-10-30 实际用的参数)
|
||||
/tmp/dramacmt --dst "$DST_HUANGGUO" --db huangguo --users 3000 \
|
||||
--min 50 --max 200 --only-empty=false
|
||||
|
||||
# 调试:只跑 3 部,固定种子便于复现
|
||||
/tmp/dramacmt --dst "$DST_TANGGUO" --db tangguo --limit 3 --seed 42
|
||||
@@ -102,11 +109,18 @@ go build -o /tmp/dramacmt ./scripts/dramacmt/
|
||||
机器人用户和评论都带标记,撤回是两条命令:
|
||||
|
||||
```js
|
||||
// 撤回评论(软删,保守做法)
|
||||
db.comment.updateMany({isRobot: true, objType: "drama", userID: {$gte: 1001, $lte: 1400}},
|
||||
// 撤回评论(软删,保守做法)。uid 上限按当站实际的 --users 取
|
||||
db.comment.updateMany({isRobot: true, objType: "drama", userID: {$gte: 1001, $lte: 5000}},
|
||||
{$set: {isDelete: true}})
|
||||
// countComment 要跟着减,按 objID 分组重算
|
||||
```
|
||||
|
||||
硬删同理,把 `$set` 换成 `deleteMany`。重算 `countComment` 用
|
||||
`countDocuments({objID, level:1, status:1, isDelete:false})`。
|
||||
硬删同理,把 `$set` 换成 `deleteMany`。两种都做完后 `countComment` 要重算,
|
||||
口径和 App 列表第 1 页保持一致(`app/service/commentser.GetTotalComments`):
|
||||
|
||||
```js
|
||||
countDocuments({objID, objType: "drama", level: 1, status: 1,
|
||||
isDelete: false, isAdvertiser: {$in: [null, false]}})
|
||||
```
|
||||
|
||||
短剧和影视不一样:**第 1 页的总条数直接读 `media.countComment`**,第 2 页之后才
|
||||
实时查,所以这个字段不重算前端就会出现「显示 N 条但列表是空的」。
|
||||
|
||||
Reference in New Issue
Block a user