Steam to SteamDB Redirector

Автоматическое перенаправление с недоступных страниц Steam на SteamDB и изменение поведения ссылок для открытия в новой вкладке при нажатии Ctrl+клик.

// ==UserScript==
// @name         Steam to SteamDB Redirector
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Автоматическое перенаправление с недоступных страниц Steam на SteamDB и изменение поведения ссылок для открытия в новой вкладке при нажатии Ctrl+клик.
// @author       GodinRaider
// @match        https://store.steampowered.com/*
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // Функция для проверки доступности страницы
    function isPageUnavailable() {
        return document.title.includes("Ошибка веб-страницы") || document.body.innerText.includes("Данный товар недоступен в вашем регионе");
    }

    // Функция для перенаправления на SteamDB
    function redirectToSteamDB() {
        let appIdMatch = window.location.href.match(/app\/(\d+)/);
        if (appIdMatch) {
            let appId = appIdMatch[1];
            window.location.href = `https://steamdb.info/app/${appId}/`;
        }
    }

    // Проверяем доступность страницы и перенаправляем при необходимости
    if (isPageUnavailable()) {
        redirectToSteamDB();
    }

    // Обработчик кликов для открытия ссылок в новой вкладке при нажатии Ctrl+клик
    document.addEventListener('click', function(e) {
        if (e.ctrlKey) {
            let target = e.target;
            while (target && target.tagName !== 'A') {
                target = target.parentElement;
            }
            if (target && target.tagName === 'A') {
                window.open(target.href, '_blank');
                e.preventDefault();
            }
        }
    });

    // Обработчик для всех ссылок на странице
    document.querySelectorAll('a').forEach(function(link) {
        link.addEventListener('click', function(e) {
            if (e.ctrlKey) {
                window.open(link.href, '_blank');
                e.preventDefault();
            }
        });
    });

})();