fix: repair legacy qdreader fallback bindings

This commit is contained in:
2026-05-17 22:07:15 +08:00
parent 89de9452b1
commit afc80336d8
3 changed files with 76 additions and 11 deletions
+23 -2
View File
@@ -4,7 +4,7 @@
//[author: Hermes]
//[service: BOSS]
//[class: 工具类]
//[version: 2.4.1]
//[version: 2.4.2]
//[platform: web,qq,wx,tg,tb,fs,we]
//[public: false]
//[price: 0]
@@ -124,6 +124,23 @@ function currentUserId() {
function currentOwnerId() {
return currentUserId()
}
function currentIsAdmin() {
try { if (typeof isAdmin === "function" && isAdmin()) return true } catch (e) {}
try { if (typeof sender !== "undefined" && sender && typeof sender.isAdmin === "function" && sender.isAdmin()) return true } catch (e2) {}
try { if (typeof Sender !== "undefined" && Sender && typeof Sender.isAdmin === "function" && Sender.isAdmin()) return true } catch (e3) {}
return false
}
function looksLikeLegacyFallbackOwner(owner) {
owner = trim(owner)
if (!owner) return false
if (owner === "__qdreader_default_owner__") return true
if (/^[A-Za-z0-9._-]{1,32}$/.test(owner) && !/^\d{5,}$/.test(owner)) return true
return false
}
function canRepairBinding(oldOwner, me) {
if (!oldOwner || oldOwner === me) return true
return currentIsAdmin() && looksLikeLegacyFallbackOwner(oldOwner)
}
function currentUserDebug() {
var parts = []
var fns = ["GetUserID", "GetChatID", "GetImType", "ImType", "GetUsername"]
@@ -242,7 +259,7 @@ function contentText() {
}
function usage() {
return [
"启点读书签到插件 v2.4.1",
"启点读书签到插件 v2.4.2",
"【一级菜单】",
"账号管理:启点账号",
"执行查询:启点查询",
@@ -658,6 +675,10 @@ function handleSaveCookie(arg, store, bind) {
oldOwner = ""
lines.push("检测到 uid: " + uid + " 只有旧绑定没有CK,已自动清理残留绑定")
}
if (store[uid] && oldOwner && oldOwner !== me && canRepairBinding(oldOwner, me)) {
lines.push("检测到 uid: " + uid + " 旧绑定来自历史兜底标识 " + maskUid(oldOwner) + ",已修复为当前用户")
oldOwner = ""
}
if (store[uid] && oldOwner && me && oldOwner !== me) {
lines.push("无权更新 uid: " + uid + "(该账号已绑定其他用户)")
continue