Перейти к содержимому
Zone of Games Forum
0wn3df1x

Вышло Ultimate Steam Enhancer 2.0 — расширение, добавляющее в Steam ссылки на русификаторы, русские магазины-дискаунтеры и прочие полезные для России функции

Рекомендованные сообщения

Списки изменений (Чейнджлоги)

Скрытый текст

 

 

 

 

 

 

Что нового в версии 2.1.3

Версия 2.1.3

Это техническое обновление, направленное на исправление критической ошибки в работе функции «Виртуальный режим „Инкогнито“». Значительно повышена надежность и совместимость, особенно для пользователей браузера Firefox.


Исправления

Виртуальный режим «Инкогнито»
  • Повышенная надежность получения сессии: Полностью переработан механизм получения анонимной сессии для обхода блокировок. Это исправляет критическую ошибку, из-за которой функция не работала у некоторых пользователей Firefox.
  • Универсальный парсинг: Новый метод использует регулярные выражения для прямого извлечения cookie, что делает его нечувствительным к форматированию заголовков ответа разными браузерами и расширениями.
Что нового в версии 2.1.2

Версия 2.1.2

Это обновление сфокусировано на повышении удобства и надежности. Добавлены новые настройки автоматизации для «Агрегатора цен», улучшен механизм обхода региональных блокировок и доработана логика отображения данных в «Помощнике подарков».


Улучшения и нововведения

Виртуальный режим «Инкогнито»
  • Настройки автоматизации: В главном меню настроек U.S.E. появились опции для автоматического запуска сбора цен при открытии окна и автоматической подстановки названия игры в фильтр после сбора данных.

⚠️ Важно:

При включенной авто-подстановке для более точного поиска рекомендуется сокращать название.
Например, вместо "DEATH STRANDING DIRECTOR'S CUT" лучше оставить "DEATH STRANDING".

  • Улучшенная обработка валют: Корректно обрабатываются и конвертируются цены в USD от магазинов SteamPay и GamersBase, что повышает точность в обоих валютных режимах (RUB/USD).
  • Округление цен: Цены в рублях теперь округляются до целых чисел для лучшего восприятия.

 

Виртуальный режим «Инкогнито»
  • Резервный механизм (Fallback): Если не удается обойти блокировку в регионе, указанном в настройках, скрипт автоматически попытается загрузить страницу через цепочку резервных регионов (США → Швейцария → Казахстан → Япония), пока не найдет рабочий вариант.
Доступность подарков (Список желаемого)
  • Улучшенное отображение рейтинга: Рейтинг теперь рассчитывается и отображается на основе процентного соотношения, а не только на основе официального ярлыка Steam. Это позволяет видеть оценку даже для игр с небольшим количеством обзоров, у которых ранее мог отсутствовать текстовый рейтинг.
Что нового в версии 2.1.1

Версия 2.1.1

Это обновление вносит ряд улучшений в существующий функционал.


Улучшения и нововведения

Настройки Виртуального режима «Инкогнито»
  • Отключение режима: В настройки скрипта добавлена возможность полностью отключать автоматический запуск «виртуального режима инкогнито».
  • Смена региона: Теперь можно выбрать регион по умолчанию (например, Турция или Аргентина вместо США), от имени которого будет запрашиваться страница.
  • Кнопка ручного запуска: Добавлена опциональная кнопка «in» рядом с логотипом Steam для принудительной перезагрузки любой страницы в «виртуальном режиме инкогнито». (Изначально отключена)
[Изображение: Настройки режима Инкогнито]
Агрегатор цен (%)
  • Добавлен магазин Rushbe: В список магазинов агрегатора цен добавлен официальный магазин Rushbe от МТС.
Поиск цен на Plati.Market
  • Импорт/Экспорт исключений: Добавлена возможность экспортировать и импортировать список слов-исключений, аналогично тому, как это реализовано в агрегаторе цен.
Доступность подарков (Список желаемого)
  • Расширенные карточки и фильтры: Модуль был значительно переработан.
    • В карточку игры добавлены новые данные: издатель, разработчик, серия игр, метки, статус раннего доступа и информация о поддержке русского языка.
    • Для пользователей из РФ добавлена информация о соответствии цены Рекомендованной Региональной Цене (РРЦ) от Valve.
    • Добавлена расширенная система фильтрации, позволяющая отбирать игры по цене, скидке, дате выхода, рейтингу, языку, статусу Раннего Доступа и соответствию РРЦ.
[Изображение: Обновленный помощник подарков]
Что нового в версии 2.1.0

Версия 2.1.0

Это обновление направлено на решение ключевых проблем, с которыми сталкивались пользователи, а также на улучшение стабильности и удобства использования скрипта.


Ключевое нововведение: Виртуальный режим инкогнито

Ранее для просмотра страниц, недоступных в регионе, пользователи прибегали к ручным методам: выходили из аккаунта, использовали другой браузер или открывали страницу в режиме инкогнито браузера (самый быстрый), после чего добавляли в адрес ?cc=us. Однако в режиме инкогнито этот способ имел критический недостаток - "age gate" (проверка возраста). Steam не позволял подтвердить возраст для "запрещенной" территории, делая метод бесполезным для игр с рейтингом 18+. Пользователи предлагали альтернативные решения — сделать простое перенаправление в центр сообщества, но это лишило бы пользователей ценной информации, предоставляемой нашим скриптом.

В связи с этим мы разработали "виртуальный режим инкогнито" — комплексное решение, которое обходит эти ограничения.

TGmRkOP.png
 

Как это работает?
  1. При заходе на заблокированную страницу скрипт распознает ошибку.
  2. В фоновом режиме запрашивается анонимная сессия у Steam (временные sessionid и browserid), имитируя визит нового, незалогиненного пользователя.
  3. С этими временными данными скрипт запрашивает американскую версию страницы (?cc=us) на русском языке (&l=russian).
  4. Если на странице есть проверка возраста, скрипт автоматически проходит ее, добавляя cookie с датой рождения.
  5. Содержимое заблокированной страницы полностью заменяется на полученный разблокированный HTML-код. Вы остаетесь на том же URL, но видите страницу так, как если бы зашли на неё с прописанным ?cc=us без входа в аккаунт.
  6. Все модули U.S.E. перезапускаются для корректной работы на новом коде страницы.

PpjV7oc.png

Преимущества:

  • Бесшовная работа: Больше не нужно открывать окна в режиме инкогнито и вручную менять URL.
  • Динамический контент: После загрузки страницы обзоры и другая динамическая информация подгружаются уже с вашего аккаунта, включая обзоры от друзей (которые невозможно получить при обычном просмотре без входа).

⚠️ Важно:

Наш подход не нарушает "Соглашение подписчика Steam", поскольку не использует VPN, прокси и другие запрещенные соглашением средства для сокрытия IP-адреса. Он задействует легитимный, предоставленный самой Valve механизм просмотра страниц для другого региона — параметр ?cc=. Запрос анонимной сессии необходим исключительно для того, чтобы изолировать этот просмотр от данных основного аккаунта. По сути, скрипт показывает то, что любой человек видит, зайдя на страницу игры с параметром ?cc=us без входа в аккаунт. Эта функция предназначена исключительно для просмотра информации и обеспечения работы функций расширения. Она не является инструментом для совершения нелегитимных покупок.


Улучшения и исправления

Совместимость и стабильность
  • Частичная поддержка AdGuard: Решена проблема с падением скрипта при использовании в AdGuard. Добавлена директива @grant unsafeWindow. Часть проблем может сохраняться из-за особенностей работы самого AdGuard, которые мы не можем обойти.
Помощник подарков и Анализатор цен
  • Улучшен сбор данных: Добавлен дополнительный метод определения валюты пользователя для более стабильной и точной работы модуля.
Агрегатор цен (%)
  • Конвертация в USD: В окно агрегатора добавлена кнопка "USD", позволяющая конвертировать все цены в доллары США.

DcidcTe.png

Время друзей
  • Работа в «виртуальном режиме инкогнито»: Добавлена возможность видеть информацию о друзьях (кто владеет игрой или добавил ее в желаемое) даже на страницах, загруженных с помощью нового механизма.

6jbZ03L.png

Что нового в версии 2.0 (для тех, кто в курсе)

Версия 2.0.0

Юбилейное обновление знаменует собой новую эру для Ultimate Steam Enhancer.


Глобальное улучшение: Меню настроек U.S.E.

Теперь все опции доступны через удобное графическое меню.

  • Доступ: Меню настроек U.S.E. находится в выпадающем меню вашего профиля Steam (в правом верхнем углу).
  • Управление модулями: Легко включайте и отключайте отдельные модули скрипта.
  • Дополнительные опции: Настраивайте поведение конкретных функций, таких как автоматическое раскрытие блоков или загрузка данных.
