Steam 隐藏内容刮刀
// ==UserScript== // @name:zh-CN Steam隐藏内容刮刀 // @name Steam_Spoiler_Scraper // @namespace https://blog.chrxw.com // @supportURL https://blog.chrxw.com/scripts.html // @contributionURL https://afdian.net/@chr233 // @version 1.3 // @description Steam 隐藏内容刮刀 // @author Chr_ // @match https://steamcommunity.com/* // @license AGPL-3.0 // @icon https://blog.chrxw.com/favicon.ico // ==/UserScript== // 初始化 (() => { "use strict"; addPanel(); addFunction(); // 添加按钮 function addPanel() { function genBtn(name, foo, tooltip, id) { let s = document.createElement("span"); s.className = "general_btn tooltip"; s.title = tooltip; s.textContent = name; s.addEventListener("click", foo); if (id) { s.id = id; } return s; } let btnReport = document.getElementById("ReportItemBtn"); if (btnReport != null) { let btnDiv = btnReport.parentElement; let btnShow = genBtn("刮开", () => { scratchAll(true); }, "刮开所有隐藏", "btnShow"); let btnHide = genBtn("恢复", () => { scratchAll(false); }, "恢复所有隐藏", "btnHide"); btnDiv.appendChild(btnShow); btnDiv.appendChild(btnHide); } } // 为每个隐藏绑定函数 function addFunction() { for (let ele of document.querySelectorAll(".bb_spoiler")) { ele.addEventListener("click", scratch); } } // 刮开单个隐藏 function scratch(ele) { let s = ele.currentTarget; console.log(s.getAttribute("scratch")); if (s.getAttribute("scratch") != "on") { for (let e of s.querySelectorAll("*")) { e.style.cssText = "visibility:visible;color:#fff;"; } s.setAttribute("scratch", "on"); } else { for (let e of s.querySelectorAll("*")) { e.style.cssText = ""; } s.removeAttribute("scratch"); } } // 刮开所有隐藏 function scratchAll(show = true) { for (let ele of document.querySelectorAll(".bb_spoiler")) { if ((ele.getAttribute("scratch") != "on") === show) { ele.click(); } } } })();