快捷搜索steam商店
// ==UserScript== // @name:zh-CN 杉果Steam快捷搜索 // @name Sonkwo_Steam_Search // @namespace https://blog.chrxw.com/ // @supportURL https://blog.chrxw.com/scripts.html // @contributionURL https://afdian.com/@chr233 // @icon https://blog.chrxw.com/favicon.ico // @version 2.5 // @description 快捷搜索steam商店 // @description:zh-CN 快捷搜索steam商店 // @author Chr_ // @license AGPL-3.0 // @connect steampowered.com // @match https://www.sonkwo.com/sku/* // @match https://www.sonkwo.hk/sku/* // @match https://www.sonkwo.cn/sku/* // @require https://greasyfork.org/scripts/431430-search-steam-store/code/Search_Steam_Store.js // @grant GM_xmlhttpRequest // @grant GM_addStyle // @grant GM_registerMenuCommand // ==/UserScript== (() => { "use strict"; const auto = window.localStorage["ss_auto"] ?? "关"; let GdivR###lt = null; //控件数组 const t =setTimeout(() => { const container = document.querySelector("div.main-content"); if (container !== null) { const ele = document.querySelector("div.sku-en-name") || document.querySelector("div.sku-cn-name"); if (ele && !ele.querySelector("button.btnSearch")) { console.log(ele); init(ele); }} }, 3000); // container.addEventListener("DOMNodeInserted", ({ relatedNode }) => { // const ele = document.querySelector("h5.typical-name-2") || document.querySelector("h3.typical-name-1"); // if (ele.querySelector("button.btnSearch") === null) { // init(ele); // } // }); //显示搜索按钮 function init(ele) { const keyword = ele.textContent.replace(/[-+=:;:;""‘’“”]/g, " "); const btnSearch = document.createElement("button"); btnSearch.className = "btnSearch"; btnSearch.textContent = "🔎"; btnSearch.addEventListener("mouseover", () => { btnSearch.textContent = "🔎 搜索Steam"; }); btnSearch.addEventListener("mouseout", () => { btnSearch.textContent = "🔎"; }); btnSearch.addEventListener("click", () => { showR###lt(keyword); }); ele.appendChild(btnSearch); const divR###lt = document.createElement("div"); divR###lt.className = "divR###lt"; ele.appendChild(divR###lt); GdivR###lt = divR###lt; if (auto === "开") { btnSearch.click(); } } //显示搜索结果 function showR###lt(keyword) { searchStore(keyword, "CN") .then((r###lt) => { GdivR###lt.innerHTML = ""; if (r###lt.length === 0) { const btnRst = document.createElement("button"); btnRst.textContent = "【快速搜索无结果,点击前往steam搜索页】"; btnRst.addEventListener("click", () => { window.open( `https://store.steampowered.com/search/?term=${keyword}` ); }); GdivR###lt.appendChild(btnRst); return; } for (const { appID, isBundle, appName, appPrice, appUrl, appImg, } of r###lt) { const btnRst = document.createElement("button"); btnRst.title = `${isBundle ? "bundle" : "app"}/${appID}`; btnRst.addEventListener("click", () => { window.open(appUrl); }); const btnName = document.createElement("p"); btnName.textContent = `${appName}【${appPrice}】`; btnRst.appendChild(btnName); btnRst.appendChild(document.createElement("br")); const btnImg = new Image(); btnImg.src = appImg; btnRst.appendChild(btnImg); GdivR###lt.appendChild(btnRst); } }) .catch((reason) => { alert(reason); }); } GM_registerMenuCommand(`自动搜索:【${auto}】`, () => { window.localStorage["ss_auto"] = auto === "开" ? "关" : "开"; }); })(); //CSS表 GM_addStyle(` .divR###lt { top: -180px; position: relative; width: 100%; overflow-y: hidden; white-space: nowrap; } .divR###lt > button { cursor: pointer; } .divR###lt > button:not(:last-child) { margin-right: 5px; } .divR###lt > button > p { display: inline; margin-left: 6px; } .divR###lt > button > img { zoom: 1.5; margin-top: 2px; } .btnSearch { padding: 0 5px; margin-left: 5px; } `);