v1.8.0: 新增「发送内容」三选一(只发评论/只发私信不发评论/评论+私信),私信对象明确仅评论区用户;只发私信模式下按增量判断是否记为已处理
This commit is contained in:
1 parent
91c4666998
commit
a320658ac8
4 files changed
+50
-24
No files matched your search
+27
-11
@@ -960,25 +960,41 @@
|
||||
step("[" + (task.index + 1) + "/" + task.queue.length + "] " + video.title.slice(0, 30));
|
||||
const text = video.text || pickTemplate(video.title, cfg.keyword);
|
||||
const SRC_LABEL = { custom: "自定义", ai: "AI", tpl: "模板" };
|
||||
step("评论[" + (SRC_LABEL[video.src] || "模板") + "]:" + text.slice(0, 30) + (text.length > 30 ? "…" : ""));
|
||||
// 发送内容三选一:comment=只评论 / dm=只发私信不发评论 / both=评论+私信
|
||||
const what = ["comment", "dm", "both"].indexOf(cfg.sendWhat) >= 0 ? cfg.sendWhat : "comment";
|
||||
const doComment = (what === "comment" || what === "both");
|
||||
const doDm = (what === "dm" || what === "both");
|
||||
|
||||
const r = await sendOne(video, text, cfg.sendMode !== "api");
|
||||
if (r.stopped) { finish(task, false, "已手动停止"); return; }
|
||||
if (r.fatal) { finish(task, false, r.fatal); return; }
|
||||
if (doComment) {
|
||||
step("评论[" + (SRC_LABEL[video.src] || "模板") + "]:" + text.slice(0, 30) + (text.length > 30 ? "…" : ""));
|
||||
|
||||
if (r.ok) {
|
||||
step(r.verified ? "✅ 评论成功" : "⚠️ 已发送但未在页面确认,记为已评论", r.verified ? "ok" : "fail");
|
||||
await recordOne(task, video, text, true);
|
||||
const r = await sendOne(video, text, cfg.sendMode !== "api");
|
||||
if (r.stopped) { finish(task, false, "已手动停止"); return; }
|
||||
if (r.fatal) { finish(task, false, r.fatal); return; }
|
||||
|
||||
if (r.ok) {
|
||||
step(r.verified ? "✅ 评论成功" : "⚠️ 已发送但未在页面确认,记为已评论", r.verified ? "ok" : "fail");
|
||||
await recordOne(task, video, text, true);
|
||||
} else {
|
||||
step("❌ 失败:" + r.error, "fail");
|
||||
await recordOne(task, video, text, false);
|
||||
}
|
||||
} else {
|
||||
step("❌ 失败:" + r.error, "fail");
|
||||
await recordOne(task, video, text, false);
|
||||
step("本条不发评论(发送内容=只发私信)");
|
||||
}
|
||||
|
||||
// 私信(可选,评论后对本视频评论区用户发送;风控更严,间隔更长)
|
||||
if (cfg.dmEnabled && !stopRequested()) {
|
||||
// 私信:对本视频评论区里发过评论的人发送;风控更严,间隔更长
|
||||
let dmBefore = task.dmSent || 0; // 本视频发送前的累计数,用于算增量
|
||||
if (doDm && !stopRequested()) {
|
||||
await runDmStep(task, video);
|
||||
}
|
||||
|
||||
// 只发私信模式下也要记为「已处理」,否则下次会重复进同一视频
|
||||
// 注意按「本视频的增量」判断,不能用累计数(否则前面发过就会误记后面没发的)
|
||||
if (!doComment && (task.dmSent || 0) > dmBefore) {
|
||||
await recordOne(task, video, text, true);
|
||||
}
|
||||
|
||||
task.index += 1;
|
||||
|
||||
if (task.index < task.queue.length && !stopRequested()) {
|
||||
|
||||
Reference in new issue
Block a user