[Изображение: Расположение меню настроек U.S.E. в профиле Steam]
[Изображение: Пример панели настроек Ultimate Steam Enhancer]

Это изменение делает скрипт значительно более дружелюбным для пользователей и упрощает его персонализацию.


Новые функции

Анализатор цен (Региональные цены Steam)

Что делает: Добавляет кнопку "Анализатор цен" на страницу игры. Этот мощный инструмент позволяет детально анализировать региональные цены игры в Steam двумя способами: в рублях (по умолчанию) и в долларах США (переключаемый режим).

После нажатия кнопки "Сбор данных" в специальном окне, модуль выполняет следующее:

Режим Рублей:

  • Определяет AppID текущей игры и запрашивает цены через официальное API Steam для 41 региона.
  • В качестве базы для расчета рекомендованной рублевой цены используется цена в США (USD).
  • Цены из всех регионов, включая Россию, конвертируются в рубли по актуальным обменным курсам для прямого сопоставления.
  • Производится ключевое сравнение: фактическая цена в российском Steam сопоставляется с официально рекомендованной Valve ценой для России. Отклонения подсвечиваются.
  • Отображается рейтинг российской цены среди всех проанализированных стран, позволяя увидеть её место от самой дешёвой к самой дорогой в рублевом эквиваленте.

Режим Долларов США:

  • Активируется кнопкой "USD" в окне анализатора. Интерфейс и названия валют переключаются на английский язык.
  • Цены всех регионов также запрашиваются через API Steam и конвертируются в доллары США.
  • Цена в США используется как базовый ориентир (100%) для сравнения с ценами других регионов.
  • Отображается процентное отклонение цен других регионов от цены в США.
  • Представляется общий рейтинг всех региональных цен в долларовом эквиваленте.
  • Этот режим полезен для оценки ценовой политики при общении с разработчиками/издателями.

Примечание: Если игра в США бесплатна или цена для нее не найдена, возможности анализа в обоих режимах могут быть ограничены.

⚠️ Важная информация:

Каждый полный сбор данных подразумевает отправку ~41 запроса к серверам Steam. Пожалуйста, используйте эту функцию обдуманно. Частое использование может привести к временному ограничению доступа к API Steam.

[Изображение: Пример работы анализатора региональных цен]
Агрегатор цен (%)

Что делает: Заменяет старый модуль "Цены (VGT)". Добавляет кнопку "%" рядом с кнопкой "В желаемое" на странице игры. Нажатие открывает модальное окно с ценами на эту игру из различных популярных цифровых магазинов.

Возможности окна агрегатора:

  • Отображение предложений из множества магазинов, включая: SteamBuy, Playo, SteamPay, Gabestore, GamersBase, Igromagaz, GamesForFarm, Gamazavr, GameRay, KupiKod, KeysForGamers, Zaka-zaka, Buka, GGSEL, Plati.Market и текущей страницы Steam.
  • Сортировка по цене, проценту скидки, сумме скидки, названию.
  • Фильтрация по диапазону цен, проценту и сумме скидки, наличию скидки, названию (слова через ";"), магазинам.
  • Исключение товаров по ключевым словам.
  • Сохранение состояния фильтров, сортировки и исключений между сессиями.
  • Экспорт и импорт списка исключений для удобного переноса и резервного копирования.
Список рекомендуемых исключений

Нажмите кнопку импорта () и вставьте в появившееся окно следующий текст:





онлайн,оффлайн,dlc,аккаунт,ps4,xbox,digi361,ibloodrue,mangarded,siparisapp,multimarket,trustytop,cyber steam shop,boostgame,cloud-gaming.store,promarket88,offline,-seyter-,paul fox,sirdjinn,аренда,4ilgames,keks12,damhubmarket,nt-store,ps5,@mediasoft,dofamine game,hactier,alz0n,top-games,solo29,nerd shop,1gamestore,tobeclosertoyou

Использует различные методы для получения цен (API, парсинг HTML) для предоставления наиболее полной картины.

[Изображение: Пример интерфейса агрегатора цен]
Доступность подарков (на странице игры)

Что делает: Добавляет кнопку "GIFT" в блок с кнопкой "В желаемое" на странице игры.

Нажатие открывает окно, где можно:

  • Выбрать регион друга из списка.
  • Нажать "Узнать", чтобы запросить цену игры в этом регионе.
  • Увидеть цену друга (сконвертированную в вашу валюту), процент разницы и вердикт (Можно подарить / Нельзя подарить), основанный на правилах Steam о разнице цен (обычно ±10-15%).

Использует те же механизмы получения цен и курсов валют, что и помощник для списка желаемого.

[Изображение: Пример работы помощника подарков на странице игры]
Рулетка Stelicas (Лента активности)

Что делает: Добавляет блок "Рулетка Stelicas" на страницу вашей активности Steam (steamcommunity.com/my/home). Позволяет загрузить CSV-файл, сгенерированный приложением Stelicas, применить к нему разнообразные фильтры и случайным образом выбрать игру из вашей коллекции.

Возможности:

  • Загрузка CSV-данных из Stelicas.
  • Система фильтрации: по категориям коллекций Stelicas, дате выхода, пользовательским тегам, поддержке русского языка (интерфейс, субтитры, озвучка), а также по диапазонам количества отзывов и общего рейтинга игры.
  • Анимированная рулетка для выбора случайной игры.
  • Возможность включить приоритет по отзывам и рейтингу.
  • Переключение в режим просмотра всей отфильтрованной подборки игр.
  • Отображение подробной информации о выбранной игре.
  • Прямые ссылки на страницу игры в Steam и для её запуска.

Подробная инструкция доступна по нажатию на значок вопроса ? в окне самой рулетки.

[Изображение: Пример модального окна Рулетки Stelicas с фильтрами]
Доступность подарков (Список желаемого)

Что делает: Добавляет значок лупы на страницу списка желаемого. Позволяет определить, какие игры из вашего вишлиста можно подарить друзьям в других регионах.

Основные функции:

  • Загружает игры из отображаемого списка желаемого и выводит их в виде информативных карточек с возможностью сортировки.
  • Активирует режим помощника подарков:
    • Вы выбираете регион вашего друга.
    • Скрипт запрашивает цены на игры для выбранного региона.
    • Цены друга конвертируются в вашу валюту.
    • Отображается разница в цене с цветовой индикацией (зелёный - можно дарить, красный - нельзя).
    • Доступен фильтр "Можно подарить".

Это помогает легко найти подходящие и экономически целесообразные подарки для друзей за границей.

[Изображение: Пример работы помощника подарков для списка желаемого]

Улучшения существующих функций

Индикаторы / Доп. обзоры / Монитор обзоров

Модуль информации об обзорах на странице игры был расширен:

  • Новинка: Глобальный монитор обзоров!
    • При щелчке по строке "Тотальные" открывается окно "Глобальный монитор обзоров".
    • Этот инструмент позволяет собрать (по кнопке "Собрать") и визуализировать статистику обзоров по 27 языкам Steam.
    • Отображается таблица с рейтингом языков по количеству обзоров и доле в общей массе.
    • Интерактивная круговая диаграмма для наглядного представления распределения обзоров по языкам.
[Изображение: Глобальный монитор обзоров с таблицей и диаграммой]

⚠️ Важное замечание о зависимостях:

Отключение этого модуля через новое меню настроек приведет к автоматическому отключению или нарушению корректной работы модулей «Время прохождения (HLTB)», «Русификаторы (ZOG)» и «Время друзей / Глобальные достижения», так как они критически зависят от его функционала по отображению элементов на странице игры.

Наблюдатель (Желаемое/Библиотека)

Модуль отслеживания был полностью переработан, получил новое имя "Наблюдатель" и значительно расширил свои возможности. Теперь он следит не только за списком желаемого, но и за вашей библиотекой, а также предлагает гибкие настройки для ускорения работы.

  • Комплексное отслеживание: "Наблюдатель" теперь отслеживает изменения как для Списка желаемого, так и для Библиотеки:
    • Для желаемого: изменение даты выхода, выход из раннего доступа, появление/изменение русского языка.
    • Для библиотеки: выход игры из раннего доступа, а также появление или изменение русской локализации (с точным указанием, что было добавлено или убрано: интерфейс, озвучка, субтитры).
  • Гибкие настройки сканирования: В панели уведомлений появился значок настроек, который открывает меню с новыми опциями:
    • Возможность включать или отключать проверку для желаемого и библиотеки по отдельности.
    • Оптимизация проверки библиотеки: Добавлены опции для значительного ускорения повторных сканирований. Можно отключить перепроверку игр, у которых уже есть любая русская локализация, или, для более детального контроля, перепроверять только те игры, у которых нет полной локализации.
  • Улучшенный интерфейс:
    • Раздельные индикаторы статуса (Ж/Б), показывающие, как давно обновлялись данные для Желаемого и Библиотеки.
    • Более информативные уведомления, четко разделенные по источнику (Желаемое/Библиотека) и типу изменения.
  • Управление хранилищем: Новая кнопка "Хранилище" позволяет вручную очистить кэш сохраненных данных для списка желаемого или библиотеки. Это полезно, если вы хотите принудительно запустить полное повторное сканирование.
     
