diff --git a/_panel-docs/help-articles/en/PAGE_RESPONSE_HEADERS.md b/_panel-docs/help-articles/en/PAGE_RESPONSE_HEADERS.md index 621eef7..f6aa55a 100644 --- a/_panel-docs/help-articles/en/PAGE_RESPONSE_HEADERS.md +++ b/_panel-docs/help-articles/en/PAGE_RESPONSE_HEADERS.md @@ -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. diff --git a/_panel-docs/help-articles/fa/PAGE_RESPONSE_HEADERS.md b/_panel-docs/help-articles/fa/PAGE_RESPONSE_HEADERS.md index 3324fa4..3cd8355 100644 --- a/_panel-docs/help-articles/fa/PAGE_RESPONSE_HEADERS.md +++ b/_panel-docs/help-articles/fa/PAGE_RESPONSE_HEADERS.md @@ -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:` استفاده نمی‌کنید، تنها از حروف لاتین بهره بگیرید. diff --git a/_panel-docs/help-articles/ru/PAGE_RESPONSE_HEADERS.md b/_panel-docs/help-articles/ru/PAGE_RESPONSE_HEADERS.md index 0cfa56f..2bf5863 100644 --- a/_panel-docs/help-articles/ru/PAGE_RESPONSE_HEADERS.md +++ b/_panel-docs/help-articles/ru/PAGE_RESPONSE_HEADERS.md @@ -44,4 +44,50 @@ Пример значения: `https://dummy.docs.rw` -Значение по умолчанию: `https://dummy.docs.rw` \ No newline at end of file +Значение по умолчанию: `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:` не используется, ограничьтесь латиницей. diff --git a/_panel-docs/help-articles/zh/PAGE_RESPONSE_HEADERS.md b/_panel-docs/help-articles/zh/PAGE_RESPONSE_HEADERS.md index e332b49..bee8012 100644 --- a/_panel-docs/help-articles/zh/PAGE_RESPONSE_HEADERS.md +++ b/_panel-docs/help-articles/zh/PAGE_RESPONSE_HEADERS.md @@ -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:`,请仅使用拉丁字符。