VOZ - Remove tag [HN] in the alert page
// ==UserScript==
// @name VOZ - Remove tag [HN]
// @version 0.1.7
// @namespace VOZ
// @description VOZ - Remove tag [HN] in the alert page
// @author N.Duong
// @license MIT
// @match https://voz.vn/*
// @run-at document-start
// @icon https://www.google.com/s2/favicons?sz=64&domain=voz.vn
// @grant none
// ==/UserScript==
(function() {
'use strict';
function safeQuery(selector) {
try {
return document.querySelector(selector);
} catch (err) {
console.error(`Query failed for selector: ${selector}`, err);
return null;
}
}
function safeRemoveHNItems() {
try {
const items = document.querySelectorAll('li[data-alert-id]');
items.forEach(item => {
try {
const labelSpan = item.querySelector('span.label.label--green');
if (labelSpan && labelSpan.textContent.trim() === 'HN') {
item.remove();
}
} catch (err) {
console.warn('Error checking/removing item:', err);
}
});
} catch (err) {
console.error('Error removing HN items:', err);
}
}
function tryInjectBadge() {
let attempts = 0;
const maxAttempts = 10;
const intervalMs = 500;
const retryInterval = setInterval(() => {
attempts++;
try {
const alertLink = safeQuery('a[data-nav-id="ALERTS"]');
const numberOfAlert = safeQuery('a[href="/account/alerts"]');
if (alertLink && numberOfAlert) {
clearInterval(retryInterval);
const badgeValue = numberOfAlert.getAttribute('data-badge') || '0';
console.log("FOUND ALERTS link, badge =", badgeValue);
const badge = document.createElement('span');
badge.textContent = badgeValue;
badge.className = 'vn-alert-badge';
badge.style.cssText = `
background: red;
color: white;
border-radius: 21%;
padding: 2px 6px;
font-size: 12px;
margin-left: 6px;
`;
alertLink.appendChild(badge);
}
if (attempts >= maxAttempts) {
clearInterval(retryInterval);
console.warn("ALERTS link not found after 10 attempts.");
}
} catch (err) {
console.error('Error during badge injection attempt:', err);
}
}, intervalMs);
}
window.addEventListener('DOMContentLoaded', () => {
try {
safeRemoveHNItems();
tryInjectBadge();
} catch (err) {
console.error('Unexpected error in main handler:', err);
}
});
})();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址