Parsers срабатывают в момент окончания загрузки или обновления подписки и преобразуют её содержимое автоматически. В отличие от глобального Mixin, парсер можно нацелить ровно на одну подписку - находка для тех, у кого несколько провайдеров.

Где редактировать

Settings → Parsers → Edit открывает YAML такого вида:

parsers:
  # точное совпадение url подписки
  - url: https://example.com/api/sub?token=abc
    yaml:
      prepend-rules:
        - DOMAIN-SUFFIX,company.com,DIRECT
        - DOMAIN-KEYWORD,tracker,REJECT
      append-proxies:
        - name: "my-backup"
          type: ss
          server: my.server.com
          port: 8388
          cipher: aes-256-gcm
          password: mypass

Шорткаты секции yaml

ДирективаДействие
prepend-rules / append-rulesПравила в начало / конец (начало = высший приоритет).
prepend-proxies / append-proxiesВставка узлов.
prepend-proxy-groups / append-proxy-groupsВставка групп.
mix-proxy-providers / mix-rule-providersСлияние определений провайдеров.
mix-objectПоверхностное слияние любых верхних полей (dns, tun, …).

Режим code: полный контроль

parsers:
  - reg: ^https://example\.com/
    code: |
      module.exports.parse = (raw, { yaml }) => {
        const config = yaml.parse(raw);
        // выкинуть "информационные" узлы-объявления
        config.proxies = config.proxies.filter(
          p => !/expire|remaining|website/i.test(p.name)
        );
        return yaml.stringify(config);
      };

reg матчит адреса подписок регуляркой - один парсер накрывает несколько подписок одного провайдера.

Совет: Parsers правят скачанную копию, а не оригинал на сервере; чтобы откатить - удалите блок парсера и обновите подписку. После правки Parsers запустите обновление подписки вручную, чтобы увидеть эффект.