[Изображение: Пример панели уведомлений Наблюдателя]
 
[Изображение: Пример окна управления хранилищем Наблюдателя]
Фильтр новостей

Модуль скрытия новостей в новостном центре получил следующие улучшения:

  • "Мягкое" скрытие: При установке галочки новость сначала становится полупрозрачной, отмечаясь для последующего подтверждения скрытия.
  • Панель управления:
    • Кнопка "Скрыть выбранные (X)" с счетчиком.
    • Индикатор "В хранилище: X" показывает общее количество скрытых новостей.
    • Кнопка "Отменить" для отмены последнего действия по скрытию (активна 6 секунд).
    • Переключатель "Показать скрытое" / "Спрятать скрытое" для временного отображения скрытых новостей в затемненном виде.
  • Новинка: Панель "Хранилище скрытых новостей"!
    • Открывается кнопкой "Хранилище" из панели управления.
    • Отображает список всех постоянно скрытых новостей (название игры, заголовок, AppID).
    • Позволяет выборочно "Вернуть" новость из хранилища.
    • Кнопка "Очистить хранилище" для полного удаления всех скрытых новостей (требует подтверждения).
[Изображение: Пример интерфейса фильтра новостей]
[Изображение: Пример интерфейса хранилища новостей]
Русификаторы (ZOG)

Модуль поиска русификаторов был кардинально переработан и больше не использует устаревающую базу данных.

  • Поиск в реальном времени: Вместо статической базы данных теперь скрипт выполняет поиск напрямую на сайте ZoneOfGames.ru в момент вашего запроса, гарантируя максимальную актуальность информации.
  • Выбор из совпадений: Если найдено несколько похожих игр, скрипт предложит вам список для выбора. Это исключает ошибки при поиске игр с похожими названиями (например, 'Half-Life' и 'Half-Life 2') и обеспечивает более высокую точность.
[Изображение: Пример отображения информации о русификаторах с ZOG]
Доп. инфо в ленте активности

Модуль, отображающий информацию об играх в ленте активности, был улучшен для более точного отображения изображений.

  • Точные изображения: Вместо использования стандартного имени файла header.jpg, скрипт теперь запрашивает у API Steam точное имя файла обложки игры. Это решает проблему, когда для некоторых игр отображалась неверная или отсутствующая картинка.
  • Повышенная надежность: Новый метод гарантирует, что во всплывающей подсказке будет показано именно то изображение, которое разработчик установил в качестве основного для страницы в магазине.

Технические изменения

  • Новые библиотеки:
    • Добавлена библиотека Chart.js для построения диаграмм в "Глобальном мониторе обзоров".
    • Добавлен плагин chartjs-plugin-datalabels для отображения меток данных на диаграммах.
  • Обновлены директивы @connect:
    • Добавлено множество новых доменов для работы "Агрегатора цен (%)", "Анализатора цен" и "Помощников подарков".
    • Удален домен vgtimes.ru в связи с заменой соответствующего модуля.
  • Общая оптимизация кода и улучшение стабильности работы существующих модулей.

Удаленные функции

  • Агрегатор цен (VGTimes): Модуль был полностью удален и заменен новым, более функциональным модулем "Агрегатор цен (%)".
  • Отслеживание вишлиста (wishlistTracker): Старый модуль был заменен на новый, более комплексный модуль "Наблюдатель (Желаемое/Библиотека)".

 

Актуальный функционал (Версия 2.1.3)

Полное описание всех функций

Ultimate Steam Enhancer

Ultimate Steam Enhancer — это мощный пользовательский скрипт для платформы Steam, расширяющий стандартные возможности магазина и сообщества. Он объединяет в себе функционал множества инструментов, предоставляя пользователю расширенный контроль и доступ к дополнительной информации об играх, ценах, переводах, обзорах, активности друзей и многом другом.


Функции на странице игры

Индикаторы / Доп. обзоры / Монитор обзоров

Что делает:

  1. Отображает значки-индикаторы наличия русского языка (интерфейс, озвучка, субтитры) прямо на странице игры.
  2. Добавляет под стандартными обзорами блок с расширенной статистикой (загружается по щелчку или автоматически, если включена опция):
    • Тотальные: Все обзоры Steam (включая активации ключами).
    • Безкитайские: Обзоры за исключением написанных на китайском языке.
    • Русские: Только обзоры на русском языке.

[Пример индикаторов и дополнительных обзоров на странице игры]


  1. Модальные окна:
  • При щелчке по строке "Русские" открывается окно с актуальными русскоязычными обзорами для этой игры.

[Модальное окно с русскоязычными обзорами]


  • При щелчке по строке "Тотальные" открывается окно "Глобальный монитор обзоров". Этот инструмент позволяет собрать (по кнопке "Собрать") и визуализировать статистику обзоров по 27 языкам Steam. Он показывает таблицу с рейтингом языков по количеству обзоров и доле в общей массе, а также интерактивную круговую диаграмму для наглядного представления.

[Глобальный монитор обзоров с таблицей и диаграммой]

Важное замечание о зависимостях:

Отключение этого модуля приведет к автоматическому отключению или нарушению корректной работы модулей «Время прохождения (HLTB)», «Русификаторы (ZOG)» и «Время друзей / Глобальные достижения», так как они критически зависят от его функционала по отображению элементов на странице игры.

Время прохождения (HLTB)

Что делает:
Добавляет компактный блок с информацией о времени прохождения игры, полученной с популярного сайта HowLongToBeat.com.

Показывает среднее время для разных стилей:

  • Только основной сюжет.
  • Сюжет + дополнительные задания.
  • Полное прохождение (100%).
  • Усредненное время для всех стилей.

Рядом со временем указывается количество игроков, на чьих данных основана статистика.
Поиск игры в базе HLTB идет по названию, при неоднозначности предлагается выбор из похожих вариантов.

[Пример отображения времени прохождения с HowLongToBeat]
Русификаторы (ZOG)

Что делает:
Добавляет блок с информацией о наличии русификаторов для игры на сайте ZoneOfGames.ru.

В блоке отображается:

  • Название игры (ведет на страницу игры в базе ZOG).
  • Список доступных русификаторов. Каждая запись является ссылкой на соответствующий файл/страницу на ZOG.
  • Если переводы не найдены, выводится соответствующее сообщение.

Поиск происходит в реальном времени. Скрипт автоматически определяет название игры, выполняет поиск по алфавитному указателю на ZoneOfGames.ru и предлагает вам выбрать наиболее точное совпадение.

[Пример отображения информации о русификаторах с ZOG]
Время друзей / Глобальные достижения

Что делает:
Добавляет на страницу игры два независимых блока, расширяющих информацию о действиях ваших друзей и глобальной статистике достижений.

1. Плавающий блок статистики (у шапки игры)

Справа от изображения игры появляется компактный значок, при нажатии на который загружается и отображается сводная статистика:

Время друзей:

  • Максимальное время в игре (и ник друга со ссылкой).
  • Среднее время (с указанием кол-ва друзей).
  • Минимальное время в игре.

Глобальные достижения:

  • Процент "платины" (самое редкое достижение).
  • Средний прогресс выполнения всех достижений.
[Пример блока статистики]

2. Информационный блок друзей (в правой колонке)

⚠️ Важное примечание:

Этот блок появляется только в том случае, если Steam не отображает на странице стандартный блок с рекомендациями друзей (например, на страницах, открытых с помощью виртуального режима инкогнито).

 

Скрипт добавляет в правую колонку подробный список друзей, взаимодействовавших с игрой, сгруппированный по категориям:

  • Друзья, игравшие недавно (за последние 2 недели).
  • Все друзья, когда-либо игравшие в игру.
  • Все друзья, имеющие игру в библиотеке.
  • Друзья, которые добавили игру в свой список желаемого.

Каждая категория сопровождается сеткой из шести аватаров друзей со ссылками на их профили.

[Пример информационного блока друзей]
Индикатор раннего доступа

Что делает:
Показывает небольшую плашку над изображением игры с информацией о статусе раннего доступа (Early Access).

  • Если игра еще в раннем доступе: Отображается, сколько времени игра уже находится в нем
    (например, "В раннем доступе уже 1 год и 3 месяца").

[Пример индикатора для игры в активном раннем доступе]


  • Если игра вышла из раннего доступа: Отображается, сколько времени игра провела в нем до релиза
    (например, "Вышла спустя 2 года раннего доступа").

[Пример индикатора для игры, вышедшей из раннего доступа]

Расчет времени динамический. Использует даты со страницы Steam.
А также может подтягивать дату старта раннего доступа из собственной базы для вышедших игр, если Steam ее не показывает.

