您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Modified version of iMSteam, which adds other sites\trackers and more.
// ==UserScript== // @name iMSteam Plus // @version 0.1 // @description Modified version of iMSteam, which adds other sites\trackers and more. // @author iMAboud. Mod by Ner_Kun // @license MIT // @match https://store.steampowered.com/* // @grant GM_addStyle // @namespace https://gf.qytechs.cn/users/1302606 // ==/UserScript== (function() { 'use strict'; const sites = [ {name: "Online Fix", url: "https://online-fix.me/index.php?do=search&subaction=search&story={SearchGameName}", icon: "https://i.imgur.com/WAXRAUw.png"}, {name: "Skidrow", url: "https://www.skidrowreloaded.com/?s={SearchGameName}", icon: "https://i.imgur.com/sfzB2DE.png"}, {name: "FitGirl", url: "https://fitgirl-repacks.site/?s={SearchGameName}", icon: "https://i.imgur.com/GOFbweI.png"}, {name: "SteamRIP", url: "https://steamrip.com/?s={SearchGameName}", icon: "https://i.imgur.com/tmvOT86.png"}, {name: "Dodi", url: "https://dodi-repacks.site/?s={SearchGameName}", icon: "https://i.imgur.com/g71t1Ge.png"}, {name: "Gload", url: "https://gload.to/?s={SearchGameName}", icon: "https://gload.to/logo.png"}, {name: "GOG", url: "https://www.gog-games.to/search/{SearchGameName}", icon: "https://i.imgur.com/wXfz72C.png"}, {name: "Crack Status", url: "https://crackstatus.net/tracker.php?nm={SearchGameName}", icon: "https://crackstatus.net/styles/templates/default/images/Hot_icons/rel/PNL2.png"}, {name: "RuTracker", url: "https://rutracker.org/forum/tracker.php?nm={SearchGameName}", icon: "https://i.imgur.com/FUojuvE.png"}, {name: "1377x", url: "https://www.1377x.to/category-search/{SearchGameName}/Games/1/", icon: "https://www.1377x.to/images/logo.svg"}, {name: "VseTop", url: "https://vsetop.org/index.php?do=search&subaction=search&search_start=0&full_search=1&story={SearchGameName}", icon: "https://vsetop.org/templates/vsetop/images/logo3.gif"}, {name: "HowLongToBeat", url: "https://howlongtobeat.com/?q={SearchGameName}", icon: "https://howlongtobeat.com/img/icons/apple-touch-icon-72x72.png"}, {name: "Toloka", url: "https://toloka.to/tracker.php?nm={SearchGameName}", icon: "https://toloka.to/templates/Saphic/images/left-overlay_13.png"}, {name: "Іsland of pleasure", url: "https://island-of-pleasure.site/search/{SearchGameName}", icon: "https://island-of-pleasure.site/templates/flat-cinema/images/logo.png"}, {name: "f95zone", url: "https://f95zone.to/search/?q={SearchGameName}&o=relevance", icon: "https://f95zone.to/assets/logo.png"} ]; const translations = { en: { settings: "Settings", selectSites: "Select Sites to Display", language: "Language", english: "English", ukrainian: "Українська", save: "Save", default: "Default", searchOn: "Search on" }, uk: { settings: "Налаштування", selectSites: "Виберіть сайти для відображення", language: "Мова", english: "Англійська", ukrainian: "Українська", save: "Зберегти", default: "За замовчуванням", searchOn: "Пошук на" } }; let lang = localStorage.getItem('language') || (navigator.language.startsWith('uk') ? 'uk' : 'en'); function t(key) { return translations[lang][key] || key; } function createButton(site, gameName) { const gameNameElement = document.getElementById("appHubAppName"); if (gameNameElement) { const linkButton = document.createElement("a"); const searchURL = site.url.replace('{SearchGameName}', encodeURIComponent(gameName)); linkButton.href = searchURL; linkButton.setAttribute("target", "_blank"); linkButton.title = `${t('searchOn')} ${site.name}`; linkButton.style.display = 'inline-block'; linkButton.style.marginRight = '10px'; linkButton.style.position = 'relative'; const img = new Image(); img.src = site.icon; img.alt = site.name; img.style.width = '64px'; img.style.height = '32px'; img.style.objectFit = 'contain'; img.style.transition = 'transform 0.3s ease-in-out, filter 0.3s ease-in-out'; img.style.borderRadius = '8px'; img.style.boxShadow = '0 0 5px rgba(0, 0, 0, 0.3)'; img.style.backgroundColor = 'rgba(0, 0, 0, 0.4)'; linkButton.appendChild(img); gameNameElement.parentNode.appendChild(linkButton); linkButton.addEventListener('mouseenter', () => { img.style.transform = 'scale(1.1)'; }); linkButton.addEventListener('mouseleave', () => { img.style.transform = 'scale(1)'; }); } } function saveChanges() { sites.forEach(site => { const checkbox = document.querySelector(`input[name="${site.name}"]`); if (checkbox) { localStorage.setItem(site.name, checkbox.checked); } }); localStorage.setItem('language', lang); location.reload(); } function createSettingsButton() { const gameNameElement = document.getElementById("appHubAppName"); if (gameNameElement) { const settingsLink = document.createElement("a"); settingsLink.href = "#"; settingsLink.setAttribute("target", "_self"); settingsLink.title = t('settings'); settingsLink.style.display = 'inline-block'; settingsLink.style.marginRight = '10px'; settingsLink.style.position = 'relative'; const img = new Image(); img.src = "https://i.imgur.com/Hur3rSd.png"; img.alt = t('settings'); img.style.width = '64px'; img.style.height = '32px'; img.style.objectFit = 'contain'; img.style.transition = 'transform 0.3s ease-in-out, filter 0.3s ease-in-out'; img.style.borderRadius = '8px'; img.style.boxShadow = '0 0 5px rgba(0, 0, 0, 0.3)'; img.style.backgroundColor = 'rgba(0, 0, 0, 0.4)'; img.style.filter = 'brightness(1.5)'; settingsLink.appendChild(img); settingsLink.onclick = function(e) { e.preventDefault(); const panel = document.getElementById("settingsPanel"); if (panel) { panel.style.display = panel.style.display === 'none' ? 'block' : 'none'; } }; gameNameElement.parentNode.appendChild(settingsLink); settingsLink.addEventListener('mouseenter', () => { img.style.transform = 'scale(1.1)'; }); settingsLink.addEventListener('mouseleave', () => { img.style.transform = 'scale(1)'; }); } } function createSettingsPanel() { const panel = document.createElement("div"); panel.id = "settingsPanel"; panel.style.display = 'none'; panel.style.position = 'fixed'; panel.style.top = '20px'; panel.style.right = '20px'; panel.style.backgroundColor = '#222'; panel.style.border = '1px solid #555'; panel.style.padding = '10px'; panel.style.zIndex = '1000'; panel.style.boxShadow = '0 0 10px rgba(0, 0, 0, 0.5)'; panel.style.borderRadius = '10px'; const title = document.createElement("h3"); title.textContent = t('selectSites'); title.style.color = '#fff'; panel.appendChild(title); sites.forEach(site => { const label = document.createElement("label"); label.style.display = 'flex'; label.style.alignItems = 'center'; label.style.color = '#fff'; const checkbox = document.createElement("input"); checkbox.type = "checkbox"; checkbox.checked = JSON.parse(localStorage.getItem(site.name) || 'true'); checkbox.onchange = () => { localStorage.setItem(site.name, checkbox.checked); }; const img = new Image(); img.src = site.icon; img.alt = site.name; img.style.width = '32px'; img.style.height = '16px'; img.style.objectFit = 'contain'; img.style.marginRight = '10px'; label.appendChild(checkbox); label.appendChild(img); label.appendChild(document.createTextNode(site.name)); panel.appendChild(label); }); const buttonContainer = document.createElement("div"); buttonContainer.style.display = "flex"; buttonContainer.style.justifyContent = "space-between"; buttonContainer.style.alignItems = "center"; buttonContainer.style.marginTop = "10px"; const saveButtonImg = document.createElement("img"); saveButtonImg.src = "https://i.imgur.com/9OGoO5g.png"; saveButtonImg.alt = t('save'); saveButtonImg.title = t('save'); saveButtonImg.style.cursor = 'pointer'; saveButtonImg.onclick = saveChanges; const resetButtonImg = document.createElement("img"); resetButtonImg.src = "https://i.imgur.com/7SzbgQs.png"; resetButtonImg.alt = t('default'); resetButtonImg.title = t('default'); resetButtonImg.style.cursor = 'pointer'; resetButtonImg.onclick = resetToDefault; const languageLabel = document.createElement("img"); languageLabel.src = "https://i.imgur.com/N4yWJ9f.png"; languageLabel.alt = t('language'); languageLabel.title = t('language'); languageLabel.style.cursor = 'pointer'; languageLabel.style.margin = '0 10px'; languageLabel.style.filter = 'brightness(10.5)'; languageLabel.onclick = () => { const languageMenu = document.getElementById("languageMenu"); if (languageMenu) { languageMenu.style.display = languageMenu.style.display === 'none' ? 'block' : 'none'; } }; const languageMenu = document.createElement("div"); languageMenu.id = "languageMenu"; languageMenu.style.display = 'none'; languageMenu.style.position = 'absolute'; languageMenu.style.top = '100%'; languageMenu.style.right = '0'; languageMenu.style.backgroundColor = '#222'; languageMenu.style.border = '1px solid #555'; languageMenu.style.padding = '10px'; languageMenu.style.zIndex = '1000'; languageMenu.style.borderRadius = '10px'; const languageSelect = document.createElement("select"); languageSelect.style.backgroundColor = '#333'; languageSelect.style.color = '#fff'; const enOption = document.createElement("option"); enOption.value = "en"; enOption.textContent = t('english'); const ukOption = document.createElement("option"); ukOption.value = "uk"; ukOption.textContent = t('ukrainian'); languageSelect.appendChild(enOption); languageSelect.appendChild(ukOption); languageSelect.value = lang; languageSelect.addEventListener("change", () => { lang = languageSelect.value; localStorage.setItem('language', lang); }); languageMenu.appendChild(languageSelect); panel.appendChild(languageMenu); buttonContainer.appendChild(saveButtonImg); buttonContainer.appendChild(languageLabel); buttonContainer.appendChild(resetButtonImg); panel.appendChild(buttonContainer); document.body.appendChild(panel); } function resetToDefault() { sites.forEach(site => { localStorage.removeItem(site.name); }); localStorage.removeItem('language'); location.reload(); } function init() { const gameNameElement = document.getElementById("appHubAppName"); if (gameNameElement) { const gameName = gameNameElement.textContent.trim(); sites.forEach(site => { const isEnabled = JSON.parse(localStorage.getItem(site.name) || 'true'); if (isEnabled) { createButton(site, gameName); } }); createSettingsButton(); createSettingsPanel(); } } init(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址