docs: enhance PAGE_RESPONSE_HEADERS documentation

This commit is contained in:
kastov 2026-08-04 02:09:39 +03:00
parent ba2e206352
commit 68b9e6ef80
No known key found for this signature in database
GPG key ID: 1B27BE29057F4C90
4 changed files with 185 additions and 1 deletions

View file

@ -45,3 +45,49 @@ Key: `support-url`
Example value: `https://dummy.docs.rw`
Default value: `https://dummy.docs.rw`
## Variables in header values
Any header value can contain template variables — for example `{{USERNAME}}` or `{{SUBSCRIPTION_URL}}`. They are replaced with the user's data before the response is sent.
### The `{{STATUS}}` variable
Inserts the user's subscription status.
| Status | Default value |
| ---------- | ------------- |
| `ACTIVE` | `Active` |
| `EXPIRED` | `Expired` |
| `LIMITED` | `Limited` |
| `DISABLED` | `Disabled` |
Example value: `rwEncodeBase64:Your subscription: {{STATUS}}`
### The `{{RESET_STRATEGY}}` variable
Inserts the traffic reset strategy. By default the value itself is printed: `NO_RESET`, `DAY`, `WEEK`, `MONTH` or `MONTH_ROLLING`.
Example value: `rwEncodeBase64:Reset: {{RESET_STRATEGY}}`
### Custom labels
Labels can be overridden right in the header value by listing `VALUE=label` pairs separated by `|`. Overriding is supported by `{{STATUS}}` and `{{RESET_STRATEGY}}`.
Example value: `rwEncodeBase64:Your subscription is {{STATUS:ACTIVE=✅ Active|EXPIRED=😓 Expired}}`
Result for an active user: `Your subscription is ✅ Active`
Example value: `rwEncodeBase64:Reset: {{RESET_STRATEGY:NO_RESET=never|MONTH=once a month}}`
Result for a monthly reset: `Reset: once a month`
Rules:
- Pairs are separated by `|`.
- A value is split from its label at the first `=`, and the variable name at the first colon. That means both `=` and `:` are allowed inside a label: `{{STATUS:ACTIVE=Status: active}}`.
- Whitespace inside a label is preserved as is, including a leading space.
- Listing every value is optional — the ones you omit keep their default label.
- An unknown value (a typo such as `ACTIVEE=`) is ignored, and the default label is used.
- The characters `|`, `{` and `}` cannot be used inside a label.
> ⚠️ Emoji, Cyrillic and any other non-ASCII characters are only allowed together with `rwEncodeBase64:`. HTTP headers cannot carry such characters directly, and without encoding the subscription will not be served. Stick to Latin characters if `rwEncodeBase64:` is not used.

View file

@ -45,3 +45,49 @@
مقدار نمونه: `https://dummy.docs.rw`
مقدار پیش‌فرض: `https://dummy.docs.rw`
## متغیرها در مقدار هدرها
در مقدار هر هدری می‌توانید از متغیرهای قالب استفاده کنید، برای نمونه `{{USERNAME}}` یا `{{SUBSCRIPTION_URL}}`. این متغیرها پیش از ارسال پاسخ با داده‌های کاربر جایگزین می‌شوند.
### متغیر `{{STATUS}}`
وضعیت اشتراک کاربر را درج می‌کند.
| وضعیت | مقدار پیش‌فرض |
| ---------- | ------------- |
| `ACTIVE` | `Active` |
| `EXPIRED` | `Expired` |
| `LIMITED` | `Limited` |
| `DISABLED` | `Disabled` |
مقدار نمونه: `rwEncodeBase64:اشتراک شما: {{STATUS}}`
### متغیر `{{RESET_STRATEGY}}`
راهبرد بازنشانی ترافیک را درج می‌کند. به‌صورت پیش‌فرض خود مقدار چاپ می‌شود: `NO_RESET`، `DAY`، `WEEK`، `MONTH` یا `MONTH_ROLLING`.
مقدار نمونه: `rwEncodeBase64:بازنشانی: {{RESET_STRATEGY}}`
### نام‌های دلخواه
نام‌ها را می‌توانید مستقیماً در مقدار هدر بازنویسی کنید؛ کافی است جفت‌های `مقدار=نام` را با `|` از هم جدا کنید. متغیرهای `{{STATUS}}` و `{{RESET_STRATEGY}}` از بازنویسی پشتیبانی می‌کنند.
مقدار نمونه: `rwEncodeBase64:اشتراک شما {{STATUS:ACTIVE=✅ فعال|EXPIRED=😓 منقضی شده}}`
نتیجه برای کاربر فعال: `اشتراک شما ✅ فعال`
مقدار نمونه: `rwEncodeBase64:بازنشانی: {{RESET_STRATEGY:NO_RESET=بدون بازنشانی|MONTH=ماهانه}}`
نتیجه در حالت بازنشانی ماهانه: `بازنشانی: ماهانه`
قواعد:
- جفت‌ها با نویسه `|` از هم جدا می‌شوند.
- مقدار از نام با نخستین `=` و نام متغیر با نخستین دونقطه جدا می‌شود. بنابراین استفاده از `=` و `:` درون نام مجاز است: `{{STATUS:ACTIVE=وضعیت: فعال}}`.
- فاصله‌های درون نام دقیقاً حفظ می‌شوند، از جمله فاصله ابتدایی.
- آوردن همه مقادیر الزامی نیست؛ مقادیری که مشخص نشوند نام پیش‌فرض خود را نگه می‌دارند.
- مقدار ناشناخته (برای نمونه غلط تایپی `ACTIVEE=`) نادیده گرفته می‌شود و نام پیش‌فرض به کار می‌رود.
- نویسه‌های `|`، `{` و `}` را نمی‌توان درون نام به کار برد.
> ⚠️ ایموجی، حروف فارسی و هر نویسه غیر ASCII دیگر تنها همراه با `rwEncodeBase64:` مجاز هستند. هدرهای HTTP نمی‌توانند چنین نویسه‌هایی را مستقیماً منتقل کنند و بدون کدگذاری، اشتراک ارائه نخواهد شد. اگر از `rwEncodeBase64:` استفاده نمی‌کنید، تنها از حروف لاتین بهره بگیرید.

