Модули
Chute поддерживает внешние файлы модулей (.sgmodule) для расширения конфигурации с помощью переиспользуемых, общих правил, скриптов, хостов MITM и сопоставлений DNS. Модули следуют формату модулей Surge.
Модули определяются в разделе [Module]:
[Module]
https://example.com/my-module.sgmodule
/path/to/local-module.sgmodule
~/.chute/custom-module.sgmodule
URL загружаются удаленно; пути, начинающиеся с / или ~, загружаются из локальной файловой системы.
Структура файла модуля
Файл .sgmodule следует тому же синтаксису, что и основной файл конфигурации. Поддерживаемые разделы:
| Раздел | Назначение |
|---|---|
[MITM] |
Добавление имен хостов в список расшифровки MITM |
[Script] |
Регистрация скриптов JavaScript |
[URL Rewrite] |
Добавление правил перезаписи URL |
[Header Rewrite] |
Добавление правил перезаписи заголовков |
[Rule] |
Добавление правил маршрутизации |
[Host] |
Добавление сопоставлений DNS хост-IP |
Метаданные модуля
Модули могут включать директивы метаданных (строки, начинающиеся с #!):
#!name = My Custom Module
#!desc = Blocks ads and trackers for example.com
#!system = ios,macos
| Директива | Описание |
|---|---|
#!name |
Имя модуля (отображается в интерфейсе) |
#!desc |
Описание модуля |
#!system |
Фильтр платформы: ios, macos (разделенные запятыми) |
Если указан #!system и текущая платформа не совпадает, модуль молча пропускается.
Пример модуля
#!name = Ad Block Module
#!desc = Block common ad domains
#!system = ios,macos
[Rule]
DOMAIN-SUFFIX,doubleclick.net,REJECT
DOMAIN-SUFFIX,googlesyndication.com,REJECT
DOMAIN-SUFFIX,googleadservices.com,REJECT
[Host]
localhost = 127.0.0.1
[MITM]
hostname = *.google-analytics.com
[URL Rewrite]
^https://example\.com/old-api https://example.com/new-api 302
Жизненный цикл модуля
- Модули загружаются после разбора основной конфигурации.
- Правила, скрипты, хосты MITM и хосты DNS из модулей добавляются в менеджеры времени выполнения.
- Когда модуль удален или отключен, все его правила, скрипты и хосты отменяются.
- Удаленные модули повторно загружаются в соответствии с интервалом обновления управляемой конфигурации основного файла.