From f261f754d4b5eb5b276c3a901dc60b75eb581a32 Mon Sep 17 00:00:00 2001 From: Ghibli1024 Date: Sun, 26 Jul 2026 22:30:43 +0800 Subject: [PATCH] feat: update Hide Usage Alert to 0.1.5 --- index.json | 8 ++++---- scripts/hide-usage-alert.js | 22 +++++++++++++++++++++- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/index.json b/index.json index 2694c08..1c040ad 100644 --- a/index.json +++ b/index.json @@ -1,6 +1,6 @@ { "version": 1, - "updated_at": "2026-07-16T08:27:07Z", + "updated_at": "2026-07-26T14:30:31Z", "scripts": [ { "id": "codex-context-used-meter", @@ -21,8 +21,8 @@ { "id": "hide-usage-alert", "name": "Hide Usage Alert", - "description": "隐藏额度提醒", - "version": "0.1.4", + "description": "隐藏额度提醒与顶栏获取 Plus 按钮", + "version": "0.1.5", "author": "0xTotoroX", "tags": [ "usage", @@ -32,7 +32,7 @@ ], "homepage": "https://github.com/0xTotoroX/codex-hide-usage-alert", "script_url": "https://raw.githubusercontent.com/BigPizzaV3/CodexPlusPlusScriptMarket/main/scripts/hide-usage-alert.js", - "sha256": "29fb7eb5b44cda3281ddcaed5174746c02b0a8b9de461c49774bb3746a3cda7b" + "sha256": "c7e907e998bfc3d4153302fa84dfb0b1e4fa16d6e738db669713a84872f631d6" }, { "id": "model-deck", diff --git a/scripts/hide-usage-alert.js b/scripts/hide-usage-alert.js index 0422930..d7447b3 100644 --- a/scripts/hide-usage-alert.js +++ b/scripts/hide-usage-alert.js @@ -6,7 +6,7 @@ const HIDDEN_ATTR = "data-codex-plus-hidden-usage-alert"; const HIDDEN_KIND_ATTR = `${HIDDEN_ATTR}-kind`; const HIDDEN_MARKER_SELECTOR = `[${HIDDEN_ATTR}], [${HIDDEN_KIND_ATTR}]`; - const SCRIPT_VERSION = "0.1.4"; + const SCRIPT_VERSION = "0.1.5"; const PROTECTED_SURFACE_SELECTOR = [ "[data-codex-composer-root]", "[data-codex-composer]", @@ -50,6 +50,9 @@ /(剩余\s*\d+%\s*使用量|重置频率|下次重置时间|remaining\s+\d+%\s+usage|usage\s+remaining|reset\s+frequency|next\s+reset)/i; const actionTextRe = /(升级|Plus|upgrade|pricing|plan|重置|reset|限额|额度|限制|limit|quota)/i; + const plusUpsellRe = + /^(?:获取|开通|升级(?:至|到)?|免费试用|试用|Get|Try|Upgrade(?:\s+to)?)\s*(?:ChatGPT\s*)?Plus$/i; + const PLUS_UPSELL_SELECTOR = "button, a, [role='button']"; function normalizeText(value) { return String(value || "").replace(/\s+/g, " ").trim(); @@ -138,6 +141,22 @@ return usageCardBox(node); } + function looksLikePlusUpsell(node) { + if (!node.matches(PLUS_UPSELL_SELECTOR)) return false; + if (!node.closest("header")) return false; + if (intersectsConversationContent(node)) return false; + return plusUpsellRe.test(candidateText(node)); + } + + function scanPlusUpsell(root) { + const nodes = Array.from(root.querySelectorAll(PLUS_UPSELL_SELECTOR)); + if (root.matches(PLUS_UPSELL_SELECTOR)) nodes.unshift(root); + for (const node of nodes) { + if (node.closest(`[${HIDDEN_ATTR}="true"]`)) continue; + if (looksLikePlusUpsell(node)) hideNode(node, "plus-upsell"); + } + } + function hideNode(node, kind) { if (!isElement(node) || node === document.body || node === document.documentElement) return false; if (node.getAttribute(HIDDEN_ATTR) === "true") return false; @@ -208,6 +227,7 @@ function scanSubtree(root) { if (!isElement(root)) return false; state.scans += 1; + scanPlusUpsell(root); for (const node of collectCandidates(root)) classifyCandidate(node); return true; }