Анализатор цен

Что делает:
Добавляет кнопку "Анализатор цен" на страницу игры. Этот инструмент позволяет анализировать региональные цены двумя способами:
в рублях (по умолчанию) и в долларах США (переключаемый режим).

После нажатия кнопки "Сбор данных" в специальном окне, модуль выполняет следующее в зависимости от выбранного режима:

  • Режим Рублей (по умолчанию):
    • Определяет AppID текущей игры и запрашивает цены через официальное API Steam (IStoreBrowseService/GetItems) для множества регионов.
    • В качестве базы для расчета рекомендованной рублевой цены используется цена в США (USD).
    • Цены из всех регионов, включая Россию, конвертируются в рубли по актуальным обменным курсам для прямого сопоставления.
    • Производится ключевое сравнение: фактическая цена в российском Steam сопоставляется с официально рекомендованной Valve ценой для России. Отклонения подсвечиваются.
    • Отображается рейтинг российской цены среди всех проанализированных стран, позволяя увидеть её место от самой дешёвой к самой дорогой в рублевом эквиваленте.
  • Режим Долларов США (переключаемый):
    • Активируется кнопкой "USD" в окне анализатора. Интерфейс и названия валют переключаются на английский язык.
    • Цены всех регионов также запрашиваются через API Steam и конвертируются в доллары США.
    • Цена в США используется как базовый ориентир (100%) для сравнения с ценами других регионов.
    • Отображается процентное отклонение цен других регионов от цены в США.
    • Представляется общий рейтинг всех региональных цен в долларовом эквиваленте.
    • Этот режим полезен для оценки ценовой политики при общении с разработчиками/издателями.

Примечание: Если игра в США бесплатна или цена для нее не найдена, возможности анализа в обоих режимах могут быть ограничены. Вся собранная информация представляется в модальном окне.

Важная информация:

Каждый полный сбор данных подразумевает отправку ~41 запроса к серверам Steam (точное количество зависит от числа доступных регионов). Пожалуйста, используйте эту функцию обдуманно. Частое нажатие кнопки на разных играх в течение короткого периода времени может привести к временному ограничению доступа к API Steam (обычно на 5-15 минут).

 
[Пример работы анализатора региональных цен]
Поиск цен на Plati.Market

Что делает:
Добавляет кнопку "Plati" рядом с кнопкой "В желаемое" на странице игры.
Нажатие открывает полноэкранное окно для поиска предложений по этой игре на торговой площадке Plati.Market.

Возможности окна поиска:

  • Автозаполнение поиска названием текущей игры.
  • Ручной ввод и поиск.
  • Подсказки при вводе (API Plati).
  • Сортировка по цене, продажам, релевантности, названию, дате, рейтингу продавца и др.
  • Фильтрация по цене (RUR, USD, EUR, UAH), продажам, рейтингу, наличию плохих отзывов/возвратов, участию в скидках, дате добавления.
  • Исключение товаров по ключевым словам (панель справа).
  • Сохранение фильтров, сортировки, валюты и исключений.
  • Возможность экспортировать и импортировать список исключений.

Используются официальные API Plati.Market.

[Модальное окно поиска цен на Plati.Market]
Агрегатор цен (%)

Что делает:
Добавляет кнопку "%" рядом с кнопкой "В желаемое" на странице игры.
Нажатие открывает модальное окно с ценами на эту игру из различных цифровых магазинов.

Возможности окна агрегатора:

  • Отображение предложений из магазинов: SteamBuy, Playo, SteamPay, Gabestore, GamersBase, Igromagaz, GamesForFarm, Gamazavr, GameRay, KupiKod, KeysForGamers, Zaka-zaka, Buka, GGSEL, Plati.Market, Rushbe и текущей страницы Steam.
  • Переключение валют: Возможность просмотра всех цен в рублях (RUB, по умолчанию) или в долларах США (USD), с автоматической конвертацией по актуальному курсу.
  • Сортировка по цене, проценту скидки, сумме скидки, названию.
  • Фильтрация по диапазону цен, проценту и сумме скидки, наличию скидки, названию (слова через ";"), магазинам.
  • Исключение товаров по ключевым словам.
  • Сохранение состояния фильтров, сортировки и исключений.
  • Настройки автоматизации (в общем меню настроек U.S.E.):
    • Автоматический запуск поиска при открытии окна.
    • Автоматическая подстановка названия текущей игры в поле фильтра после завершения сбора данных.
  • Экспорт и импорт списка исключений для удобного переноса и резервного копирования.
Список рекомендуемых исключений

Нажмите кнопку импорта (→) и вставьте в появившееся окно следующий текст:




онлайн,оффлайн,dlc,аккаунт,ps4,xbox,digi361,ibloodrue,mangarded,siparisapp,multimarket,trustytop,cyber steam shop,boostgame,cloud-gaming.store,promarket88,offline,-seyter-,paul fox,sirdjinn,аренда,4ilgames,keks12,damhubmarket,nt-store,ps5,@mediasoft,dofamine game,hactier,alz0n,top-games,solo29,nerd shop,1gamestore,tobeclosertoyou

Использует различные методы для получения цен (API, парсинг HTML).

[Пример интерфейса агрегатора цен]
Доступность подарков (страница игры)

Что делает:
Добавляет кнопку "GIFT" в блок с кнопкой "В желаемое" на странице игры.

Нажатие открывает окно, где можно:

  • Выбрать регион друга из списка.
  • Нажать "Узнать", чтобы запросить цену игры в этом регионе.
  • Увидеть цену друга (сконвертированную в вашу валюту), процент разницы и вердикт (Можно подарить / Нельзя подарить), основанный на правилах Steam о разнице цен (±10%).

Использует те же механизмы получения цен и курсов валют, что и помощник для списка желаемого.

[Пример работы помощника подарков на странице игры]

Улучшения каталога Steam

Доп. инфо / Фильтры

Что делает:
Расширяет функционал страницы поиска по каталогу Steam (store.steampowered.com/search/).

При наведении:

  • Появляется всплывающая подсказка слева от строки игры с подробной информацией:
    издатели, разработчики, серия, отзывы (% и кол-во), статус раннего доступа, поддержка языков, первые 5 меток, краткое описание.

[Пример дополнительной информации об игре в каталоге]


Фильтры (панель справа):

  • Русский перевод:
    • Только текст: Игры с рус. интерфейсом/субтитрами (без озвучки).
    • Озвучка: Игры с русской озвучкой.
    • Без перевода: Игры без русского языка.

[Пример фильтрации по русскому переводу в каталоге]

  • DLC:
    • Только ваши DLC: Показывает только DLC для игр, которые есть в вашей библиотеке
      (сами DLC подсвечиваются фиолетовым фоном).

[Фильтр DLC]

Фильтры применяются динамически по мере получения данных от API.

Скрытие игр

Что делает:
Добавляет инструменты для массового скрытия неинтересующих игр прямо со страницы поиска по каталогу.

Элементы интерфейса:

  • Счетчик отображаемых игр (слева вверху).
  • Чекбокс слева от каждой игры (кроме уже купленных/скрытых/в желаемом) для отметки на скрытие.
  • Кнопка "Скрыть выбранное" (слева вверху).

Принцип работы:

  1. Отмечаете чекбоксами игры, которые хотите скрыть.
  2. Нажимаете "Скрыть выбранное".
  3. Скрипт добавляет эти игры в ваш официальный список игнорируемых в Steam и удаляет их элементы со страницы.

В отличие от стандартного механизма Steam, элементы полностью удаляются из DOM, что улучшает производительность при работе с большим количеством результатов.

Внимание: Рекомендуется использовать только при необходимости массового скрытия.
Для обычного просмотра каталога лучше отключать эту опцию.

[Пример системы скрытия игр в каталоге]

Сообщество и активность

Доп. инфо в ленте активности

Что делает:
Добавляет всплывающую подсказку при наведении на название игры в вашей ленте активности Steam (steamcommunity.com/my/home).

Подсказка содержит подробную информацию об игре, аналогичную той, что показывается в каталоге поиска:

  • Название и изображение-шапка.
  • Дата выхода.
  • Издатели, разработчики, серия игр.
  • Отзывы (% и кол-во).
  • Статус раннего доступа.
  • Поддержка русского и английского языков.
  • Первые 5 меток.
  • Краткое описание.

Данные загружаются через API Steam.

[Пример дополнительной информации в ленте активности Steam]
Рулетка Stelicas

Что делает:
Добавляет блок "Рулетка Stelicas" на страницу вашей активности Steam (steamcommunity.com/my/home). Позволяет загрузить CSV-файл, сгенерированный приложением Stelicas, применить к нему разнообразные фильтры и случайным образом выбрать игру из вашей коллекции.

