Избавляемся от "Ой, извините" в браузере

Никакой магии в виде VPN, только расширение для браузера позволяющее добавлять свои JS скрипты для страниц.

Избавляемся от "Ой, извините" в браузере

Вчера я в шутку создал скрипт для подмены всеми "любимой" страницы с недоступными у нас играми, на страничку содержащую ссылку на торрент, картинку с которой здесь часто кидают. Так вот в комментариях попросили, что лучше бы вообще избавиться от этой странички и показать нормальную. И решение такое есть - это редирект с использованием "кодов стран" (country code), который любезно предоставил нам дядюшка Габен.

Важно отметить несколько моментов. Во-первых, это будет работать только без авторизации на сайте, в противном случае Steam берет данные из профиля, вне зависимости от кода страны переданного в ссылке. Во-вторых, нужно подтвердить свой возраст, если он у вас еще не был подтвержден, на любой игре доступной у нас, т.к. с редиректом проверка почему-то не проходит. Ну и в-третьих, хоть страница и станет доступной и будет выглядеть как и всегда, цены на ней изменятся на страну редиректа 😉

Итак, устанавливаем расширение, например Tampermonkey, создаем в нем новый скрипт и вставляем туда следующий код:

// ==UserScript== // @name Steam.SM: Redirect If Sorry // @namespace Steam.SM // @version 1.1.4 // @description Redirect in case of "Oops, sorry" page using ContryCode (cc) parameter in request // @author StiGMaT // @match https://store.steampowered.com/app/* // @match https://store.steampowered.com/sub/* // @match https://store.steampowered.com/bundle/* // @match https://store.steampowered.com/sale/* // @match https://store.steampowered.com/curator/* // @match https://store.steampowered.com/wishlist/* // @match https://store.steampowered.com/search/* // @match https://store.steamcommunity.com/app/* // @icon https://www.google.com/s2/favicons?sz=64&domain=steampowered.com // ==/UserScript== /* global $J */ (function() { 'use strict'; const $ = $J; //'country code' for redirect, ISO 3166-1 alpha-2, see comment at end const CC = 'us'; //redirect only if error page open const REDIR_IF_ERROR = false; //redirect if error to community const REDIR_TO_COMMUNITY = false; const url = window.location.href; const isRedir = url.indexOf('cc=') > 0; const isError = $('#error_box').length > 0; //function change url, add 'country code' function addCCtoUrl(url, cc='us') { if (url.indexOf('?') > -1) { return url + '&cc=' + cc } else { return url + '?cc=' + cc } } if (!REDIR_IF_ERROR || isError) { if (REDIR_TO_COMMUNITY) { //redirect to community if (url.indexOf('store.steampowered.com/app/') != -1) { window.location.href = 'https://steamcommunity.com/app/' + url.split('/')[4]; } } else { //redirect to new country if (!isRedir) { if (document.cookie.indexOf('birthtime') == -1) { document.cookie = 'birthtime=157755600' } window.location.href = addCCtoUrl(url, CC); isRedir = true; } //change store link, add country code if (isRedir) { $('a').each((index, item) => { if ((item.href.indexOf('store.steampowered.com/app/') > 0) || (item.href.indexOf('store.steampowered.com/sub/') > 0) || (item.href.indexOf('store.steampowered.com/bundle/') > 0)) { item.href = addCCtoUrl(item.href, CC); } }) } } } })(); /* AE United Arab Emirates AR Argentina AU Australia AZ CIS BR Brazil CA Canada CH Switzerland CL Chile CN China CO Colombia CR Costa Rica EU European Union HK Hong Kong ID Indonesia IL Israel IN India JP Japan KR Korea KW Kuwait KZ Kazakhstan MX Mexico MY Malaysia NO Norway NZ New Zealand PE Peru PH Philippines PK South Asia PL Poland QA Qatar RU Russian Federation SA Saudi Arabia SG Singapore TH Thailand TR Türkiye TW Taiwan UA Ukraine UK United Kingdom US United States of America UY Uruguay VN Viet Nam ZA South Africa */

Или из Панели управления TamperMonkey вкладка "Утилиты" поле "Импорт из URL" в самом конце, вставляем туда данную ссылку:

Сейчас скрипт настроен на ридерект в США и только на страницах с ошибками. За это отвечают 2 переменные в самом начале скрипта. Чтобы поменять страны, вы должны изменить ее код в переменной cc. Например для того чтобы поменять на Турцию, вы должны указать:

let cc = 'tr';

Вот коды самых популярных регионов:

AR Аргентина EU Евросоюз KZ Казахстан TR Турция UA Украина US США AZ СНГ

Если нужны другие, напишите в комментариях добавлю все, но их легко узнать из Вики. Да, Steam поддерживает не все страны, но он вроде может определять ценовой регион по коду, т.е. если указать DE (Германия), то цены будут для Евросоюза, а если UZ (Узбекистан), то для СНГ.

Второй параметр redirIfError, он отвечает за редирект на всех страницах игр (комлектов и наборов), а не только тех, что не доступны, достаточно указать в нем false:

let redirIfError = false;

По просьбам трудящихся добавлен третий параметр (redirToCommunity ), который переадресует на Центр сообщества, вместо редиректа в другую страну, его нужно установить в true:

let redirToCommunity = true;

Ну в общем то и все, изменяйте параметры, сохраняйте и заходите на страницы Старфилдов и Киберпанков для проверки 😏

PS: Так как делал это в свое время для собственных нужд, возможно что-то не учел, готов исправить по просьбам желающих 🙄

91
74 комментария