1
0

Enhance HUD functionality: implement flashing effect for HUD dot to indicate member-only video detection

This commit is contained in:
Chipperfluff 2026-01-20 07:34:22 +01:00
parent f708833cdf
commit a4f2f5c60b

View File

@ -17,6 +17,7 @@ const DEFAULT_MAX_ARCHIVE = 500;
const MAX_SNAPSHOT_CHARS = 20000; const MAX_SNAPSHOT_CHARS = 20000;
let persistTimer = null; let persistTimer = null;
let contextInvalidated = false; let contextInvalidated = false;
let hudFlashTimer = null;
function safeSnapshot(video) { function safeSnapshot(video) {
if (typeof buildSnapshot !== "function") return ""; if (typeof buildSnapshot !== "function") return "";
@ -82,6 +83,13 @@ function injectStyleOnce() {
box-shadow: 0 0 0 3px rgba(255, 140, 0, 0.4); box-shadow: 0 0 0 3px rgba(255, 140, 0, 0.4);
animation: ${DATA_PREFIX}-pulse 1.8s ease-in-out infinite; animation: ${DATA_PREFIX}-pulse 1.8s ease-in-out infinite;
} }
#${HUD_DOT_ID}[data-${DATA_PREFIX}-flash="true"] {
background: #ffd84a;
border-color: #e0a600;
transform: scale(1.8);
box-shadow: 0 0 0 10px rgba(255, 216, 74, 0.4);
transition: transform 0.15s ease, box-shadow 0.15s ease;
}
@keyframes ${DATA_PREFIX}-pulse { @keyframes ${DATA_PREFIX}-pulse {
0% { 0% {
transform: scale(0.9); transform: scale(0.9);
@ -381,6 +389,7 @@ function process(root = document) {
if (!whitelisted) { if (!whitelisted) {
if (id && memberOnlyIndex.has(id)) { if (id && memberOnlyIndex.has(id)) {
const meta = memberOnlyIndex.get(id); const meta = memberOnlyIndex.get(id);
if (!meta.hidden) flashHudDot();
if (!meta.snapshot) meta.snapshot = safeSnapshot(video); if (!meta.snapshot) meta.snapshot = safeSnapshot(video);
if (!meta.hidden) hudDirty = true; if (!meta.hidden) hudDirty = true;
meta.hidden = true; meta.hidden = true;
@ -674,6 +683,15 @@ function updateHudDot() {
} }
} }
function flashHudDot() {
const dot = ensureHudDot();
dot.setAttribute(`data-${DATA_PREFIX}-flash`, "true");
if (hudFlashTimer) clearTimeout(hudFlashTimer);
hudFlashTimer = setTimeout(() => {
dot.removeAttribute(`data-${DATA_PREFIX}-flash`);
}, 900);
}
function updateSharedIndex(meta, hidden) { function updateSharedIndex(meta, hidden) {
if (!meta.stableId) { if (!meta.stableId) {
meta.stableId = meta.url || meta.id || ""; meta.stableId = meta.url || meta.id || "";