Возможности:

  • Загрузка CSV-данных из Stelicas (содержащих информацию о ваших играх и коллекциях).
  • Система фильтрации: по категориям коллекций Stelicas, дате выхода, пользовательским тегам, поддержке русского языка (интерфейс, субтитры, озвучка), а также по диапазонам количества отзывов и общего рейтинга игры.
  • Анимированная рулетка для выбора случайной игры из отфильтрованного списка.
  • Возможность включить приоритет по отзывам и рейтингу, чтобы игры с лучшими показателями имели больше шансов на выпадение.
  • Переключение в режим просмотра всей отфильтрованной подборки игр в виде удобных карточек (изображение и название).
  • Отображение подробной информации о выбранной (или просматриваемой в подборке) игре: постер, название, рейтинг и количество отзывов, краткое описание, основные теги, точная дата выхода, разработчики/издатели, информация о поддержке русского языка.
  • Прямые ссылки на страницу игры в сообществе Steam и для её запуска через протокол steam://run/<AppID>.

Как пользоваться:

  • Подробная инструкция по подготовке CSV-файла и использованию всех функций рулетки доступна по нажатию на значок вопроса ? в правом верхнем углу окна самой рулетки.

Примечание: Качество работы и полнота информации в рулетке напрямую зависят от корректности и актуальности данных в предоставленном CSV-файле из Stelicas.

[Рулетка Stelicas]
Виртуальный режим «Инкогнито» (обход региональных блокировок)

Что делает:
Полностью автоматизирует просмотр страниц Steam, недоступных в вашем регионе, без необходимости использования VPN, прокси или ручных манипуляций с URL.

Принцип работы:

  1. При переходе на страницу с сообщением "Данный товар недоступен в вашем регионе", скрипт автоматически это распознает.
  2. Вместо простого редиректа, он в фоновом режиме запрашивает у Steam анонимную сессию, имитируя визит нового пользователя.
  3. Используя эту сессию, скрипт запрашивает страницу для выбранного в настройках региона (по умолчанию — США, ?cc=us), автоматически проходя проверку возраста, если она есть.
  4. Резервный механизм: Если выбранный пользователем регион (или регион по умолчанию) заблокирован, скрипт автоматически попытается загрузить страницу через цепочку резервных регионов (США → Швейцария → Казахстан → Япония), пока не найдет рабочий вариант.
  5. Полученный "чистый" HTML-код страницы полностью заменяет содержимое текущей вкладки. Вы остаетесь на том же URL, но видите разблокированную страницу.
  6. Все остальные модули U.S.E. перезапускаются, чтобы корректно работать с новым содержимым.

Преимущества и настройки:

  • Бесшовная работа: Не нужно открывать новые окна или вручную редактировать адрес.
  • Гибкость: В настройках скрипта можно отключить автоматический запуск режима, выбрать регион по умолчанию и включить кнопку для ручной активации режима на любой странице Steam.
  • Сохранение контекста: После загрузки страницы такие динамические элементы, как обзоры, подгружаются уже от вашего аккаунта, то есть вы видите обзоры от друзей.
  • Безопасность: Метод не нарушает правила Steam, так как не скрывает ваш IP-адрес, а лишь использует легитимный механизм просмотра магазина для другого региона. Покупка игр через этот режим невозможна.

Торговая площадка

Продажи предмета

Что делает:
Добавляет информационный блок на страницу предмета на торговой площадке Steam (steamcommunity.com/market/).

Блок содержит:

  • Таблицу с историей продаж по годам:
    • Общая сумма продаж за год (в рублях).
    • Примерная сумма, полученная разработчиком игры.
    • Примерная сумма, полученная Valve.
  • Итоговую сумму продаж за все время.
  • Итоговые суммы, полученные разработчиком и Valve.

Данные загружаются через API истории цен Steam.

[Пример информации об исторических продажах на торговой площадке]

Новости и список желаемого

Наблюдатель (Желаемое/Библиотека)

Что делает:
Отслеживает изменения в вашем списке желаемого Steam и в вашей библиотеке игр, отображает календарь релизов.

Основные функции:

  1. В правом верхнем углу страниц Steam появляется кнопка "Наблюдатель".
  2. Индикаторы статуса (Ж/Б): Показывают, как давно обновлялись данные для Желаемого и Библиотеки.
  3. Счетчик уведомлений: Показывает количество новых (непрочитанных) изменений.
  4. Панель уведомлений (по щелчку на кнопку):
    • Кнопка "Обновить" для ручного запуска проверки (использует Steam API).
    • Настройки (значок ⚙️): Открывает выпадающее меню с опциями:
      • Список желаемого / Библиотека: Позволяют включать/отключать проверку для каждой из секций.
      • Перепроверять игры с русским: (Опция для Библиотеки). По умолчанию включена. Если её отключить, скрипт пропустит проверку игр, для которых уже известно о наличии любой русской локализации. Это значительно ускоряет повторные обновления.
      • ...только без полной локализации: (Доступна, если предыдущая опция отключена). Если включить, то из повторной проверки будут исключаться только игры с полной локализацией (интерфейс+озвучка+субтитры). Игры с частичным переводом продолжат проверяться.
    • Список изменений:
      • Список желаемого: Изменение даты выхода, статуса раннего доступа или русского языка.
      • Библиотека: Выход игры из раннего доступа, появление/изменение русского языка (и тип локализации).
    • Кнопки для отметки уведомления как прочитанного (конверт) или удаления (крестик).
    • Кнопка "Очистить" для удаления всех уведомлений.
    • Кнопка "Календарь".
    • Кнопка "Хранилище" для очистки сохраненных данных.

[Пример панели уведомлений Наблюдателя]


  1. Календарь релизов (по щелчку на кнопку "Календарь"):
    • Отображает игры из вашего списка желаемого в виде календаря по месяцам.
    • Показывает игры с точными датами выхода в будущем.
    • Для игр с примерной датой (месяц, квартал, год) отображается подсказка при наведении.
    • Позволяет подгружать следующие месяцы.

[Пример Календаря]


  1. Хранилище (по щелчку на кнопку "Хранилище"):
    • Позволяет очистить кэш дат/статусов для списка желаемого или для игр библиотеки.

[Пример Хранилища]

Требует авторизации. Обработка больших списков/библиотек может занять время. Используйте новые опции в настройках для ускорения сканирования библиотеки.

Доступность подарков (список желаемого)

Что делает:
Добавляет значок лупы. Позволяет определить, какие игры можно подарить друзьям в других регионах.

Основные функции:

  • Загружает игры из отображаемого списка желаемого и выводит их в виде информативных карточек.
  • На карточках отображается подробная информация: цена, скидка, рейтинг, дата выхода, издатель, разработчик, серия, метки, поддержка русского языка и статус раннего доступа.
  • Для пользователей из РФ: на карточках также отображается информация о соответствии стоимости рекомендованной региональной цене (РРЦ) от Valve. Показывается статус (дороже, дешевле или равно РРЦ), сумма и процент отклонения.
  • Предоставляет гибкую систему фильтрации по цене, скидке, рейтингу, дате выхода, поддержке русского языка, статусу раннего доступа, а также по соответствию РРЦ (для РФ).
  • Активирует режим помощника подарков:
    • Вы выбираете регион вашего друга.
    • Скрипт запрашивает цены на игры из списка желаемого для выбранного региона.
    • Цены друга конвертируются в вашу валюту (используется API курсов валют).
    • Отображается разница в цене между вашим регионом и регионом друга
      (с цветовой индикацией: зелёный - можно дарить (разница до ±10%), красный - нельзя).
    • Доступен фильтр "Можно подарить", который показывает только те игры, у которых разница в цене до ±10% и которые Steam разрешает покупать в подарок.

Это помогает легко найти подходящие и экономически целесообразные подарки для друзей за границей.

Скорость загрузки данных зависит от размера списка желаемого.

[Пример работы помощника подарков для списка желаемого]
Фильтр новостей

Что делает:
Позволяет гибко управлять отображением новостей в новостном центре Steam (store.steampowered.com/news/), скрывая неинтересные материалы.

Основные возможности и использование:

  1. Выбор новостей для скрытия:
    • На каждой новости в правой части изображения появляется крупный квадратный чекбокс.
    • При установке галочки новость становится полупрозрачной ("мягкое" скрытие) и отмечается для последующего подтверждения скрытия. Повторный щелчок снимает отметку.
  2. Панель управления (справа вверху):
    • "Скрыть выбранные (X)": Нажатие этой кнопки перемещает все отмеченные (полупрозрачные) новости в постоянное хранилище.
      • Новость исчезает с экрана (или становится затемненной, если включен режим "Показать скрытое").
      • Счетчик в скобках показывает, сколько новостей сейчас выбрано.
    • "В хранилище: X": Эта надпись показывает общее количество новостей, находящихся в хранилище скрытых новостей.
    • "Отменить": Появляется после подтверждения скрытия и активна 15 секунд. Позволяет отменить последнее действие по добавлению новостей в хранилище.
    • "Показать скрытое" / "Спрятать скрытое": Переключатель.
      • Если выбрано "Показать скрытое", новости из вашего хранилища будут отображаться в ленте, но в затемненном виде.
      • В режиме "Спрятать скрытое" они полностью исчезают.
    • "Хранилище": Открывает модальное окно для управления списком постоянно скрытых новостей.

