Steam advance Downloads links in store

Steam advance Downloads links in store to search and download for free ;)

目前為 2024-06-03 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Steam advance Downloads links in store
// @namespace    Wizzergod
// @description  Steam advance Downloads links in store to search and download for free ;)
// @version      3.1.1
// @license      MIT
// @match        *://store.steampowered.*/app/*
// @exclude      *://steamcommunity.*/*
// @match        *://www.gog.com/*/game/*
// @match        *://store.steampowered.*/*
// @match        *://*.steampowered.*/*
// @exclude      *://*.steampowered.com/bundle/*
// @icon         https://bit.ly/3Jj2YMu
// @grant        GM_addStyle
// @credits      Wizzergod
// ==/UserScript==

(function() {
    'use strict';

    // Добавление стилей с уникальными префиксами
    GM_addStyle(`
        .custom_btn_addtocart {
            display: grid;
            margin: 1px;
        }
        .custom_btn_green_steamui {
            background-color: #5c7e10;
            color: white;
            text-decoration: uppercase;
            padding: 10px 20px;
            border-radius: 3px;
            box-shadow: 2px 2px 15px rgba(0, 0, 0, 0.4);
            display: block ruby;
            align-items: center;
            justify-content: center;
            margin: 1px;
        }
        .custom_btn_green_steamui:hover {
            background-color: #4b670d;
        }
        .custom_btnv6_lightblue_blue {
            background-color: #417a9b;
            color: white;
            text-decoration: uppercase;

            padding: 10px 20px;
            border-radius: 3px;
            box-shadow: 2px 2px 15px rgba(0, 0, 0, 0.4);
            display: block ruby;
        }
        .custom_btnv6_lightblue_blue:hover {
            background-color: #35637a;
        }
        .custom_btn_blue_steamui {
            background-color: #1b2838;
            color: white;
            text-decoration: uppercase;
            padding: 10px 20px;
            border-radius: 3px;
            box-shadow: 2px 2px 15px rgba(0, 0, 0, 0.4);
            display: block ruby;
        }
        .custom_btn_blue_steamui:hover {
            background-color: #16202d;
        }
        .custom_btnv6_blue_hoverfade {
            background-color: #176aa6;
            color: white;
            text-decoration: uppercase;
            padding: 10px 20px;
            border-radius: 3px;
            box-shadow: 2px 2px 15px rgba(0, 0, 0, 0.4);
            display: block ruby;
        }
        .custom_btnv6_blue_hoverfade:hover {
            background-color: #0f4a73;
        }
        .custom_game_purchase_discount_countdown {
            font-size: 14px;
            color: #d6d7d8;
        }
        .custom_game_purchase_action {
            top: 110px;
            bottom: 110px;

        }
        .custom_game_area_purchase_game, .custom_game_area_purchase_game {
            font-size: 10px !important;
        }
        .custom_game_purchase_action_bg {
            margin: 5px 0 10px 0;
        }
        .custom_demoGameBtn {
            display: block;
            justify-content: center;
            align-items: center;
            flex: 1;
            font-size: 13px !important;
        }
        .custom_demoGameBtn a {
            margin: 0px;
            text-shadow: 1px 1px 2px #000000aa;
            text-transform: uppercase;
            font-weight: 300;
        }

    `);


    function createGameLink(url, label, className) {
        var linkContainer = document.createElement('div');
        linkContainer.className = 'custom_demoGameBtn custom_btn_addtocart';

        var link = document.createElement('a');
        link.target = '_blank';
        link.className = className;
        link.href = url;
        link.rel = 'noopener noreferrer';

        var linkText = document.createElement('span');
        linkText.textContent = label;

        link.appendChild(linkText);
        linkContainer.appendChild(link);

        return linkContainer;
    }

    var gameTitle = document.createElement('h1');
    gameTitle.textContent = 'Free download from torrents.';

    var discountCountdown = document.createElement('p');
    discountCountdown.textContent = 'These links lead to the search feature on specified websites, and remember piracy is bad if you downloaded, played and liked the game, then buy it, so you will thank the developers!';

    var gamePurchaseAction = document.createElement('div');
    gamePurchaseAction.className = 'custom_game_purchase_action';

    var gamePurchaseActionBg = document.createElement('div');
    gamePurchaseActionBg.className = 'custom_game_purchase_action_bg';

    var titleElement = document.querySelector('#appHubAppName .apphub_AppName, span[itemprop="name"]');
    var gameTitleText = titleElement ? titleElement.textContent.trim() : '';

    var appidElement = document.querySelector('[data-appid]');
    var gameappid = appidElement ? appidElement.getAttribute('data-appid') : '';

    var links = [
        { url: 'https://rutracker.org/forum/tracker.php?nm=' + encodeURIComponent(gameTitleText), label: 'rutracker', className: 'custom_btn_green_steamui' },
        { url: 'https://thelastgame.club/?do=search&subaction=search&story=' + encodeURIComponent(gameTitleText), label: 'thelastgame.(club)', className: 'custom_btn_green_steamui' },
        { url: 'https://thelastgame.ru/?s=' + encodeURIComponent(gameTitleText), label: 'thelastgame.(ru)', className: 'custom_btn_green_steamui' },
        { url: 'https://thelastgame.org/?do=search&subaction=search&story=' + encodeURIComponent(gameTitleText), label: 'thelastgame.org', className: 'custom_btn_green_steamui' },
        { url: 'https://www.limetorrents.lol/search/games/' + encodeURIComponent(gameTitleText), label: 'limetorrents', className: 'custom_btn_green_steamui' },
        { url: 'https://1337x.to/search/' + encodeURIComponent(gameTitleText) + '/1/', label: '1337x', className: 'custom_btn_green_steamui' },
        { url: 'https://thepiratebay.org/search.php?cat=401&q=' + encodeURIComponent(gameTitleText), label: 'thepiratebay', className: 'custom_btn_green_steamui' },
        { url: 'https://igrovaya.org/?do=search&story=' + encodeURIComponent(gameTitleText), label: 'igrovaya', className: 'custom_btn_green_steamui' },
        { url: 'https://www.torrentdownloads.pro/search/?search=' + encodeURIComponent(gameTitleText), label: 'torrentdownloads.(pro)', className: 'custom_btn_green_steamui' },
        { url: 'https://www.torrentdownload.info/search?q=' + encodeURIComponent(gameTitleText), label: 'torrentdownload.(info)', className: 'custom_btn_green_steamui' },
        { url: 'https://catorrent.org/index.php?do=search&story=' + encodeURIComponent(gameTitleText), label: 'catorrent', className: 'custom_btn_green_steamui' },
        { url: 'https://nnmclub.to/forum/tracker.php?nm=' + encodeURIComponent(gameTitleText), label: 'nnmclub', className: 'custom_btn_green_steamui' },
        { url: 'https://thebyrut.org/?do=search&subaction=search&story=' + encodeURIComponent(gameTitleText), label: 'byrut', className: 'custom_btn_green_steamui' },
        { url: 'https://pcgamestorrents.com/?s=' + encodeURIComponent(gameTitleText), label: 'pcgamestorrents.(com)', className: 'custom_btn_green_steamui' },
        { url: 'https://hisgames.org/search?searchphrase=all&searchword=' + encodeURIComponent(gameTitleText), label: 'hisgames', className: 'custom_btn_green_steamui' },
        { url: 'https://freegogpcgames.com/?s=' + encodeURIComponent(gameTitleText), label: 'Gog:freegogpcgames', className: 'custom_btn_blue_steamui' },
        { url: 'https://gogunlocked.com/?s=' + encodeURIComponent(gameTitleText), label: 'Gog:gogunlocked', className: 'custom_btn_blue_steamui' },
        { url: 'https://gog-games.to/search/' + encodeURIComponent(gameTitleText), label: 'Gog:gog-games', className: 'custom_btn_blue_steamui' },
        { url: 'https://small-games.info/?go=search&search_text=' + encodeURIComponent(gameTitleText), label: 'small-games.(info)', className: 'custom_btnv6_lightblue_blue' },
        { url: 'https://www.old-games.ru/catalog/?gamename=' + encodeURIComponent(gameTitleText), label: 'old-games', className: 'custom_btnv6_lightblue_blue' },
        { url: 'https://f95zone.to/search/search?keywords=' + encodeURIComponent(gameTitleText), label: 'Forum: f95zone', className: 'custom_btnv6_blue_hoverfade' },
        { url: 'https://cs.rin.ru/forum//search.php?st=0&sk=t&sd=d&sr=topics&terms=any&sf=titleonly&keywords=' + encodeURIComponent(gameTitleText), label: 'cs.(rin)', className: 'custom_btnv6_blue_hoverfade' },
        { url: 'https://www.gogdb.org/products?search=' + encodeURIComponent(gameTitleText), label: 'View on GogDB', className: 'custom_btnv6_blue_hoverfade' },
        { url: 'https://steamdb.info/app/' + encodeURIComponent(gameappid), label: 'STEAMDB', className: 'custom_btnv6_blue_hoverfade' }
    ];

    var row = document.createElement('div');
    row.style.display = 'flex';
    row.style.flexWrap = 'wrap';

    links.forEach(function(linkInfo) {
        var link = createGameLink(linkInfo.url, linkInfo.label, linkInfo.className);
        row.appendChild(link);
    });

    var gameLinksDiv = document.createElement('div');
    gameLinksDiv.className = 'custom_game_area_purchase_game';

    gamePurchaseActionBg.appendChild(row);
    gamePurchaseAction.appendChild(gamePurchaseActionBg);
    gameLinksDiv.appendChild(gameTitle);
    gameLinksDiv.appendChild(discountCountdown);
    gameLinksDiv.appendChild(gamePurchaseAction);

    var targetElement = document.querySelector('.game_area_purchase');
    if (targetElement) {
        targetElement.parentNode.insertBefore(gameLinksDiv, targetElement);
    }

    var elements = document.getElementsByClassName('early_access_header');
    Array.from(elements).forEach(function(element) {
        element.parentNode.removeChild(element);
    });
})();