fix: accept qdreader json map cookie input

This commit is contained in:
2026-05-17 17:58:01 +08:00
parent c040ca40df
commit 9d8021e1e4
3 changed files with 83 additions and 18 deletions
+37 -9
View File
@@ -554,18 +554,46 @@ function handleDelete(arg, store, bind) {
setStore(store); setBindStore(bind); setRemarkStore(remarks)
return "已删除 uid: " + duid
}
function normalizeCookieInput(arg) {
var s = trim(arg)
var obj = safeJsonParse(s, null)
if (isObject(obj)) {
var out = []
for (var uid in obj) if (obj.hasOwnProperty(uid)) {
var realUid = isRealUid(uid)
var cookie = trim(obj[uid])
if (!realUid || !cookie) continue
out.push({ uid: realUid, cookie: cookie })
}
return out
}
return [{ uid: "", cookie: s }]
}
function handleSaveCookie(arg, store, bind) {
var cookie = arg
if (cookie.indexOf("=") < 0 || cookie.indexOf(";") < 0) return "未识别到 Cookie。请发送:启点ck <QX抓到的完整cookie>"
var uid = extractUid(cookie)
if (!uid) return "无法从 Cookie 识别 uid。请确认 QX 抓的是启点读书福利中心 getlogininfo 请求,Cookie 内应包含 QDHeader 或 uid。"
var isNew = !store[uid]
var changed = store[uid] !== cookie
var entries = normalizeCookieInput(arg)
if (!entries.length) return "未识别到 Cookie。请发送:启点ck {\"uid\":\"cookie\"} 或 启点ck <QX抓到的完整cookie>"
var me = currentUserId()
store[uid] = cookie
if (me) bind[uid] = me
var lines = []
for (var i = 0; i < entries.length; i++) {
var cookie = entries[i].cookie
if (cookie.indexOf("=") < 0 || cookie.indexOf(";") < 0) return "未识别到 Cookie。请发送:启点ck {\"uid\":\"cookie\"} 或 启点ck <QX抓到的完整cookie>"
var parsedUid = extractUid(cookie)
var uid = entries[i].uid || parsedUid
if (!uid) return "无法从 Cookie 识别 uid。请确认 QX 抓的是启点读书福利中心 getlogininfo 请求,Cookie 内应包含 QDHeader 或 uid。"
var isNew = !store[uid]
var changed = store[uid] !== cookie
store[uid] = cookie
if (me) bind[uid] = me
lines.push("启点读书CK" + (isNew ? "新增" : (changed ? "更新" : "未变化")) + "成功")
lines.push("uid: " + uid)
if (entries.length > 1 && parsedUid && parsedUid !== uid) lines.push("提示: JSON uid 与 Cookie 解析 uid 不一致,已按 JSON uid 保存")
}
setStore(store); setBindStore(bind)
return ["启点读书CK" + (isNew ? "新增" : (changed ? "更新" : "未变化")) + "成功", "uid: " + uid, me ? ("绑定用户: " + maskUid(me)) : "绑定用户: 未识别", "账号数: " + visibleUids(store, bind, false).length, "cookie: " + maskCookie(cookie), "签到:发送 启点签到"].join("\n")
lines.push(me ? ("绑定用户: " + maskUid(me)) : "绑定用户: 未识别")
lines.push("账号数: " + visibleUids(store, bind, false).length)
lines.push("cookie: " + maskCookie(entries[0].cookie))
lines.push("签到:发送 启点签到")
return lines.join("\n")
}
function main() {
var text = contentText()