@qcplay/cli 1.0.14 → 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +200 -9
- package/bin/qcplay.js +552 -77
- package/lib/content-rules.js +807 -0
- package/lib/lark-article.js +1 -1
- package/lib/platform-publish.js +2414 -270
- package/lib/wechat-article.js +400 -25
- package/package.json +4 -1
- package/templates/skills/qcplay-publish-article/SKILL.md +38 -4
- package/templates/skills/qcplay-publish-article/article/article.md +3 -1
- package/templates/skills/qcplay-publish-article/article/west-article.md +22 -0
package/README.md
CHANGED
|
@@ -23,6 +23,107 @@
|
|
|
23
23
|
|
|
24
24
|
平台配置默认从飞书 Wiki“内容一键分发信息表”实时读取,账号、密码和 webhook 不会写入项目文件,也不会出现在 dry-run 或平台列表中。首次使用需要当前用户已通过 `lark-cli` 授予 `wiki:node:retrieve` 和 `sheets:spreadsheet:read` 只读权限。
|
|
25
25
|
|
|
26
|
+
不同平台的特殊内容处理由用户文件 `~/.qcplay/platform-rules.json` 控制。`qcplay install` 或 `qcplay update` 只在文件不存在时创建默认模板,已有文件绝不覆盖;通过 `npm link` 在其他目录执行时仍读取该用户级文件。单次发布也可以指定其他文件:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
qcplay publish article.md --project 最强蜗牛 --platform B站 --rules-file .\rules.json
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
规则管理命令:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
qcplay rules init
|
|
36
|
+
qcplay rules validate
|
|
37
|
+
qcplay rules list
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
公众号导入时也可显式指定规则文件和用于规则匹配的项目名:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
qcplay article import "https://mp.weixin.qq.com/s/..." article.md --rules-file .\rules.json --project 游戏名
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
每条规则可按 `source`、`project`、`region`、`platform` 匹配,值可以是字符串、字符串数组或 `"*"`。`phase` 可设为 `import`(仅拉取时)、`publish`(仅发布时)或 `"*"`;未填写时为兼容旧配置,发布时正常执行,公众号导入时也会执行其中的删除动作。支持以下有限动作,不执行 JavaScript:
|
|
47
|
+
|
|
48
|
+
- `remove_section_until_next_heading`:删除匹配标题到下一个标题之前的内容。
|
|
49
|
+
- `remove_text_block`:删除匹配文案所在的最小正文块。
|
|
50
|
+
- `replace_text`:替换匹配文案。
|
|
51
|
+
- `remove_image`:按图片 `src`、`alt`、`title`、`caption`、`nearby_text` 或 `sha256` 删除。
|
|
52
|
+
- `replace_image`:替换匹配图片的 `src`、`alt` 或 `title`。
|
|
53
|
+
- `remove_image_caption`:清除匹配图片的说明属性和 `figcaption`。
|
|
54
|
+
|
|
55
|
+
匹配 `operator` 支持 `contains`、`equals`、`starts_with`、`ends_with`,默认不区分英文大小写,可设置 `case_sensitive: true`。例如:
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"version": 1,
|
|
60
|
+
"rules": [
|
|
61
|
+
{
|
|
62
|
+
"name": "公众号拉取时删除引导图片和文案",
|
|
63
|
+
"enabled": true,
|
|
64
|
+
"phase": "import",
|
|
65
|
+
"source": "wechat",
|
|
66
|
+
"project": "*",
|
|
67
|
+
"platform": "*",
|
|
68
|
+
"actions": [
|
|
69
|
+
{
|
|
70
|
+
"type": "remove_image",
|
|
71
|
+
"match": { "nearby_text": ["长按识别", "关注公众号"], "operator": "contains" }
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"type": "remove_text_block",
|
|
75
|
+
"match": { "text": ["长按识别", "关注公众号"], "operator": "contains" }
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"type": "remove_image",
|
|
79
|
+
"match": { "sha256": "图片文件的64位SHA-256摘要" }
|
|
80
|
+
}
|
|
81
|
+
]
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"name": "B站删除官充章节",
|
|
85
|
+
"enabled": true,
|
|
86
|
+
"source": "wechat",
|
|
87
|
+
"project": "*",
|
|
88
|
+
"platform": "bilibili",
|
|
89
|
+
"actions": [
|
|
90
|
+
{
|
|
91
|
+
"type": "remove_section_until_next_heading",
|
|
92
|
+
"match": { "text": "官充", "operator": "contains" }
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"name": "替换指定图片和文案",
|
|
98
|
+
"enabled": true,
|
|
99
|
+
"source": "*",
|
|
100
|
+
"project": "示例游戏",
|
|
101
|
+
"platform": ["website", "bilibili"],
|
|
102
|
+
"actions": [
|
|
103
|
+
{
|
|
104
|
+
"type": "replace_text",
|
|
105
|
+
"match": { "text": "旧文案", "operator": "contains" },
|
|
106
|
+
"replacement": "新文案"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"type": "replace_image",
|
|
110
|
+
"match": { "src": "old-image.png", "operator": "ends_with" },
|
|
111
|
+
"replacement": { "src": "https://example.com/new-image.png", "alt": "新图片" }
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
公众号来源文章在导入时保留正文和安全排版,并提前应用 `phase: "import"` 的用户规则。按 URL、替代文字、图片说明或 `nearby_text` 匹配的图片会在下载前删除;按 `sha256` 匹配时只下载用于计算指纹,命中后不会上传。图片附近文案的范围是图片所在块及相邻前后正文块。图片删除先于章节、文案删除执行,因此动作顺序不会导致附近文案丢失。首次生成的默认模板包含删除“回复有奖/评论抽奖”章节的规则,并提供一条默认禁用的导入删除示例。文本和图片替换、图片说明清理及具体平台规则在分发时应用。
|
|
120
|
+
|
|
121
|
+
Windows 可用下面的命令计算固定图片的 SHA-256:
|
|
122
|
+
|
|
123
|
+
```powershell
|
|
124
|
+
(Get-FileHash .\guide.png -Algorithm SHA256).Hash.ToLower()
|
|
125
|
+
```
|
|
126
|
+
|
|
26
127
|
查看某个项目可用的平台:
|
|
27
128
|
|
|
28
129
|
```bash
|
|
@@ -36,7 +137,7 @@ qcplay-cli publish article.md --project 最强蜗牛 --region 国内 --platform
|
|
|
36
137
|
qcplay-cli publish article.md --project 最强蜗牛 --region 欧美 --platform Discord
|
|
37
138
|
```
|
|
38
139
|
|
|
39
|
-
不传 `--platform` 时,交互终端会列出匹配的平台供选择;CI
|
|
140
|
+
不传 `--platform` 时,交互终端会列出匹配的平台供选择;CI 等非交互环境会报错并提示可用平台。导入稿中的 `distribution_project` 优先用于项目识别;没有该字段时,`game_id: "39"` 可自动推断项目为“最强蜗牛”。发布前可检查脱敏计划:
|
|
40
141
|
|
|
41
142
|
```bash
|
|
42
143
|
qcplay-cli publish article.md --project 最强蜗牛 --region 国内 --platform TapTap --dry-run
|
|
@@ -50,6 +151,22 @@ qcplay-cli publish article.md --project 最强蜗牛 --region 国内 --platform
|
|
|
50
151
|
|
|
51
152
|
默认仍按原流程直接发布。使用 `--review-draft`(简写 `--review`)时,CLI 会完成标题、富文本、图片、封面和发布设置后保持浏览器打开;确认无误后在 CMD 输入“可以发布”“发布”或直接按 Enter,输入“取消”则停止且不点击最终发布。官网发布流程不受该参数影响。好游快爆没有可复用的原生草稿箱,因此会保持当前编辑页供预览。
|
|
52
153
|
|
|
154
|
+
只验证真实登录页或编辑器页面时,可以跳过文章和填充流程:
|
|
155
|
+
|
|
156
|
+
```powershell
|
|
157
|
+
qcplay-cli publish --project "最强蜗牛" --region 国内 --platform "微博" --open-page
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
`--open-page` 使用该平台的真实页面和独立持久登录态,等待你在浏览器中完成页面流程测试后按 Enter 关闭;不会读取文章、填写内容、上传图片或提交发布。
|
|
161
|
+
|
|
162
|
+
临时覆盖标题和封面而不改动 Markdown 文件:
|
|
163
|
+
|
|
164
|
+
```powershell
|
|
165
|
+
qcplay-cli publish article.md --project "最强蜗牛" --platform "微博" --title "本次标题" --cover ".\cover.png" --weibo-column "公告"
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
`--cover` 不填写时,支持封面的平台使用正文第一张图;`--weibo-column` 不填写时微博不设置专栏。官网直发的 `--cover` 需要使用 `http/https` 图片地址。
|
|
169
|
+
|
|
53
170
|
发布方式:
|
|
54
171
|
|
|
55
172
|
- 官网继续使用现有 QCPlay API,并保持“先保存未上线草稿、用户预览后再上线”的原逻辑。
|
|
@@ -58,7 +175,7 @@ qcplay-cli publish article.md --project 最强蜗牛 --region 国内 --platform
|
|
|
58
175
|
- 已存在有效登录态时,CLI 会等待发布编辑器加载完成并直接填充内容,不再重复提示登录;只有明确进入登录页或检测不到有效会话时才进入登录流程。
|
|
59
176
|
- 多个浏览器平台按顺序处理:当前平台需要扫码或验证时会停留等待,当前浏览器平台失败时停止后续平台,避免跳过登录继续发布。
|
|
60
177
|
- 图片和视频必须确认上传或处理完成后才能提交;上传失败或超过有限等待时间会停止当前平台,避免发布按钮卡死或提交不完整内容。
|
|
61
|
-
- 好游快爆只使用飞书配置中当前游戏对应的 `bbs.3839.com` 发布链接,并保留有效 `fid
|
|
178
|
+
- 好游快爆只使用飞书配置中当前游戏对应的 `bbs.3839.com` 发布链接,并保留有效 `fid`;阿瑞斯病毒2 使用 `fid=20313`,新仙剑使用 `fid=24008`,最强蜗牛使用 `fid=12201`,缺失或为 `0` 会直接停止。未登录时先进入官网首页并点击头像登录,在官方 iframe 中完成登录;登录成功后会校验域名、路径及 `m/c/a/fid/type`,必须回到当前游戏发布页,不会改用首页或其他游戏链接。
|
|
62
179
|
- 好游快爆新版发帖页使用 `#threadTitle` 可编辑标题、Quill `.ql-editor` 正文和 `.editSubmit.active` 发布控件。CLI 会忽略 Quill 对空白和换行的重排,连续回读确认内容稳定;标题超过 48 字、正文仍为空或发布控件不可用时停止。点击发布后只有 `setThread` 接口返回 `code: 100`、出现成功提示或跳转到论坛/帖子页才判定成功;没有成功回执时会报错,并保留浏览器窗口供检查后再关闭。
|
|
63
180
|
- Reddit 配置明确提示非官方工具存在封号风险;未配置官方 Reddit 应用时,CLI 会拒绝自动发布。
|
|
64
181
|
- 配置缺少发布 URL、webhook 或适配器的平台会明确报错,不伪造成功结果。
|
|
@@ -68,7 +185,7 @@ qcplay-cli publish article.md --project 最强蜗牛 --region 国内 --platform
|
|
|
68
185
|
TapTap 文章默认按“长帖”发布。需要图文、视频、论坛、定时或草稿时,在文章 Front Matter 中增加对应字段;发布命令仍然只传文章文件:
|
|
69
186
|
|
|
70
187
|
```yaml
|
|
71
|
-
taptap_type:
|
|
188
|
+
taptap_type: "" # 留空时跟随飞书页面 URL;也可指定 long-post、image-text、video
|
|
72
189
|
taptap_forum: "" # 留空默认使用项目同名论坛;填 0 不添加论坛
|
|
73
190
|
taptap_scheduled: "1" # 勾选定时发布,具体时间可在打开的页面确认
|
|
74
191
|
taptap_draft: "0" # 1 保存草稿,0 正式提交
|
|
@@ -77,34 +194,52 @@ taptap_video: ./video.mp4
|
|
|
77
194
|
taptap_cover: ./cover.png
|
|
78
195
|
```
|
|
79
196
|
|
|
197
|
+
飞书“特殊要求”中的动态密令、有效期和动态群号使用命令行参数,不写入文章文件:
|
|
198
|
+
|
|
199
|
+
```powershell
|
|
200
|
+
qcplay publish .\article.md --project 新仙剑 --region 国内 --platform TapTap `
|
|
201
|
+
--taptap-secret-code "本次密令" `
|
|
202
|
+
--taptap-secret-period "8月10日~8月16日"
|
|
203
|
+
```
|
|
204
|
+
|
|
80
205
|
- 图文至少需要 1 张图片、最多 18 张;未设置 `taptap_images` 时会依次使用正文图片,正文无图片时使用 `thumbnail`。
|
|
81
206
|
- 视频必须使用 `taptap_video` 指向本地文件,远程 `video_link` 不能直接交给 TapTap 的文件上传控件。
|
|
82
207
|
- `taptap_scheduled` 与 `taptap_draft` 不能同时启用。
|
|
83
208
|
- 添加论坛时会依次点击搜索建议和精确同名论坛结果行,再执行“返回 → 完成”;“完成”仍为 CSS 禁用状态、弹窗未关闭或主页面未回读到论坛时都不会继续发布。已选中同名论坛时不会重复点击反选。
|
|
84
|
-
- 长帖标题最多 30 个字符;图文标题最多 20 个字符、正文最多 5000
|
|
209
|
+
- 长帖标题最多 30 个字符;图文标题最多 20 个字符、正文最多 5000 个字符。迷途之光图文标题超过 20 个字符时按平台限制截取后继续发布。
|
|
85
210
|
- 长帖正文按原文顺序写入:普通文字和 `http/https` 超链接使用 TapTap 富文本粘贴,图片会先下载,再通过 TapTap 官方正文图片控件上传。不会再把图片降级为 URL 文本,链接会保留为可点击跳转。
|
|
211
|
+
- 图片上传后的平台说明可以留空;文章原文已有的 `alt`、`title` 或 `figcaption` 会保留,只有用户规则显式配置 `remove_image_caption` 时才会清理。
|
|
86
212
|
- Markdown 会先转换为富文本;TapTap 支持的标题强调、段落间距、有序/无序列表、引用、粗体、斜体、下划线和删除线会保留。原内容中的对齐和颜色也会传入,但最终效果以 TapTap 编辑器支持范围为准。
|
|
87
213
|
- 图文模式的正文图片仍按 TapTap 规则进入顶部图片区;正文中的超链接保留为可点击链接。视频模式同样保留正文超链接。
|
|
88
214
|
- CLI 会在填写后回读标题和正文,精确点击编辑器页脚的发布/草稿按钮,并等待成功提示、页面跳转或发布接口成功响应。未检测到回执时按失败处理,不会输出成功。
|
|
89
215
|
- TapTap 编辑器的自动保存请求不会被拦截,但正式发布时不会把自动草稿创建/更新误判为成功;CLI 会继续等待正式发布接口成功后才关闭浏览器。显式设置 `taptap_draft: "1"` 时才以草稿保存回执结束流程。
|
|
90
216
|
- 自动化测试使用模拟浏览器;真实编辑器的格式探测必须在断网后进行,禁止保存或发布测试图片草稿。
|
|
91
217
|
|
|
218
|
+
公众号来源的文章发布到 TapTap 时,通常以飞书平台配置中当前项目/区域/平台行的“特殊要求”为内容规则来源;最强蜗牛同时应用上文五个平台共享的已确认删除规则。飞书列提到密令、生效时间/有效期时,CLI 通过 `--taptap-secret-code`、`--taptap-secret-period` 接收本次值;最强蜗牛这两个输入为可选值,未提供时不生成密令福利区。其他项目只有在配置明确声明为必填且未提供时才会在打开浏览器前停止。官方群已写明具体群号时直接使用飞书配置,只有群号是占位符或明确要求用户提供时才要求 `--taptap-official-group`。动态值不会从 Markdown 读取,也不会写回文章文件。该列声明的富文本排版、分割线、吟诗移除、人设替换及密令结尾格式也会按内容识别执行。使用 `--list-platforms` 可查看脱敏后的必填字段提示。
|
|
219
|
+
|
|
92
220
|
### 微博发布设置
|
|
93
221
|
|
|
94
222
|
微博使用头条文章编辑器发布富文本文章,而不是首页的短微博发送框:
|
|
95
223
|
|
|
96
224
|
```yaml
|
|
97
225
|
weibo_intro: "" # 可选;留空使用 article_excerpt,最多 44 字
|
|
98
|
-
|
|
226
|
+
weibo_super_topic: "" # 可选;自定义超话名称
|
|
227
|
+
weibo_cover: "" # 可选;正文图片、本地路径或 URL;留空默认使用正文第 1 张图
|
|
228
|
+
weibo_column: "" # 可选;微博头条文章专栏,留空则不设置
|
|
99
229
|
```
|
|
100
230
|
|
|
101
231
|
- 文章标题独立写入头条文章标题框,最多 32 个字符;正文写入 Tiptap/ProseMirror 富文本编辑器。
|
|
232
|
+
- 最强蜗牛、提灯与地下城和魔卡少女樱会分别按项目规则生成微博开头/结尾文案与超话;`weibo_super_topic` 可覆盖自动超话。填写 `weibo_column` 时才会选择对应专栏,未填写不会设置专栏。
|
|
102
233
|
- 草稿箱为空时,CLI 会先点击“写文章”,等待新草稿 ID 生成且编辑器遮罩消失,再重写标题、导语和正文;导语为空时也会主动清除旧值。
|
|
103
234
|
- 正文标题、段落、列表、引用、粗体、斜体、下划线、删除线和 `http/https` 超链接会在编辑器支持范围内保留。
|
|
104
235
|
- 正文图片按原文位置和顺序执行“图片库 → 上传完成 → 选中 `.image-list .image-item` 缩略图 → 等待 `is-selected` → 插入”。首次打开图片库时,CLI 会通过 `.ico_delpic` 逐张删除既有图片并等待缩略图消失,再上传本次文章图片;后续打开不再清理,因此发布结束时图片库只保留本次文章使用的图片。同一图片地址重复出现时只保留首次出现的一张。出现裁剪对话框时会等待裁剪区域连续稳定,再确认并验证弹窗关闭。
|
|
105
|
-
- 正文含图片时,CLI 会在发布设置中进入“正文图片”,选择 `weibo_cover`
|
|
236
|
+
- 正文含图片时,CLI 会在发布设置中进入“正文图片”,选择 `weibo_cover` 指定的图片;本地路径或 URL 会先上传到微博图片库。未指定时选择第 1 张,并完成“下一步 → 图片裁剪 → 确定”。封面没有回显时不会继续发布。
|
|
106
237
|
- 封面确认并回显后,CLI 立即按“下一步 → 发布”完成投稿。只有检测到发布接口、成功提示或发布历史页面跳转的成功回执时才报告成功。
|
|
107
238
|
|
|
239
|
+
### 小红书发布设置
|
|
240
|
+
|
|
241
|
+
小红书使用笔记发布页,标题最多 20 个字符,正文和图片均在发布编辑器中写入;图片上传完成、发布按钮可用且页面没有失败提示后才返回成功。
|
|
242
|
+
|
|
108
243
|
### B站投稿设置
|
|
109
244
|
|
|
110
245
|
B站默认按专栏图文发布;视频投稿通过 Front Matter 切换到官方视频投稿页:
|
|
@@ -120,9 +255,10 @@ bilibili_topic: 最强蜗牛攻略
|
|
|
120
255
|
|
|
121
256
|
- 专栏正文会转换成富文本,在编辑器支持范围内保留标题、段落、列表、引用、粗体、斜体、下划线、删除线、颜色和对齐。
|
|
122
257
|
- 正文图片按原文位置通过 B站官方图片控件上传;`http/https` 链接保留为可点击超链接。图片、文字或链接回读不完整时会停止投稿。
|
|
258
|
+
- 首次生成的用户规则模板默认在公众号文章发布到 B 站时删除包含“官充”的标题区间,到下一个标题处恢复保留;用户可修改、限定项目或禁用。普通正文仅提到“官充”不会触发标题区间删除。
|
|
123
259
|
- 视频必须使用 `bilibili_video` 指向本地文件,文件需小于 16GB;建议使用 MP4、MOV 或 MKV。CLI 会先上传视频,等待稿件表单出现后再填写标题和简介。
|
|
124
260
|
- 视频简介不提供专栏富文本能力;带文字的超链接会转换为“文字(URL)”,使目标地址不丢失。
|
|
125
|
-
- `bilibili_category` 可用 `/` 表示多级分区,`bilibili_tags` 最多 10
|
|
261
|
+
- `bilibili_category` 可用 `/` 表示多级分区,`bilibili_tags` 最多 10 个。`bilibili_topic` 优先级最高;未填写时使用飞书当前平台行“特殊要求”中明确指定的 B 站话题。CLI 会搜索并选择精确同名话题,找不到时停止投稿,不会引用相似话题;两处都未指定时不会猜测。
|
|
126
262
|
- 只有检测到 B站成功提示、投稿后页面跳转或成功接口回执时才报告成功;仅点击投稿按钮不算成功。
|
|
127
263
|
|
|
128
264
|
## 微信或飞书文章转官网草稿
|
|
@@ -131,7 +267,11 @@ bilibili_topic: 最强蜗牛攻略
|
|
|
131
267
|
qcplay-cli article import "https://mp.weixin.qq.com/s/..." article.md
|
|
132
268
|
```
|
|
133
269
|
|
|
134
|
-
|
|
270
|
+
转换流程会读取微信文章标题、来源、发布日期和正文,在图片下载前应用用户规则中面向公众号导入的规则,再经过安全清理保留其余微信原文的 HTML 层级、内联样式、字号、颜色、背景、对齐、间距、媒体链接和表格,并转存保留正文中的图片、CSS 背景图及封面图。默认模板会删除“回复有奖/评论抽奖”标题区间,因此相关图片不会下载或上传;用户修改或禁用该规则后按用户配置执行。背景图片仍保留在原容器中,不会额外生成一张普通图片。图片转存成功后会移除微信原页面的加载占位节点和无意义的“图片”默认说明,不删除真正的图片说明,也不破坏图片父容器的排版样式。正文保持微信的 `677px` 阅读宽度并兼容窄屏;独占一行的图片会使用块级布局,纯图片标题容器会转换为普通区块,避免官网 PC 标题样式造成相邻图片重叠。任何保留正文节点遗漏或图片处理失败都会终止转换,不生成不完整草稿。输出固定为 `status: "0"`,并保留空的 `cate_id` 供发布前确认。
|
|
271
|
+
|
|
272
|
+
除用户规则中明确配置的导入阶段动作外,微信文章导入时不会提前删除关注、扫码、阅读原文、社群或其他活动板块。执行 `qcplay publish` 时,CLI 再按目标平台规则和飞书“特殊要求”处理内容;直接执行 `www-article-list.store` 时保留其余导入正文,由用户在官网预览中确认。
|
|
273
|
+
|
|
274
|
+
阿瑞斯病毒公众号导入稿会记录 `distribution_project: "阿瑞斯病毒2"`,多平台发布时可据此选择项目。发布到 TapTap 时会按飞书规则把视觉板块转换为一级/二级标题,保留原文加粗和颜色,插入板块分割线;“回复有奖”等内容删除由用户规则文件控制。默认使用公众号封面作为独立头图,显式填写 `taptap_cover` 时以该值为准。
|
|
135
275
|
|
|
136
276
|
飞书 Docx/Wiki 文档使用同一命令:
|
|
137
277
|
|
|
@@ -144,7 +284,16 @@ qcplay-cli article import "https://tenant.feishu.cn/wiki/..." article.md
|
|
|
144
284
|
确认草稿内容和业务字段后保存为未上线文章:
|
|
145
285
|
|
|
146
286
|
```bash
|
|
147
|
-
qcplay-cli www-article-list.store article.md
|
|
287
|
+
qcplay-cli www-article-list.store article.md --project 最强蜗牛
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
官网直发同样读取用户内容规则;可用 `--region` 补充区域匹配,或用 `--rules-file <json>` 为本次发布指定其他规则文件。
|
|
291
|
+
|
|
292
|
+
发布时临时替换标题而不改动 Markdown 文件:
|
|
293
|
+
|
|
294
|
+
```powershell
|
|
295
|
+
qcplay-cli www-article-list.store article.md --title "新的官网文章标题"
|
|
296
|
+
qcplay-cli west-article-list.store west-article.md --title "New Strongest Snail Title"
|
|
148
297
|
```
|
|
149
298
|
|
|
150
299
|
保存成功后,CLI 会输出文章 ID、`未上线` 状态和可点击的排版预览地址,并自动在浏览器中打开该页面:
|
|
@@ -167,6 +316,48 @@ qcplay-cli article delete [id]
|
|
|
167
316
|
|
|
168
317
|
兼容权限名形式的命令:`www-article-list.update [id]` 和 `www-article-list.delete [id]`。首次保存始终强制使用 `status: "0"`,不会因为 Front Matter 中误填 `1` 而直接上线。
|
|
169
318
|
|
|
319
|
+
### 欧美最强蜗牛官网文章
|
|
320
|
+
|
|
321
|
+
欧美最强蜗牛文章写入独立的 `west_articles` 表,不会写入国内 `articles` 表。先创建模板:
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
qcplay-cli article west-init west-article.md
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
模板中必须保留 `game_id: "64"`,并填写 `language`:`portuguese`、`german`、`spanish`、`italian`、`french` 或 `america_en`。保存草稿、确认上线和软删除分别使用:
|
|
328
|
+
|
|
329
|
+
```bash
|
|
330
|
+
qcplay-cli west-article-list.store west-article.md
|
|
331
|
+
qcplay-cli west-article-list.update <文章ID>
|
|
332
|
+
qcplay-cli west-article-list.delete <文章ID>
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
首次保存强制为草稿状态;在用户确认后台草稿内容后,才可执行上线命令。
|
|
336
|
+
|
|
337
|
+
文章预览地址会按 `game_id` 自动选择:国内最强蜗牛仍使用 `snail.qingcigame.com`;欧美最强蜗牛使用 `snail-na.qcplay.com`;迷途之光、新仙剑、魔卡少女樱分别使用各自官网;提灯与地下城地址会附带文章的 `cate_id`。
|
|
338
|
+
|
|
339
|
+
### 其他要求文件
|
|
340
|
+
|
|
341
|
+
`--rules-file` 支持 `.json`、`.txt`、`.text` 和 `.docx`。Word 与文本文件可直接包含现有 JSON 规则,也可使用每行一条的简化格式:
|
|
342
|
+
|
|
343
|
+
```text
|
|
344
|
+
规则名称:欧美官网发布要求
|
|
345
|
+
项目:最强蜗牛
|
|
346
|
+
平台:website
|
|
347
|
+
删除章节:公众号福利
|
|
348
|
+
删除段落:关注公众号
|
|
349
|
+
替换文本:旧文案 => 新文案
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
无法识别的规则行会报错,不会在发布时被忽略。
|
|
353
|
+
|
|
354
|
+
导入时需要按平台生成不同稿件,可在拉取阶段传入平台。例如,B 站稿会应用规则文档中 `platform: bilibili`(或 Word 中“B站的内容要删除如下图片”)的图片删除规则:
|
|
355
|
+
|
|
356
|
+
```powershell
|
|
357
|
+
qcplay-cli article import "文章链接" bilibili-article.md --project "最强蜗牛" --platform "B站" --rules-file ".\rule.docx"
|
|
358
|
+
qcplay-cli article import "文章链接" website-article.md --project "最强蜗牛" --platform "website" --rules-file ".\rule.docx"
|
|
359
|
+
```
|
|
360
|
+
|
|
170
361
|
仓库整体需求说明仍在根目录:
|
|
171
362
|
|
|
172
363
|
- `../docs/requirement.md`
|