您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
修改高登網頁嘅台名及背景顏色
// ==UserScript== // @name Wokeden // @namespace http://tampermonkey.net/ // @version 0.4 // @description 修改高登網頁嘅台名及背景顏色 // @author 居理夫人 // @match *://*.hkgolden.com/* // @grant none // @license GNU General Public License v3.0. // ==/UserScript== (function() { 'use strict'; // 修改台名嘅list const nameChanges = { "吹水台": "中立台", "高登熱": "Trending", "最 新": "多元新政", "時事台": "社會正義", "娛樂台": "多元性格", "體育台": "環保運動", "財經台": "社會主義", "學術台": "性別認同", "講故台": "白人暴力", "創意台": "多樣創意", "超自然台": "JSO運動", "優惠台": "零元購物", "遊戲台": "政確遊戲", "飲食台": "素食文化", "旅遊台": "FREE GAZA" }; // 修改台icon嘅list const svgMapping = { "channel-BW": "https://raw.githubusercontent.com/Ramen-LadyHKG/wokeden/bef98d610730792b2de8d5989b73e2e393c30a1c/channel-BW.svg", "channel-CA": "https://raw.githubusercontent.com/Ramen-LadyHKG/wokeden/bef98d610730792b2de8d5989b73e2e393c30a1c/channel-CA.svg", "channel-CP": "https://raw.githubusercontent.com/Ramen-LadyHKG/wokeden/bef98d610730792b2de8d5989b73e2e393c30a1c/channel-CP.svg", "channel-ED": "https://raw.githubusercontent.com/Ramen-LadyHKG/wokeden/bef98d610730792b2de8d5989b73e2e393c30a1c/channel-ED.svg", "channel-EP": "https://raw.githubusercontent.com/Ramen-LadyHKG/wokeden/bef98d610730792b2de8d5989b73e2e393c30a1c/channel-EP.svg", "channel-ET": "https://raw.githubusercontent.com/Ramen-LadyHKG/wokeden/bef98d610730792b2de8d5989b73e2e393c30a1c/channel-ET.svg", "channel-FN": "https://raw.githubusercontent.com/Ramen-LadyHKG/wokeden/bef98d610730792b2de8d5989b73e2e393c30a1c/channel-FN.svg", "channel-GM": "https://raw.githubusercontent.com/Ramen-LadyHKG/wokeden/bef98d610730792b2de8d5989b73e2e393c30a1c/channel-GM.svg", "channel-SN": "https://raw.githubusercontent.com/Ramen-LadyHKG/wokeden/bef98d610730792b2de8d5989b73e2e393c30a1c/channel-SN.svg", "channel-SP": "https://raw.githubusercontent.com/Ramen-LadyHKG/wokeden/bef98d610730792b2de8d5989b73e2e393c30a1c/channel-SP.svg", "channel-ST": "https://raw.githubusercontent.com/Ramen-LadyHKG/wokeden/bef98d610730792b2de8d5989b73e2e393c30a1c/channel-ST.svg", "channel-SY": "https://raw.githubusercontent.com/Ramen-LadyHKG/wokeden/bef98d610730792b2de8d5989b73e2e393c30a1c/channel-SY.svg", "channel-TR": "https://raw.githubusercontent.com/Ramen-LadyHKG/wokeden/bef98d610730792b2de8d5989b73e2e393c30a1c/channel-TR.svg" }; // �去改顏色同埋台名 function changeBackgroundColors() { // 修改台名 const spans = document.querySelectorAll('span.MuiTypography-root.MuiListItemText-primary'); spans.forEach(span => { const newText = nameChanges[span.textContent.trim()]; if (newText) { span.textContent = newText; // 修改台名 } }); // 修改喺文章header位置嘅台名 const currentchannel = document.evaluate('/html/body/div[1]/div/div[1]/main/div[3]/div[1]/header/div/div/div[1]/div[1]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (currentchannel) { const newText = nameChanges[currentchannel.textContent.trim()]; if (newText) { currentchannel.textContent = newText; // 修改台名 } } // 修改背景顏色 document.body.style.background = 'linear-gradient(to right, red, orange, yellow, green, cyan, blue, violet)'; const header = document.evaluate('/html/body/div[1]/div/header', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (header) { header.style.background = 'linear-gradient(to right, red, orange, yellow, green, aqua, blue, violet)'; // 修改持續header背景 } // 修改轉台欄位多個div嘅背景 const navDivs = [ '/html/body/div[1]/div/div/nav/div/div/div/div[1]', '/html/body/div[1]/div/div/nav/div/div/div/div[2]/div', '/html/body/div[1]/div/div/nav/div/div/div/div[3]/div', '/html/body/div[1]/div/div/nav/div/div/div/div[4]/div', '/html/body/div[1]/div/div/nav/div/div/div/div[5]/div', '/html/body/div[1]/div/div/nav/div/div/div/div[6]/div' ]; navDivs.forEach(xpath => { const element = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (element) { element.style.background = 'linear-gradient(rgb(251 22 22) 0%, rgb(215 126 85) 80%, rgba(255, 0, 0, 0) 100%)'; } }); const mainHeader = document.evaluate('/html/body/div[1]/div/div/main/div[3]/div[1]/header', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (mainHeader) { mainHeader.style.background = 'linear-gradient(to right, #ff8d00, #ffc300, #fffc00, #8dc600, #008204, #00c68d, #00fdfa, #005fff)'; // 修改主header背景 } const navBackground = document.evaluate('/html/body/div[1]/div/div/nav/div/div/div', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (navBackground) { navBackground.style.background = 'none'; // 修改轉台欄嘅背景 } const headerDiv = document.evaluate('/html/body/div[1]/div/div/main/div[3]/div[1]/header/div/div/div[1]/div[2]/div', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (headerDiv) { headerDiv.style.background = '#b320a3'; // 修改ForumMenu背景 } const ForumMenu = document.evaluate('//*[@id="mui-component-select-切換"]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (ForumMenu) { ForumMenu.style.background = '#b320a3'; // 修改ForumMenu背景 } const searchtype = document.evaluate('//*[@id="mui-component-select-搜尋"]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; const searchbar = document.evaluate('/html/body/div[1]/div/header/div/div/div[2]/div/div/div[2]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; const searchbutton = document.evaluate('/html/body/div[1]/div/header/div/div/div[2]/div/div/div[3]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; // 修改searchbar if (searchtype) { searchtype.style.background = '#b320a3'; } if (searchbar) { searchbar.style.backgroundColor = "#b320a3"; } if (searchbutton) { searchbutton.style.backgroundColor = '#b320a3'; } const sideAD1 = document.evaluate('/html/body/div[1]/div/div/main/div[2]/div[2]/div[1]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; const sideAD2 = document.evaluate('/html/body/div[1]/div/div/main/div[2]/div[2]/div[2]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (sideAD1) { sideAD1.style.background = "#b320a3"; } if (sideAD2) { sideAD2.style.background = '#b320a3'; } const bam1 = document.evaluate('/html/body/div[1]/div/div/main/div[3]/div[2]/div/div[1]/div/div/header', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; const bam2 = document.evaluate('/html/body/div[1]/div/div/main/div[3]/div[2]/div/div[1]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; const bamBG1 = document.evaluate('/html/body/div[1]/div/div/main/div[3]/div[2]/div', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; const bamBG2 = document.evaluate('/html/body/div[1]/div/div/main/div[3]/div[2]/div/div[2]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (bam1) { bam1.style.background = "red"; } if (bam2) { bam2.style.background = '#ac0707'; } if (bamBG1 && bamBG2) { bamBG1.style.background = 'none'; bamBG2.style.background = 'none'; } const HKGLOGO = document.evaluate('/html/body/div[1]/div/header/div/div/div[1]/div/a/div', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (HKGLOGO) { HKGLOGO.style.backgroundImage = 'url(https://raw.githubusercontent.com/Ramen-LadyHKG/wokeden/refs/heads/main/wokeden_logo.png)'; } const AppsAD = document.evaluate('/html/body/div[1]/div/div/main/div[3]/div[2]/div/div[2]/div/div[2]/img', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (AppsAD) { AppsAD.style.display = 'none'; } const profileMenu = document.evaluate('/html/body/div[4]/div', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (profileMenu) { profileMenu.style.background = 'linear-gradient(to bottom, red, orange, yellow, green, cyan, blue, violet)'; profileMenu.style.color = 'black'; } // 修改文章 div 嘅背景顏色 let index = 1; while (true) { const BlockDiv = document.evaluate(`/html/body/div[1]/div/div/main/div[3]/div[1]/div/div[${index}]`, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; const NormalDiv = document.evaluate(`/html/body/div[1]/div/div/main/div[3]/div[1]/div/div[${index}]/div`, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; const AdDiv = document.evaluate(`/html/body/div[1]/div/div/main/div[3]/div[1]/div/div[${index}]/div[2]`, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; const BlockAd1Div = document.evaluate(`/html/body/div[1]/div/div/main/div[3]/div[1]/div/div[${index}]/div[1]`, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; const BlockAd3Div = document.evaluate(`/html/body/div[1]/div/div/main/div[3]/div[1]/div/div[${index}]/div[3]`, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; const BlockAdNextDiv = document.evaluate(`/html/body/div[1]/div/div/main/div[3]/div[1]/div/div[${index}]/div[2]/div`, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; const NextDiv = document.evaluate(`/html/body/div[1]/div/div/main/div[3]/div[1]/div/div[${index}]/div[1]/div`, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; // 檢查正常情況(文章) if (NormalDiv && !BlockDiv.textContent.includes("Blocked User")) { if (AdDiv) { AdDiv.style.background = 'rgb(134, 5, 5)'; // 廣告背景 NextDiv.style.background = 'rgb(194, 54, 54)'; // 廣告後嘅正常文章 } else { NormalDiv.style.background = 'rgb(194, 54, 54)'; // 正常文章背景 } index++; } // 檢查特殊情況(封鎖用戶) else if (BlockDiv && BlockDiv.textContent.includes("Blocked User") && !BlockAd3Div) { BlockDiv.style.background = 'rgb(132, 23, 23)'; // 封鎖用戶背景 index++; } // 檢查特殊情況(同時出現封鎖用戶同埋廣告) else if (BlockAd3Div && !BlockAd1Div) { BlockAd1Div.style.background = 'rgb(132, 23, 23)'; // 封鎖用戶背景 BlockAd3Div.style.background = 'rgb(134, 5, 5)'; // 廣告背景 BlockAdNextDiv.style.background = 'rgb(194, 54, 54)'; // 廣告後的正常文章 index++; } else { break; // 如果搵唔到更多div就停止 } } } // 改轉台icon function replaceSVGWithImg() { const svgElements = document.querySelectorAll('svg[aria-hidden="true"]'); svgElements.forEach(svg => { const useElement = svg.querySelector('use'); if (useElement) { const href = useElement.getAttribute('xlink:href'); const svgId = href ? href.replace('#', '') : null; const imgSrc = svgMapping[svgId]; if (imgSrc) { const imgElement = document.createElement('img'); imgElement.src = imgSrc; imgElement.width = 16; imgElement.height = 16; imgElement.alt = svgId; // 取消 SVG 改用im g svg.parentNode.replaceChild(imgElement, svg); } } }); } // 當頁面載入完成就執行一次 window.addEventListener('load', () => { changeBackgroundColors(); replaceSVGWithImg(); }); // 用MutationObserver 去監控 DOM 嘅變化 const observer = new MutationObserver((mutationsList) => { for (const mutation of mutationsList) { if (mutation.type === 'childList' || mutation.type === 'subtree') { changeBackgroundColors(); replaceSVGWithImg(); break; } } }); observer.observe(document.body, { childList: true, subtree: true }); })();