fix(qdreader): separate account replies and verify adv tasks

This commit is contained in:
2026-05-21 22:36:47 +08:00
parent 1b546fa3e1
commit c94a3f16f7
3 changed files with 134 additions and 35 deletions
+36 -17
View File
@@ -651,27 +651,38 @@ function doAdvTask(cookie) {
var tasks = firstArray(nested(main, ["Data", "VideoRewardTab", "TaskList"]), nested(main, ["data", "VideoRewardTab", "TaskList"]), nested(main, ["Data", "TaskList"]), nested(main, ["data", "TaskList"]))
if (!tasks.length) return { name: "激励任务", ok: true, msg: "无待完成任务", path: "/argus/api/v2/video/adv/mainPage" }
if (taskFinished(tasks[tasks.length - 1])) return { name: "激励任务", ok: true, msg: "已完成", path: "/argus/api/v2/video/adv/mainPage" }
var done = 0
var attempted = false
var blocked = 0
var submittedIds = {}
var submittedCount = 0
var skippedCount = 0
for (var i = 0; i < tasks.length; i++) {
var t = tasks[i] || {}
if (taskFinished(t)) continue
var tid = taskIdOf(t)
if (!tid) continue
if (!advTaskActionable(t)) { blocked++; continue }
attempted = true
if (!advTaskActionable(t)) { skippedCount++; continue }
var fr = finishVideoTask(t, cookie)
done += fr.ok
if (fr.taskId) { submittedIds[taskIdKey(fr.taskId)] = true; submittedCount += fr.ok }
if (fr.ok < fr.total) return { name: "激励任务", ok: false, msg: resultMsg(fr.last) || ("任务 " + tid + " 失败"), path: "/argus/api/v1/video/adv/finishWatch" }
}
var verify = qdGet("/argus/api/v2/video/adv/mainPage", {}, cookie)
var after = firstArray(nested(verify, ["Data", "VideoRewardTab", "TaskList"]), nested(verify, ["data", "VideoRewardTab", "TaskList"]), nested(verify, ["Data", "TaskList"]), nested(verify, ["data", "TaskList"]))
var unfinishedSubmitted = 0
var actionableLeft = 0
for (var v = 0; v < after.length; v++) if (!taskFinished(after[v]) && taskIdOf(after[v]) && advTaskActionable(after[v])) actionableLeft++
var finished = actionableLeft === 0
var suffix = blocked ? (",跳过 " + blocked + " 个需其它入口任务") : ""
return { name: "激励任务", ok: finished, msg: finished ? (attempted ? ("已完成" + suffix) : ("无待完成任务" + suffix)) : (done ? ("已提交 " + done + " 个视频任务,仍有 " + actionableLeft + " 个未完成" + suffix) : ("仍有 " + actionableLeft + " 个未完成" + suffix)), path: "/argus/api/v2/video/adv/mainPage" }
for (var v = 0; v < after.length; v++) {
var at = after[v]
var aid = taskIdKey(taskIdOf(at))
if (!aid) continue
if (submittedIds[aid]) {
if (!taskFinished(at)) unfinishedSubmitted++
continue
}
if (!taskFinished(at) && advTaskActionable(at)) actionableLeft++
}
var submittedKeys = Object.keys(submittedIds)
var finished = submittedKeys.length ? unfinishedSubmitted === 0 : actionableLeft === 0
var suffix = skippedCount ? (",跳过 " + skippedCount + " 个需其它入口任务") : ""
var left = submittedKeys.length ? unfinishedSubmitted : actionableLeft
return { name: "激励任务", ok: finished, msg: finished ? (submittedKeys.length ? ("已完成" + suffix) : ("无待完成任务" + suffix)) : (submittedCount ? ("已提交 " + submittedCount + " 个视频任务,仍有 " + left + " 个未完成" + suffix) : ("仍有 " + left + " 个未完成" + suffix)), path: "/argus/api/v2/video/adv/mainPage" }
}
function doDailyTask(cookie) {
var list = qdGet("/argus/api/v3/checkin/packagelist", {}, cookie)
@@ -864,32 +875,40 @@ function signAll(targetUid, allUsers, source, archiveAfterRun) {
var okCount = 0
var failCount = 0
var items = []
var lines = ["启点读书签到结果:"]
var accountReplies = []
for (var i = 0; i < uids.length; i++) {
var uid = uids[i]
var prefix = "启点读书签到结果:\n"
var suffix = ""
if (remarks[uid]) suffix = "" + remarks[uid] + ""
try {
var r = doCheckin(uid, store[uid], source, runId)
if (r.ok) okCount++; else failCount++
items.push({ uid: String(uid), ok: !!r.ok, msg: String(r.msg || ""), time: r.log.time, remark: remarks[uid] || "" })
lines.push((r.ok ? "✅ " : "❌ ") + maskUid(uid) + (remarks[uid] ? "" + remarks[uid] + "" : "") + "" + r.msg)
accountReplies.push(prefix + (r.ok ? "✅ " : "❌ ") + maskUid(uid) + suffix + "" + r.msg)
} catch (e) {
failCount++
var emsg = e && e.message ? e.message : String(e)
var er = { uid: String(uid), ok: false, msg: emsg, time: nowIso(), startedAt: startedAt, source: source, runId: runId, error: true, remark: remarks[uid] || "" }
setLastResult(uid, er)
items.push(er)
lines.push("❌ " + maskUid(uid) + (remarks[uid] ? "" + remarks[uid] + "" : "") + "" + emsg)
accountReplies.push(prefix + "❌ " + maskUid(uid) + suffix + "" + emsg)
}
}
var finishedAt = nowIso()
setLastRunLog({ runId: runId, source: source, startedAt: startedAt, finishedAt: finishedAt, targetUid: targetUid || "", allUsers: !!allUsers, total: uids.length, okCount: okCount, failCount: failCount, items: items })
lines.push("汇总:成功 " + okCount + " / 失败 " + failCount + " / 总计 " + uids.length)
lines.push("记录时间:" + finishedAt + "" + sourceName(source) + "")
var tail = []
tail.push("汇总:成功 " + okCount + " / 失败 " + failCount + " / 总计 " + uids.length)
tail.push("记录时间:" + finishedAt + "" + sourceName(source) + "")
if (archiveAfterRun) {
var ar = archiveRunLog(source + "-after-sign")
if (ar && ar.archived) lines.push("日志已归档:" + ar.key)
if (ar && ar.archived) tail.push("日志已归档:" + ar.key)
}
return lines.join("\n")
if (accountReplies.length > 1) {
for (var ai = 0; ai < accountReplies.length; ai++) reply(accountReplies[ai])
return tail.join("\n")
}
return accountReplies[0] + "\n" + tail.join("\n")
}
function shortTime(iso) {