[Фильтр новостей]


  1. Панель "Хранилище скрытых новостей":
    • Отображает список всех новостей, добавленных в постоянное хранилище. Для каждой записи указывается название игры, заголовок новости и ее AppID.
    • "Вернуть": Кнопка напротив каждой записи позволяет удалить новость из хранилища и немедленно отобразить ее в ленте. Чекбокс на этой новости также снова станет активным.
    • "Очистить хранилище": Удаляет все новости из вашего списка постоянно скрытых. Требует подтверждения.
    • "Закрыть": Закрывает панель хранилища.

[Хранилище новостей]


Настройки

Как найти и использовать меню настроек U.S.E.

Для настройки отдельных модулей скрипта и их параметров используйте меню настроек U.S.E.
Оно находится в выпадающем меню вашего профиля Steam (в правом верхнем углу), как показано ниже:

[Расположение меню настроек U.S.E. в профиле Steam]

В открывшемся окне настроек вы сможете включать или отключать модули скрипта:

E8sOzQ2.png

Также в меню настроек доступны следующие опции:

Авто-раскрытие HLTB

Если включено, блок с информацией о времени прохождения (HLTB) на странице игры будет автоматически раскрываться при загрузке страницы (если основной модуль HLTB включен).

Удобно, если вы всегда хотите видеть эту информацию без лишнего щелчка.

Авто-загрузка доп. обзоров

Если включено, блок с дополнительными обзорами (Тотальные, Безкитайские, Русские) на странице игры будет загружаться автоматически при загрузке страницы (если основной модуль 'Индикаторы/Обзоры' включен).

Экономит щелчок, если вам всегда нужна эта статистика.

Показ инфо об англ. языке

Функция для переводчиков и интересующихся. Если включено, в блоках дополнительной информации (в каталоге при наведении и в ленте активности при наведении) будет также отображаться информация о поддержке английского языка (интерфейс, озвучка, субтитры), аналогично русскому.

По умолчанию эта информация скрыта для экономии места.

Авто-сбор цен в агрегаторе цен

Если опция включена, при открытии модального окна Агрегатора цен (%) сбор предложений из магазинов начнется автоматически, без необходимости нажимать кнопку "Обновить %".

Это удобно, если вы всегда хотите сразу видеть актуальные цены при каждом открытии окна.

Авто-подстановка названия в агрегаторе цен

Если опция включена, после завершения сбора данных (как ручного, так и автоматического) название текущей игры будет автоматически вставлено в поле фильтра по названию.

⚠️ Важно:

Для более точного поиска рекомендуется сокращать подставленное название. Например, вместо "DEATH STRANDING DIRECTOR'S CUT" лучше оставить только "DEATH STRANDING". Это поможет найти предложения, где продавцы могли изменить или сократить название, например, "Death Stranding (Director's Cut)" или "Death Stranding D.C.".

Виртуальный режим «Инкогнито»

Эта секция позволяет управлять функцией обхода региональных блокировок.

  • Включить режим «Инкогнито»: Главный переключатель функции. Отключение деактивирует автоматический обход страниц, недоступных в вашем регионе.
  • Кнопка режима «Инкогнито»: Добавляет кнопку "in" рядом с логотипом Steam для ручного запуска режима на любой странице. Полезно, если автоматический запуск не сработал или для страниц, которые не являются игровыми.
  • Регион В.Р.И.: Позволяет выбрать страну, от имени которой будет запрашиваться страница. По умолчанию — США (US).
[Настройки режима Инкогнито]

 

Изменено пользователем 0wn3df1x
  • Спасибо (+1) 2

Поделиться сообщением


Ссылка на сообщение

Очень крутая и удобная штука! Огромное спасибо. Жаль нельзя проверить еще доступность подарка, если в RU сегменте нет игры.
А так, очень информативное и удобное расширение. 

Поделиться сообщением


Ссылка на сообщение

Просто великолепно, низкий поклон за труд!

  • +1 1

Поделиться сообщением


Ссылка на сообщение
6 часов назад, UnfoRGiveN сказал:

Очень крутая и удобная штука! Огромное спасибо. Жаль нельзя проверить еще доступность подарка, если в RU сегменте нет игры.
А так, очень информативное и удобное расширение. 

На предыдущей странице писал, почему в данный момент это нельзя реализовать.

 

Поделиться сообщением


Ссылка на сообщение

@0wn3df1x Добрый день.
Расширение отличное, да вот незадача. Скрипт установлен через adguard. Сейчас в любом браузере крашится на попытке вывести правые блоки с инфой. Предыдущая версия работала отлично и в браузере и в steam.
Планируете ли поддержку adguard в новой версии?
1.png 2.png 3.png 4.png


UPD: В общем закостылил себе исправление, Добавил первой строкой
          var unsafeWindow = typeof unsafeWindow === 'undefined' ? window: unsafeWindow;

Изменено пользователем blazer404

Поделиться сообщением


Ссылка на сообщение
11 минут назад, 0wn3df1x сказал:

На предыдущей странице писал, почему в данный момент это нельзя реализовать.

 

Ага, как раз и писал, что жалко нельзя проверить. Но всё равно, безумно крутой функционал!

Поделиться сообщением


Ссылка на сообщение
27 минут назад, blazer404 сказал:

Скрипт установлен через adguard. Сейчас в любом браузере крашится на попытке вывести правые блоки с инфой. 
1.png 2.png 3.png 4.png

Корень проблемы заключается в различиях между средами выполнения пользовательских скриптов в Tampermonkey (и аналогичных расширениях) и в AdGuard. В вашем логе ошибок ключевой момент - ReferenceError: unsafeWindow is not defined.

Объект unsafeWindow - это специфический API, предоставляемый большинством специализированных менеджеров пользовательских скриптов. Он дает скрипту привилегированный доступ к глобальному объекту window страницы и его переменным. Это необходимо для корректного взаимодействия с функциями и данными, которые использует сам Steam.

Судя по всему, среда выполнения скриптов в AdGuard не предоставляет этот специфический объект unsafeWindow, что и приводит к ошибке. Поскольку скрипт разрабатывался и тестировался в окружении Tampermonkey, где этот API гарантированно есть, возникает данная ошибка совместимости.


1 час назад, blazer404 сказал:

Предыдущая версия работала отлично и в браузере и в steam.

В предыдущих версиях скрипта (например, 1.9.5) большинство модулей работало через прямые API-запросы к серверам Steam (с помощью GM_xmlhttpRequest). Для этого не требовался доступ к контексту самой веб-страницы, и стандартного объекта window было достаточно.

В процессе разработки версии 2.0.0 были добавлены новые, более сложные функции, в частности “Помощник подарков в списке желаемого” (wishlistGiftHelper). Его задача - работать с уже загруженным на странице списком игр. Steam помещает эти данные в глобальную JavaScript-переменную g_rgWishlistData, которая является свойством объекта window самой страницы.

Здесь и возникает ключевая техническая проблема: из-за политики безопасности браузеров пользовательские скрипты выполняются в изолированной среде (песочнице). Простое обращение к window из скрипта дает доступ к window этой песочницы, а не страницы. Поэтому window.g_rgWishlistData возвращало undefined.

Решением этой проблемы стало unsafeWindow. После чего я решил стандартизировать его использование во всех частях скрипта.

52 минуты назад, blazer404 сказал:

UPD: В общем закостылил себе исправление, Добавил первой строкой
          var unsafeWindow = typeof unsafeWindow === 'undefined' ? window: unsafeWindow;

В теории этот полифил должен сработать для части модулей. Он проверяет наличие unsafeWindow и, если его нет, создает локальную переменную с таким же именем, присваивая ей стандартный объект window.

Но есть нюанс. Простое приравнивание unsafeWindow к window не всегда является полноценной заменой. Как уже упоминалось, некоторые модули, типа “Доступность подарков (список желаемого)”, зависят от unsafeWindow для доступа к данным, которые Steam загружает динамически (к глобальному массиву с играми g_rgWishlistData). Из-за изоляции контекстов скриптов, стандартный window может не дать доступа к этим данным. В связи с этим, у меня есть вопрос: После использования того костыля, корректно ли работает функционал помощника подарков на странице списка желаемого? Загружаются ли игры после нажатия “Собрать данные”?

Поделиться сообщением


Ссылка на сообщение

@0wn3df1x Протестировал, что работает/не работает

Скрытый текст

Для страницы игры

Время прохождения (HLTB) — ok

