DDSteam

Add search links for games on Steam pages

目前為 2024-10-31 提交的版本,檢視 最新版本

// ==UserScript==
// @name         DDSteam
// @name:es         DDSteam
// @version      3.0
// @description  Add search links for games on Steam pages
// @description:es      Añadir enlaces de búsqueda de juegos en las páginas de Steam
// @author       johnromerobot
// @license MIT
// @match        https://store.steampowered.com/*
// @namespace https://gf.qytechs.cn/users/1243768
// ==/UserScript==

(function() {
    'use strict';

    // Función para crear los botones
    function createButton(searchLink, buttonText, tooltipText, iconPath, targetElement, isWishlist = false) {
        const linkButton = document.createElement("a");
        linkButton.href = searchLink;
        linkButton.setAttribute("target", "_blank");
        linkButton.title = tooltipText;
        linkButton.style.display = 'inline-block';
        linkButton.style.marginRight = '10px';

        const img = new Image();
        img.src = iconPath;
        img.alt = buttonText;
        img.style.width = isWishlist ? '48px' : '64px';
        img.style.height = isWishlist ? '24px' : '32px';
        img.style.objectFit = 'contain';
        img.style.transition = 'transform 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.2)';

        linkButton.appendChild(img);
        targetElement.insertBefore(linkButton, targetElement.firstChild);
    }

    // Función para formatear el nombre del juego
    function formatGameName(gameName) {
        return gameName.trim().toLowerCase().replace(/'/g, '').replace(/_/g, ' ').replace(/[^a-zA-Z0-9 ]/g, '');
    }

    // Función para crear todos los botones para un juego
    function createAllButtons(gameName, targetElement, isWishlist = false) {
        const formattedGameName = formatGameName(gameName);

        const sites = [
            {
                name: "SteamGG",
                url: `https://steamgg.net/?s=${formattedGameName}`,
                tooltip: "Search on SteamGG",
                icon: "https://i.ibb.co/XCj45HD/1728102863385.png"
            },
            {
                name: "SteamRIP",
                url: `https://steamrip.com/?s=${formattedGameName}`,
                tooltip: "Search on SteamRIP",
                icon: "https://i.imgur.com/tmvOT86.png"
            },
            {
                name: "JuegosdePCFull",
                url: `https://juegosdepcfull.com/?s=${formattedGameName}`,
                tooltip: "Search on JuegosdePCFull",
                icon: "https://www.gamezfull.com/wp-content/themes/MystiqueR3/favicon_gf.ico"
            },
            {
                name: "CS.RIN.RU",
                url: `https://cs.rin.ru/forum/search.php?keywords=${formattedGameName}&terms=any&author=&sc=1&sf=titleonly&sk=t&sd=d&sr=topics&st=0&ch=300&t=0&submit=Search`,
                tooltip: "Search on CS.RIN.RU (Login required)",
                icon: "https://i.ibb.co/RYQkz8t/site-logo-2.png"
            },
            {
                name: "GOG",
                url: `https://www.gog-games.to/?q=${formattedGameName}`,
                tooltip: "Search on GOGGames",
                icon: "https://i.imgur.com/wXfz72C.png"
            },
            {
                name: "FitGirl",
                url: `https://fitgirl-repacks.site/?s=${formattedGameName}`,
                tooltip: "Search on FitGirl",
                icon: "https://i.imgur.com/GOFbweI.png"
            },
            {
                name: "PCGamingWiki",
                url: `https://www.pcgamingwiki.com/w/index.php?search=${formattedGameName}`,
                tooltip: "Search on PCGamingWiki",
                icon: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTwZgcgIYqscsLY6OnFI3sC7ZRYui2OghZWIg&s"
            }
        ];

        // Crear los botones en orden inverso para que aparezcan en el orden correcto
        sites.reverse().forEach(site => {
            createButton(site.url, site.name, site.tooltip, site.icon, targetElement, isWishlist);
        });
    }

    // Función para agregar los botones en la página de detalles del juego
    function addButtonsToGamePage() {
        const gameNameElement = document.getElementById("appHubAppName");
        if (gameNameElement) {
            createAllButtons(gameNameElement.textContent, gameNameElement, false);
        }
    }

    // Función para agregar los botones en la lista de deseados
    function addButtonsToWishlist() {
        const wishlistItems = document.querySelectorAll('.wishlist_row');
        wishlistItems.forEach(item => {
            const gameNameElement = item.querySelector('.title');
            if (gameNameElement && !gameNameElement.classList.contains('buttons-added')) {
                createAllButtons(gameNameElement.textContent, gameNameElement, true);
                gameNameElement.classList.add('buttons-added');
            }
        });
    }

    // Función para monitorear la carga de la lista de deseados
    function monitorWishlistLoading() {
        const interval = setInterval(() => {
            const wishlistItems = document.querySelectorAll('.wishlist_row');
            if (wishlistItems.length > 0) {
                addButtonsToWishlist();
                // No detenemos el intervalo para manejar la carga dinámica
            }
        }, 1000);
    }

    // Agregar estilos CSS
    const styles = `
        a:hover img {
            transform: scale(1.1);
        }

        .wishlist_row .title {
            display: flex;
            align-items: center;
        }

        .wishlist_row a {
            display: inline-block;
            margin-right: 10px;
            vertical-align: middle;
        }
    `;

    const styleSheet = document.createElement("style");
    styleSheet.textContent = styles;
    document.head.appendChild(styleSheet);

    // Inicializar según la página
    if (window.location.href.includes('/wishlist')) {
        monitorWishlistLoading();
    } else if (window.location.href.includes('/app/')) {
        addButtonsToGamePage();
    }
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址