View file

@ -44,4 +44,50 @@
Пример значения: `https://dummy.docs.rw`
Значение по умолчанию: `https://dummy.docs.rw`
Значение по умолчанию: `https://dummy.docs.rw`
## Переменные в значениях хэдеров
В значении любого хэдера можно использовать шаблонные переменные — например `{{USERNAME}}` или `{{SUBSCRIPTION_URL}}`. Перед отправкой ответа они заменяются на данные пользователя.
### Переменная `{{STATUS}}`
Подставляет статус подписки пользователя.
| Статус | Значение по умолчанию |
| ---------- | --------------------- |
| `ACTIVE` | `Active` |
| `EXPIRED` | `Expired` |
| `LIMITED` | `Limited` |
| `DISABLED` | `Disabled` |
Пример значения: `rwEncodeBase64:Ваша подписка: {{STATUS}}`
### Переменная `{{RESET_STRATEGY}}`
Подставляет стратегию сброса трафика. По умолчанию выводится само значение: `NO_RESET`, `DAY`, `WEEK`, `MONTH` или `MONTH_ROLLING`.
Пример значения: `rwEncodeBase64:Сброс: {{RESET_STRATEGY}}`
### Свои названия
Названия можно переопределить прямо в значении хэдера, перечислив пары `ЗНАЧЕНИЕ=название` через `|`. Переопределение поддерживают `{{STATUS}}` и `{{RESET_STRATEGY}}`.
Пример значения: `rwEncodeBase64:Ваша подписка {{STATUS:ACTIVE=✅ Активна|EXPIRED=😓 Истекла}}`
Результат для активного пользователя: `Ваша подписка ✅ Активна`
Пример значения: `rwEncodeBase64:Сброс: {{RESET_STRATEGY:NO_RESET=не сбрасывается|MONTH=раз в месяц}}`
Результат при месячном сбросе: `Сброс: раз в месяц`
Правила:
- Пары разделяются символом `|`.
- Значение от названия отделяет первый знак `=`, а имя переменной — первое двоеточие. Поэтому и `=`, и `:` внутри названия допустимы: `{{STATUS:ACTIVE=Статус: активна}}`.
- Пробелы внутри названия сохраняются как есть, включая ведущий.
- Перечислять все значения необязательно — незаданные останутся со значением по умолчанию.
- Неизвестное значение (например, опечатка `ACTIVEE=`) игнорируется, подставится значение по умолчанию.
- Внутри названия нельзя использовать `|`, `{` и `}`.
> ⚠️ Эмодзи, кириллица и любые другие не-ASCII символы допустимы только вместе с `rwEncodeBase64:`. HTTP-хэдеры не умеют передавать такие символы напрямую, и без кодирования подписка не будет отдана. Если `rwEncodeBase64:` не используется, ограничьтесь латиницей.

View file

@ -45,3 +45,49 @@
示例值: `https://dummy.docs.rw`
默认值: `https://dummy.docs.rw`
## 头部值中的模板变量
任何头部的值都可以使用模板变量,例如 `{{USERNAME}}` 或 `{{SUBSCRIPTION_URL}}`。在发送响应之前,它们会被替换为该用户的数据。
### `{{STATUS}}` 变量
用于插入用户的订阅状态。
| 状态 | 默认值 |
| ---------- | ---------- |
| `ACTIVE` | `Active` |
| `EXPIRED` | `Expired` |
| `LIMITED` | `Limited` |
| `DISABLED` | `Disabled` |
示例值: `rwEncodeBase64:你的订阅: {{STATUS}}`
### `{{RESET_STRATEGY}}` 变量
用于插入流量重置策略。默认输出值本身:`NO_RESET`、`DAY`、`WEEK`、`MONTH` 或 `MONTH_ROLLING`。
示例值: `rwEncodeBase64:重置: {{RESET_STRATEGY}}`
### 自定义名称
可以直接在头部值中覆盖名称,用 `|` 分隔多组 `值=名称`。`{{STATUS}}` 和 `{{RESET_STRATEGY}}` 支持覆盖。
示例值: `rwEncodeBase64:你的订阅 {{STATUS:ACTIVE=✅ 有效|EXPIRED=😓 已过期}}`
对活跃用户的结果: `你的订阅 ✅ 有效`
示例值: `rwEncodeBase64:重置: {{RESET_STRATEGY:NO_RESET=不重置|MONTH=每月一次}}`
按月重置时的结果: `重置: 每月一次`
规则:
- 各组之间用 `|` 分隔。
- 值与名称按第一个 `=` 分隔,变量名按第一个冒号分隔。因此名称中可以包含 `=` 和 `:`:`{{STATUS:ACTIVE=状态: 有效}}`。
- 名称中的空格会原样保留,包括开头的空格。
- 不必列出全部值,未指定的将保留默认名称。
- 未知值(例如拼写错误的 `ACTIVEE=`)会被忽略,并使用默认名称。
- 名称中不能使用 `|`、`{` 和 `}`。
> ⚠️ 表情符号、中文以及其他任何非 ASCII 字符只能与 `rwEncodeBase64:` 一起使用。HTTP 头部无法直接传输这类字符,未经编码将导致订阅无法下发。如果不使用 `rwEncodeBase64:`,请仅使用拉丁字符。