Русификаторы (ZOG) — ok

Время друзей / Глобальные достижения — частично (не работает время друзей — всегда не играли)

Индикатор раннего доступа — ok  

Анализатор цен — ok

Поиск цен Plati.Market  ok

Агрегатор цен (%) — ok

Доступность подарков (страница игры) — ok


Для каталога

Доп. инфо / Фильтры — ok

Скрытие игр — ok

 

Для ленты активности

Доп. инфо в ленте активности — ok

Рулетка Stelicas — вроде ok (открывается, csv не проверял)

 

Для торговой площадки

Продажи предмета — ok

 

Для списка желаемого / Новостей

Наблюдатель (Желаемое/Библиотека) — не работает (отображается, но всегда пусто)

Доступность подарков (список желаемого) — не работает

  • лупа есть
  • Ошибка при сборе данных: Не удалось извлечь AppID …
  • в консоли Minified React error #418, но это как я понимаю ошибка стима

Фильтр новостей — ok

 

Дополнительные настройки

Авто-раскрытие HLTB — ok

Показ инфо об англ. Языке — ok

Авто-загрузка доп. Обзоров — ok

Немного обманул в прошлом сообщении, что прямо все работало в прошлой версии. По сути то, что не работает сейчас, не работало и в прошлой, только добавились краши.

Изменено пользователем blazer404

Поделиться сообщением


Ссылка на сообщение
1 час назад, blazer404 сказал:

@0wn3df1x Протестировал, что работает/не работает

Немного обманул в прошлом сообщении, что прямо все работало в прошлой версии. По сути то, что не работает сейчас, не работало и в прошлой, только добавились краши.

Да, как я и предполагал, за исключением дополнения в виде наблюдателя времени друзей.

Экосистема менеджеров (Tampermonkey, Greasemonkey, Violentmonkey и др.), а также сред выполнения скриптов, встроенных в другие расширения (как в AdGuard), довольно разнообразна. Да, все они служат одной цели, но их внутренние реализации могут существенно отличаться. В основе их работы лежит концепция песочницы - изолированной среды, которая создается из соображений безопасности, чтобы пользовательский скрипт не мог бесконтрольно хозяйничать на странице, например, похищая личные данные. Но строгость этой песочницы и набор инструментов, которые предоставляются скрипту для общения с внешним миром, сильно варьируются. Хотя все они стремятся следовать общему стандарту Greasemonkey API, их реализации отличаются. Tampermonkey, на сегодняшний день, является наиболее функционально полным и стабильным менеджером, который реализует даже самые специфические, но ставшие стандартом де-факто в сообществе, возможности API, такие как unsafeWindow и гибкое управление кросс-доменными запросами.

Другие менеджеры зачастую являются форками (ответвлениями) более старых версий или независимыми разработками, которые догоняют “золотой стандарт” по функциональности с разной скоростью. Иногда это приводит к тому, что в них отсутствуют определённые функции.

Например, некоторое время назад была проблема с работой другого моего скрипта в OrangeMonkey (который использовал наш главадмин SerGEAnt). Она была связана с тем, как расширение обрабатывало разрешения на кросс-доменные запросы и взаимодействие с веб-редактором CKEDITOR, который используется на многих форумах на движке Invasion Board. Скрипту требовался доступ к API редактора, но OrangeMonkey не предоставлял необходимого моста для выхода из “песочницы”, что приводило к ошибке. В то же время в Tampermonkey этой проблемы уже не было, так как его разработчики реализовали более продвинутые механизмы взаимодействия с контекстом страницы. Это классический пример рассинхронизации в разработке, где одно расширение уже адаптировалось под новые веб-технологии, а другое - ещё нет.

AdGuard, конечно, довольно мощнейший инструмент для блокировки контента и защита приватности, но выполнение пользовательских скриптов является его вторичной, хоть и очень полезной, функцией. Поэтому вполне объяснимо, что его песочница может быть более строгой, а среда выполнения не предоставляет некоторые узкоспециализированные, но критически важные для сложных скриптов API, такие как unsafeWindow. Это не столько недостаток, сколько фундаментальное различие в философии разработки: приоритет отдается максимальной безопасности, иногда в ущерб расширенной функциональности пользовательских скриптов.


Теперь давайте пройдёмся по результатам.

1 час назад, blazer404 сказал:

Доступность подарков (список желаемого) — не работает

  • лупа есть
  • Ошибка при сборе данных: Не удалось извлечь AppID …
  • в консоли Minified React error #418, но это как я понимаю ошибка стима

Это как раз то, о чём я писал в предыдущем сообщении. Во время разработки скрипт все еще мог получить список игр из window, но где-то с полторы недели назад Valve немного изменила свой фронтенд. Они всё активнее используют современные фреймворки, которые строят страницу динамически, а данные хранят внутри своей инкапсулированной экосистемы (состояние компонентов). Раньше переменные могли просто объявляться в глобальной области видимости, теперь же они "живут" внутри фреймворка, и доступ к ним снаружи затруднен. В какой-то момент массив с ID игр из списка желаемого (g_rgWishlistData), который раньше был легко доступен, стал инициализироваться таким образом, что его можно прочитать только через прямой доступ к JavaScript-контексту самой страницы.

Именно для этого понадобился unsafeWindow. Он как ключ, который позволяет скрипту, работающему в изолированной песочнице, дотянуться до переменных на основной странице. Костыль (var unsafeWindow = window;) - это хороший фикс для предотвращения падения скрипта от ReferenceError, но он лишь создаёт псевдоним для window песочницы, в которой g_rgWishlistData по-прежнему не существует. AdGuard не предоставляет этот ключ, поэтому скрипт не может найти ID и сообщает об ошибке.

1 час назад, blazer404 сказал:

Время друзей / Глобальные достижения — частично (не работает время друзей — всегда не играли)

Доступность подарков (список желаемого) — не работает

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

Для работы этих модулей необходима авторизация. Её отсутствие или изоляция приводят к неработоспособности:

  • Наблюдатель: Его основная задача - отслеживать изменения в вашем списке желаемого и библиотеке. Для этого скрипт обращается к эндпоинту Steam /dynamicstore/userdata/:
    https://store.steampowered.com/dynamicstore/userdata/
    Когда вы авторизованы, сервер Steam отдает специальный JSON-файл, содержащий ID ваших игр из rgWishlist, rgOwnedApps и т.д. (в этом JSON также содержатся ваши настройки персонализации магазина, но нет и не может быть логина, хэша пароля, платёжной информации или токенов аутентификации). Скрипт использует эти ID, чтобы затем сделать отдельные, публичные запросы к API Steam и получить информацию по каждой конкретной игре. Когда скрипт через GM_xmlhttpRequest делает запрос к /userdata/, этот запрос должен содержать ваши аутентификационные данные. Если среда выполнения (AdGuard) не передает их, для сервера Steam этот запрос выглядит как анонимный, и он возвращает пустой ответ. Таким образом, у модуля просто нет исходных данных для работы - он не знает, за какими играми ему нужно следить, и его панель остается пустой.
  • Время друзей: Механизм абсолютно такой же. Чтобы показать, сколько времени ваши друзья провели в игре, скрипт должен сначала узнать, кто ваши друзья. Эта информация находится на персонализированной странице сообщества Steam (friendsthatplay), например:
    https://steamcommunity.com/my/friendsthatplay/1245620
    она генерируется сервером динамически, специально для вашего аккаунта. Для анонимного пользователя или для скрипта, работающего в изолированной сессии без доступа к актуальным данным, такой страницы не существует - Steam просто не вернет нужные данные. Соответственно, без доступа к этой странице скрипт не может извлечь имена друзей и их наигранные часы и делает логичный вывод - “друзья не играли”.
  • Фильтр “Только ваши DLC”: Этот фильтр в каталоге поиска полностью зависит от вашей личной библиотеки. Его механизм прост: при отображении каждого товара скрипт проверяет, является ли он дополнением (DLC). Если да, он определяет ID основной игры (parent_appid) и ищет его в вашем списке rgOwnedApps, полученном из того же /userdata/. Если вы не авторизованы или сессия недоступна, список rgOwnedApps пуст, и фильтр просто не сможет найти ни одного подходящего DLC.
  • Помощники подарков (Gift Helpers): И на странице игры, и в списке желаемого, для корректной работы им необходима точка отсчета - цена и валюта в вашем регионе. Эту информацию Steam предоставляет пользователю через переменные g_strCountryCode и g_rgWalletInfo. Без них скрипт не может запросить локальную цену и выполнить правильную конвертацию для сравнения с ценой друга. Тем не менее, как вы и заметили, помощник на странице игры у вас сработал. Это связано с наличием в этом модуле специального костыля: если скрипт не может определить данные текущего пользователя, он по умолчанию использует данные для российского региона в качестве базовых. Это позволяет функции работать, но сравнение цен может быть неточным, если вы на самом деле находитесь в другом регионе. Для помощника в списке желаемого этот костыль уже не помогает, так как тот модуль при попытке получить ID игр со страницы.

