Глубокие ссылки

Используйте глубокие ссылки throne:// для добавления подписок и импорта профилей маршрутизации одним щелчком.

Throne регистрирует в вашей операционной системе собственную URL-схему throne://. Глубокая ссылка — это просто URL вида throne://, который указывает запущенному (или ещё не запущенному) экземпляру Throne выполнить действие — например, добавить подписку или импортировать профиль маршрутизации — без необходимости вручную вводить значения в диалоговых окнах.

Это удобно для сайтов провайдеров, страниц поддержки, QR-кодов, скриптов или просто для того, чтобы поделиться профилем маршрутизации с другом.

Каждая глубокая ссылка запрашивает подтверждение, прежде чем что-либо будет сохранено. Throne показывает, что именно будет добавлено, и ждёт вашего согласия, поэтому открытие ссылки никогда не сможет незаметно изменить вашу конфигурацию.

Как Throne получает глубокую ссылку

Схема throne:// регистрируется автоматически при первом запуске Throne в Windows, Linux и macOS. Поскольку Throne поставляется в виде переносимого архива без установщика, регистрация выполняется при запуске, не требует прав администратора и восстанавливается автоматически, если вы переместите или обновите папку приложения.

После регистрации Throne принимает глубокую ссылку из любого из этих источников:

  • Щелчок по ссылке throne:// в браузере, мессенджере или документе — ОС передаёт её в Throne.
  • Вставка ссылки в главное окно с помощью Ctrl+V.
  • Перетаскивание текста ссылки в главное окно.
  • Сервер (Server) → Добавить профиль из буфера обмена (Add profile from clipboard) — считывает ссылку из буфера обмена.
  • Передача в качестве аргумента запуска в командной строке (Windows/Linux).

Если Throne уже открыт, ссылка передаётся существующему окну, а не запускает второй экземпляр.

Справочник команд

Глубокая ссылка имеет вид:

throne://<command>/?<parameters>

Команда не зависит от регистра (throne://AddSub и throne://addsub — одно и то же), а завершающая косая черта перед ? необязательна. В настоящее время Throne поддерживает две команды.

КомандаНазначение
addsubДобавить группу подписки и сразу обновить её
routeИмпортировать профиль маршрутизации

Нераспознанная команда игнорируется и отмечается в журнале.

addsub — Добавление подписки

Добавляет новую группу подписки и сразу же обновляет её.

throne://addsub/?url=<subscription_url>&name=<group_name>&autoupdate=<value>
ПараметрОбязательныйОписание
urlДаURL подписки. Должен быть в URL-кодировке (percent-encoding) — см. примечание ниже. Если он отсутствует, Throne покажет предупреждение и ничего не сделает.
nameНетИмя новой группы. Если не указано, по умолчанию используется хост URL подписки.
autoupdateНетБудет ли группа обновляться автоматически. Значения 1, true, on или yes (без учёта регистра) включают обновление. При отсутствии параметра обновление включено по умолчанию. Любое другое значение отключает его.

Пример

throne://addsub/?url=https%3A%2F%2Fexample.com%2Fsub%2Fabc123&name=My%20Provider&autoupdate=yes

Эта ссылка добавляет группу с именем My Provider для https://example.com/sub/abc123 с включённым автоматическим обновлением. Throne попросит подтверждение:

Добавить эту подписку? Имя: My Provider URL: https://example.com/sub/abc123 Автообновление: Вкл.

После подтверждения группа создаётся, и подписка загружается немедленно.

Всегда кодируйте значение url в URL-формате (percent-encoding). URL подписки содержит такие символы, как :, /, ? и &, которые иначе будут восприняты как часть глубокой ссылки. Например, https://example.com/sub?id=1 превращается в https%3A%2F%2Fexample.com%2Fsub%3Fid%3D1. То же касается пробелов и специальных символов в name (пробел становится %20).

route — Импорт профиля маршрутизации

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

throne://route?data=<base64>
ПараметрОбязательныйОписание
dataДаПрофиль маршрутизации, закодированный в Base64. Рекомендуется URL-безопасный Base64 (с дополнением или без него); стандартный Base64 также принимается.

Как создать ссылку route

Обычно такие ссылки не создают вручную — Throne генерирует их за вас:

  1. Откройте Маршруты (Routes) → Настройки маршрутизации (Routing Settings).
  2. Выберите профиль маршрутизации, которым хотите поделиться.
  3. Нажмите Ctrl+C (или используйте действие экспорта).

Throne скопирует в буфер обмена готовую ссылку throne://route?data=.... Отправьте её кому угодно; когда получатель откроет её (или вставит / воспользуется Добавить профиль из буфера обмена), Throne покажет имя профиля и все примечания, а затем импортирует его после подтверждения.

Что внутри data

Полезная нагрузка Base64 декодируется в небольшую JSON-обёртку, описывающую профиль:

{
  "kind": "throne-route-profile",
  "v": 1,
  "name": "Bypass LAN",
  "default_outbound": "proxy",
  "rules": []
}

Таким образом, приведённая выше ссылка выглядит так (значение data — это Base64 этого JSON):

throne://route?data=eyJraW5kIjoidGhyb25lLXJvdXRlLXByb2ZpbGUiLCJ2IjoxLCJuYW1lIjoiQnlwYXNzIExBTiIsImRlZmF1bHRfb3V0Ym91bmQiOiJwcm94eSIsInJ1bGVzIjpbXX0

Throne также распознаёт эту же полезную нагрузку как обычный JSON или «голый» Base64 при импорте из буфера обмена, поэтому ссылка, скопированная с другого компьютера, работает, даже если по пути потеряет префикс throne://route?data=.

Устранение неполадок

  • Щелчок по ссылке ничего не делает / браузер спрашивает, какое приложение использовать. Запустите Throne один раз, чтобы он зарегистрировал схему, затем повторите попытку. Если вы переместили папку Throne, просто запустите его снова — регистрация восстанавливается при запуске.
  • «Ignored deeplink with unknown command». Часть с командой — не addsub и не route. Проверьте написание слова сразу после throne://.
  • «The link did not contain a subscription URL». В ссылке addsub отсутствует параметр url, или после декодирования его значение оказалось пустым.
  • Подписка импортирует неверный адрес. Значение url не было закодировано в URL-формате, поэтому его часть была обрезана на символе ?, & или #. Закодируйте значение и пересоберите ссылку.