Files

7.4 KiB

Auto Mirror Switcher

Auto Mirror Switcher

Расширение для Chrome, которое переключает недоступное зеркало сайта на рабочий адрес. Путь страницы, параметры запроса и якорь сохраняются.

Версия 1.4.3 · Manifest V3 · русский и английский интерфейс

Установить из Chrome Web Store · Скачать ZIP из релиза · English documentation

Возможности

  • Правила для зеркал с номерами, буквами или готовым списком адресов.
  • Обнаружение ошибок навигации, заданных HTTP-ошибок и страниц блокировки.
  • Режим probe: проверка кандидатов в фоне с выбором работающего зеркала.
  • Режим step: переход к следующему адресу при ошибке загрузки.
  • Запоминание последнего работающего зеркала.
  • Импорт и экспорт настроек, локальный журнал диагностики.
  • Автоматический выбор русского или английского языка.
  • Страница остановки с информацией о проверенных адресах, когда подходящего зеркала нет.

Например, https://mirror1.example.com/page?id=42#comments может стать https://mirror2.example.com/page?id=42#comments: меняется адрес зеркала, контекст страницы сохраняется.

Установка

Рекомендуемый способ — Chrome Web Store; обновления доставляет браузер.

Для ручной установки:

  1. Скачайте auto-mirror-switcher-1.4.3-chrome-web-store.zip из релиза 1.4.3.
  2. Распакуйте архив в постоянную папку.
  3. Откройте chrome://extensions, включите режим разработчика и нажмите «Загрузить распакованное расширение».
  4. Выберите папку, в которой находится manifest.json.
  5. Нажмите на значок расширения, чтобы открыть настройки.

При ручной установке новую версию нужно распаковать самостоятельно и обновить расширение на странице chrome://extensions.

Настройка

Включите расширение, создайте или выберите правило и задайте адреса зеркал. Для готового списка достаточно перечислить хосты; для шаблонов с номерами или буквами задайте фильтр хоста и диапазон перебора. Нажмите «Применить к правилу», затем «Сохранить». При включённом автосохранении изменения сохраняются автоматически.

Пример числового правила:

hostRegex: ^mirror\d+\.example\.com$
template: mirror{n}.example.com
strategy: number
numberStart: 1
numberEnd: 100

Для неизвестного сайта расширение не создаёт зеркала самостоятельно: подходящие адреса и правила задаются в настройках. Оно использует обычные HTTP(S)-запросы и переходы браузера; работа выбранных зеркал зависит от самих сайтов и сети.

Данные и разрешения

Правила, настройки, кэш работающих хостов и диагностические записи хранятся в браузере. В журнале могут быть URL страниц, названия вкладок, ошибки и адреса переходов. Журнал ограничен последними 1200 записями; очистка и экспорт доступны в настройках.

В коде нет аналитики, аккаунтов и сервера сбора данных. Проверки выполняются по адресам зеркал из правил и могут следовать HTTP-перенаправлениям сайтов. При проверке зеркалу отправляются сохранённые путь и параметры запроса; фоновая проверка использует credentials: omit.

Разрешение Назначение
storage Локальные настройки, кэш и диагностика; состояние текущей работы в хранилище сессии, если оно доступно.
tabs Чтение адреса вкладки и переход на выбранное зеркало.
webNavigation События навигации и ошибки загрузки главной страницы.
webRequest Чтение HTTP-статусов главной страницы для определения ошибок.
Доступ к HTTP(S)-сайтам Пользователь может настроить произвольные зеркала; контентный скрипт проверяет маркеры блокировки на страницах с подходящими правилами.

Подробности — PRIVACY.md.

Релиз 1.4.3

Для правил с готовым списком хостов поле RegExp скрыто и больше не требуется. Список хостов определяет, на каких исходных адресах работает правило. Также версия включает локализацию, исправления ложного определения блокировок и улучшенную диагностику проверок. Полный список — примечания к релизу.

Проверка исходников

Зависимости и сборщик не требуются. Для проверки с установленным Node.js:

node tests/shared.test.js
node --check shared.js
node --check options.js
node --check i18n.js

Содержимое ZIP в релизе совпадает с исходным пакетом 1.4.3 из предоставленной папки. Контрольные суммы опубликованы рядом с архивом. Папка исходного проекта называется auto-mirror-switcher-mv2, однако текущая версия использует Manifest V3.