Вот как-то так.

Изменено пользователем 0wn3df1x

Поделиться сообщением


Ссылка на сообщение
13 минут назад, 0wn3df1x сказал:

Вот как-то так.

Спасибо за развернутый ответ. Поживу тогда с костылем. Того, что работает мне с головой хватает
В любом случае благодарю за вашу работу. Скрипт шикарный. )

Поделиться сообщением


Ссылка на сообщение

Все-таки решил поковырять скрипт. В документации API AG указано, что они поддерживают методы GM.

Скрытый текст

 

https://adguard.com/kb/ru/general/extensions/#поддерживаемые-функции-gm

  • GM.info, GM_info
  • GM.setValue, GM_setValue
  • GM.getValue, GM_getValue
  • GM.listValues, GM_listValues
  • GM.deleteValue, GM_deleteValue
  • GM.getResourceUrl, GM_getResourceURL
  • GM.setClipboard, GM_setClipboard
  • GM.xmlHttpRequest, GM_xmlhttpRequest
  • GM.openInTab, GM_openInTab
  • GM.notification
  • unsafeWindow
  • GM_getResourceText
  • GM_addStyle
  • GM_log
  • GM.addElement, GM_addElement

 

 

 Добавил разрешение
// @grant        unsafeWindow

Скрытый текст

fix.png 

 

Что произошло

  • Проблема с крашами прекратилась (присвоение window к unsafeWindow более не нужно)
  • Полностью заработал сбор данных в вишлисте
Скрытый текст

wishlist-data.png

  • не работают «Наблюдатель» и «Время друзей», но тут уже без проброса авторизации ничего не сделать

Поделиться сообщением


Ссылка на сообщение
В 19.06.2025 в 21:49, 0wn3df1x сказал:

В конце адресной строки пишется /?cc=us

Можете пожалуйста добавить в ваше расширение этот скрипт, чтобы больше никогда не видеть "Ой, извините", т.к. даже переадресация на Центр сообщества намного лучше, чем это бесполезное "Ой, извините".

P.S. Возможно ли во всём расширении или хотя бы только в Агрегаторе цен сделать конвертацию рублей в CIS - U.S. Dollar, как это сделано в расширении SteamDB или на сайте hot.game. Просто в СНГ регионе намного удобнее видеть все цены в долларах, чем в рублях.

Поделиться сообщением


Ссылка на сообщение
4 часа назад, 1052 сказал:

Можете пожалуйста добавить в ваше расширение этот скрипт, чтобы больше никогда не видеть "Ой, извините", т.к. даже переадресация на Центр сообщества намного лучше, чем это бесполезное "Ой, извините".

У меня есть идея получше. Вернусь с ней позже.

Поделиться сообщением


Ссылка на сообщение
On 6/21/2025 at 5:07 PM, blazer404 said:

 Добавил разрешение
// @grant        unsafeWindow

  1. Сделано.
16 hours ago, 1052 said:

P.S. Возможно ли во всём расширении или хотя бы только в Агрегаторе цен сделать конвертацию рублей в CIS - U.S. Dollar, как это сделано в расширении SteamDB или на сайте hot.game. Просто в СНГ регионе намного удобнее видеть все цены в долларах, чем в рублях.

  1. В агрегатор цен добавлена возможность переключаться на USD. В анализаторе цен такая функция уже была. В помощнике подарков используется валюта региона пользователя - если он в СНГ, то у него должны быть доллары.
16 hours ago, 1052 said:

Можете пожалуйста добавить в ваше расширение этот скрипт, чтобы больше никогда не видеть "Ой, извините", т.к. даже переадресация на Центр сообщества намного лучше, чем это бесполезное "Ой, извините".

On 6/20/2025 at 4:49 PM, St@SoN.ru said:

Ох тыж мама моя дорогая, да вы просто боженька, открыли для меня Америку просто с этой припиской

“/?cc=us”. Спасибо!!!

PS

достаточно выйти из аккаутна стим в родном браузере и все будет работать

On 6/20/2025 at 12:38 AM, shingo3 said:

Блин. Я даже не знал об этом. Зачетно и очень информативно. Лаконичный интерфейс, и подробная информация уже сверху.

Одно плохо, если игры заблочены в нашей необъятной, то и нет никакой информации, естественно. Ведь она работает только на главном экране продукта.

  1. Был придуман более изощрённый способ. Этому способу посвящено обновление 2.1.0.
  • Спасибо (+1) 1

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: 0wn3df1x

      В Steam началась летняя распродажа, а это значит, что тысячи игр получили скидки. Для многих опытных покупателей главным инструментом в поиске лучших предложений уже давно является раздел Sales на сайте SteamDB.
      Он по праву считается незаменимым, ведь позволяет отсеивать игры по рейтингу, количеству отзывов, меткам, возможностям и десяткам других параметров, помогая отделить зерна от плевел.
      И все же, даже у такого мощного инструмента есть свои ограничения.
      В Steam началась летняя распродажа, а это значит, что тысячи игр получили скидки. Для многих опытных покупателей главным инструментом в поиске лучших предложений уже давно является раздел Sales на сайте SteamDB.
      Он по праву считается незаменимым, ведь позволяет отсеивать игры по рейтингу, количеству отзывов, меткам, возможностям и десяткам других параметров, помогая отделить зерна от плевел.
      И все же, даже у такого мощного инструмента есть свои ограничения, которые особенно заметны в текущих реалиях. Мы считаем, что стандартному функционалу SteamDB не хватает ряда полезных функций, которые были бы полезны российским и русскоязычным пользователям. Именно для решения этих проблем мы и создали наш новый скрипт.
      Представляем SteamDB - Sales; Ultimate Enhancer.
      Чего не хватает на SteamDB?
      1. Проблема сортировки по дате начала распродажи и цене одновременно
      В данный момент единственный способ узнать, является ли игра частью актуальной распродажи — это отсортировать её по дате начала скидки (колонка "Started"). Однако включение этой сортировки лишает вас возможности сортировать игры по цене или проценту скидки, что крайне неудобно. Наш скрипт решает эту проблему, добавляя отдельный фильтр по дате, который позволяет отсечь все игры, скидки на которые появились ДО начала распродажи, сохраняя при этом возможность любой другой сортировки.
      2. Отсутствие фильтра по русскому языку
      На удивление, на SteamDB до сих пор не существует фильтра, который позволил бы отсеять игры с русским переводом или озвучкой. Приходится проверять каждую игру вручную. Мы это исправили, добавив полноценный фильтр по наличию русского языка, который позволяет оставить в списке только игры с текстовым переводом или даже с полной русской озвучкой.
      3. Анализ региональных цен (РРЦ)
      Важной частью экосистемы Steam являются рекомендуемые региональные цены. В 2022-м Valve, учитывая все кризисные события в мире, подняла планку для всех стран. Наш скрипт добавляет возможность фильтровать игры по соответствию российским рекомендуемым региональным ценами. Вы сможете мгновенно отфильтровать игры, которые продаются ниже, выше или в соответствии с рекомендованной ценой для вашего региона, и даже увидеть точную разницу в процентах и рублях.
      4. Несовершенство фильтров по историческому минимуму
      Стандартные фильтры SteamDB («исторический минимум» (historical lows), «повтор минимума» (matching lows) хороши, но после массового поднятия цен в 2022 году они формируют нереалистичные ожидания. Поскольку издатели и разработчики скорректировали базовые цены, часть игр с крайне низкой вероятностью смогут достигнуть своего прежнего абсолютного минимума. В результате игра с щедрой скидкой в 90% рискует никогда не пробить исторический минимум, достигнутый при скидке в какие-нибудь 50% до 2022-го года, даже если итоговая разница в ценах будет всего на пару рублей выше прежнего рекорда. В связи с этим мы решили добавить процентные фильтры. Теперь вы можете сравнивать не только абсолютные цифры, но и процент скидки с лучшим историческим процентом. Если новая скидка в 90% выгоднее исторической в 60%, наш скрипт подсветит её синим цветом как лучшее предложение, даже если оно не бьет старый рекорд цены.
      5. Работа с недоступными в регионе играми
      Часть пользователей хочет знать, какие игры недоступны в их регионе и сколько они стоят у друзей за рубежом. Наш скрипт позволяет сохранять списки игр из разных регионов и сравнивать их, чтобы легко находить уникальные для каждой страны предложения, например, для покупки подарком.
      Все эти исправления доступны в нашем скрипте. Подробности читайте ниже.
    • Автор: SerGEAnt

      В Steam стартовала раздача копательного платформера SteamWorld Dig.
      Акция продлится еще 3 дня.



Zone of Games © 2003–2025 | Реклама на сайте.

×