diff --git a/.kodarules b/.kodarules
index 9eecc2d..c5e194a 100644
--- a/.kodarules
+++ b/.kodarules
@@ -23,3 +23,10 @@
- При изменениях структуры проекта и только при корректной сборке (без предупреждений и ошибок) всегда актуализируй `./AGENTS.md`
- При доработке или расширении функционала этого проекта или синтаксиса всегда актуализируй скилл `./.agents/skills/koda-zensical`
+- Аргументы `iptvc` должны быть в lower-kebab-case с префиксом `--` (`--playlists-all-cooldown`)
+- Параметры конфига `iptvc`, состоящие из нескольких слов, должны быть в camelCase (check.playlists.allCooldown)
+- Переменные окружения `iptvc` должны быть в UPPER_SNAKE_CASE (`CHECK_PLAYLISTS_ALL_COOLDOWN`)
+- Заголовки документации и шорткоды `` должны содержать описываемые сущности как есть
+- ID заголовоков должны быть в lower-kebab-case, точки и `_` заменяются на `-` (## `check.playlists.all-cooldown` { id=check-playlists-all-cooldown })
+- Обязательно используй шорткоды `` для ссылок на документацию параметров конфига
+
diff --git a/content/aggregator/faq.md b/content/aggregator/faq.md
index 19b0792..b3e570c 100644
--- a/content/aggregator/faq.md
+++ b/content/aggregator/faq.md
@@ -46,8 +46,8 @@ tags: ["сайт", "каналы", "плейлисты", "epg", "плееры",
## Откуда берутся логотипы каналов и программы передач?
-Всё это (не) [указывается](../ref/formats/m3u.md#tvg-logo) внутри плейлиста его авторами.
-Но в некоторых [плеерах](../ref/players.md) можно вручную указывать программу передач (см. ниже).
+Всё это (не) [указывается](../reference/formats/m3u.md#tvg-logo) внутри плейлиста его авторами.
+Но в некоторых [плеерах](../reference/players.md) можно вручную указывать программу передач (см. ниже).
## У канала нет логотипа!
@@ -55,7 +55,7 @@ tags: ["сайт", "каналы", "плейлисты", "epg", "плееры",
## У **канала** нет программы передач (EPG), что делать?
-Фига в том, что EPG может быть и [указан](../ref/formats/m3u.md#url-tvg) в плейлисте, но у конкретного канала могут быть указаны некорректные [`tvg-id`](../ref/formats/m3u.md#tvg-id) или [`tvg-name`](../ref/formats/m3u.md#tvg-name).
+Фига в том, что EPG может быть и [указан](../reference/formats/m3u.md#url-tvg) в плейлисте, но у конкретного канала могут быть указаны некорректные [`tvg-id`](../reference/formats/m3u.md#tvg-id) или [`tvg-name`](../reference/formats/m3u.md#tvg-name).
Может, его дёрнули из другого листа и не подогнали под другую EPG.
Так что вариантов масса:
@@ -74,17 +74,17 @@ tags: ["сайт", "каналы", "плейлисты", "epg", "плееры",
* не все плееры вообще поддерживают работу с телепрограммой;
* в плейлисте она просто может не быть указана.
-Но если [плеер](../ref/players.md) позволяет, можно указать ссылку на сторонную телепрограмму.
+Но если [плеер](../reference/players.md) позволяет, можно указать ссылку на сторонную телепрограмму.
И это целое дело.
-Надо чтобы совпадали [`tvg-id`](../ref/formats/m3u.md#tvg-id) или [`tvg-name`](../ref/formats/m3u.md#tvg-name) каналов с теми, которые указываются в EPG.
+Надо чтобы совпадали [`tvg-id`](../reference/formats/m3u.md#tvg-id) или [`tvg-name`](../reference/formats/m3u.md#tvg-name) каналов с теми, которые указываются в EPG.
Так что не всякая телепрограмма подойдёт, не ко всякому плейлисту и не ко всем каналам.
Надо подбирать и то, и то.
## А где взять программу передач (EPG)? { id="epg" }
1. Из самого плейлиста.
- Часто в атрибут [`url-tvg`](../ref/formats/m3u.md#url-tvg) тега `#EXTM3U` указывают одну или две ссылки на EPG, разделяя их `;`.
+ Часто в атрибут [`url-tvg`](../reference/formats/m3u.md#url-tvg) тега `#EXTM3U` указывают одну или две ссылки на EPG, разделяя их `;`.
Их можно использовать отдельно, например, если плеер не может корректно обработать такое значение.
2. Взять одну из этих ссылок:
@@ -133,7 +133,7 @@ tags: ["сайт", "каналы", "плейлисты", "epg", "плееры",
Но вообще, это зависит от:
* автора плейлиста (дохлые каналы почти всегда есть даже в свежайших листах, но если лист не обновлялся год, что ты вряд-ли узнаешь, то рабочих каналов там не ищи);
-* твоего [плеера](../ref/players.md) (видеотрансляции могут использовать кодек, который просто не поддерживается плеером);
+* твоего [плеера](../reference/players.md) (видеотрансляции могут использовать кодек, который просто не поддерживается плеером);
* ширины твоего интернет-канала (не надо пытаться врубать FHD/4K трансляции с мобильного интернета на самом дешёвом тарифе в лесу);
* ретроградности Меркурия и магнитных бурь (а вдруг);
* настроек твоей сети, твоего интернет-провайдера, VPN (подумай хорошенько, хочешь ли ты смотреть российские каналы из РФ через Уганду или США);
@@ -190,7 +190,7 @@ tags: ["сайт", "каналы", "плейлисты", "epg", "плееры",
Например, ты на своём компе:
* открываешь любой текстовый редактор;
-* оформляешь текст в формате [m3u](../ref/formats/m3u.md);
+* оформляешь текст в формате [m3u](../reference/formats/m3u.md);
* сохраняешь в файл `pls.m3u`.
Получился плейлист `pls.m3u`.
@@ -251,7 +251,7 @@ tags: ["сайт", "каналы", "плейлисты", "epg", "плееры",
Нет, и не планируется.
-Ищи [плеер](../ref/players.md) и добавляй плейлист туда по ссылке.
+Ищи [плеер](../reference/players.md) и добавляй плейлист туда по ссылке.
## На канале отображается заглушка { id="заглушка" }
@@ -308,7 +308,7 @@ tags: ["сайт", "каналы", "плейлисты", "epg", "плееры",
**Решение 3:** если IP не российский, то сделать его российским (любыми способами).
-**Решение 4:** использовать [плеер](../ref/players.md), который позволяет указать **User-Agent**, и вставить туда какой-нибудь из этих:
+**Решение 4:** использовать [плеер](../reference/players.md), который позволяет указать **User-Agent**, и вставить туда какой-нибудь из этих:
```
Mozilla/5.0 WINK/1.28.2 (AndroidTV/9) HlsWinkPlayer
diff --git a/content/common/index.md b/content/common/index.md
index fee5965..023be2d 100644
--- a/content/common/index.md
+++ b/content/common/index.md
@@ -12,5 +12,5 @@ hide: [toc]
- [:fontawesome-solid-list-check: Список плейлистов](../iptvc/site/list.md)
- [:material-table-eye: Страница плейлиста](../iptvc/site/details.md)
- [:material-television-play: Как подключить плейлист](../iptvc/site/connect.md)
-- [:material-multimedia: IPTV плееры](../ref/players.md)
+- [:material-multimedia: IPTV плееры](../reference/players.md)
diff --git a/content/index.md b/content/index.md
index 34c93eb..b4e8381 100644
--- a/content/index.md
+++ b/content/index.md
@@ -50,7 +50,7 @@ hero:
Полное описание `config.yml`, переменных окружения и CLI-флагов
- [Подробнее :octicons-arrow-right-24:](ref/config.md){ .md-button .md-button--primary }
+ [Подробнее :octicons-arrow-right-24:](reference/config.md){ .md-button .md-button--primary }
- :material-book-open-page-variant-outline:{ .lg .middle } **Об этой документации**
@@ -58,7 +58,7 @@ hero:
Подборка плееров для всех платформ — найдите и настройте плеер для себя
- [Подробнее :octicons-arrow-right-24:](ref/players.md){ .md-button .md-button--primary }
+ [Подробнее :octicons-arrow-right-24:](reference/players.md){ .md-button .md-button--primary }
- :material-hand-heart:{ .lg .middle } **Поддержка проекта**
diff --git a/content/iptvc/commands/check.md b/content/iptvc/commands/check.md
index f97f7b5..093bb16 100644
--- a/content/iptvc/commands/check.md
+++ b/content/iptvc/commands/check.md
@@ -13,7 +13,7 @@ tags: [iptvc]
## `-i`, `--ini` { id=ini }
-Указывает путь к локальному [ini-файлу](../../ref/formats/playlists.md) с описанием плейлистов.
+Указывает путь к локальному [ini-файлу](../../reference/formats/playlists.md) с описанием плейлистов.
Можно указать только однажды.
@@ -27,7 +27,7 @@ tags: [iptvc]
## `-t`, `--tags` { id=tags }
-Указывает путь к локальному [json-файлу](../../ref/formats/channels.md) с описанием тегов каналов.
+Указывает путь к локальному [json-файлу](../../reference/formats/channels.md) с описанием тегов каналов.
Можно указать только однажды.
@@ -64,7 +64,7 @@ tags: [iptvc]
## `-c`, `--code` { id=code }
-Указывает код плейлиста из файла [playlists.ini](../../ref/formats/playlists.md).
+Указывает код плейлиста из файла [playlists.ini](../../reference/formats/playlists.md).
Можно указать несколько разных.
@@ -104,11 +104,11 @@ tags: [iptvc]
## `--playlists-all-cooldown` { id=playlists-all-cooldown }
-Указывает паузу между полными циклами проверки в секундах. Параметр переопределяет `check.playlists.all-cooldown` из конфигурации.
+Указывает паузу между полными циклами проверки в секундах. Параметр переопределяет `check.playlists.allCooldown` из конфигурации.
-Пауза применяется после завершения полного цикла и перед началом следующего. Внутри цикла этот параметр не используется: для задержки между плейлистами применяется [`check.playlists.one-cooldown`](#playlists-one-cooldown).
+Пауза применяется после завершения полного цикла и перед началом следующего. Внутри цикла этот параметр не используется: для задержки между плейлистами применяется [`check.playlists.oneCooldown`](#playlists-one-cooldown).
-Значение по умолчанию: значение `check.playlists.all-cooldown` из конфигурации, обычно `1800` (30 минут).
+Значение по умолчанию: значение `check.playlists.allCooldown` из конфигурации, обычно `1800` (30 минут).
```shell title="Пример"
# проверить 5 раз с паузой 5 секунд между циклами
@@ -175,7 +175,7 @@ tags: [iptvc]
### `--log-level` { id=log-level }
-Устанавливает уровень логирования. Переопределяет `app.log_level` из `config.yml`.
+Устанавливает уровень логирования. Переопределяет `app.logLevel` из `config.yml`.
Доступные значения: `debug`, `info`, `warn`, `error`.
@@ -209,7 +209,7 @@ tags: [iptvc]
Задержка в секундах после проверки всех плейлистов.
-Переопределяет `check.playlists.all-cooldown` (по умолчанию `1800`).
+Переопределяет `check.playlists.allCooldown` (по умолчанию `1800`).
```shell title="Пример"
./iptvc check -i ~/my.ini --playlists-all-cooldown 10
@@ -219,7 +219,7 @@ tags: [iptvc]
Задержка в секундах после проверки каждого плейлиста.
-Переопределяет `check.playlists.one-cooldown` (по умолчанию `2`).
+Переопределяет `check.playlists.oneCooldown` (по умолчанию `2`).
```shell title="Пример"
./iptvc check -i ~/my.ini --playlists-one-cooldown 2
@@ -229,7 +229,7 @@ tags: [iptvc]
Максимум одновременно проверяемых плейлистов.
-Переопределяет `check.playlists.max-routines` (по умолчанию `1`).
+Переопределяет `check.playlists.maxRoutines` (по умолчанию `1`).
```shell title="Пример"
./iptvc check -i ~/my.ini --playlists-max-routines 10
@@ -239,7 +239,7 @@ tags: [iptvc]
Количество плейлистов на одну процедуру проверки.
-Переопределяет `check.playlists.per-routine` (по умолчанию `1`).
+Переопределяет `check.playlists.perRoutine` (по умолчанию `1`).
```shell title="Пример"
./iptvc check -i ~/my.ini --playlists-per-routine 3
@@ -249,7 +249,7 @@ tags: [iptvc]
User-Agent для HTTP-запросов плейлистов. Можно указать несколько — будет выбран случайный при каждом запросе.
-Переопределяет `check.playlists.user-agent`.
+Переопределяет `check.playlists.userAgent`.
```shell title="Пример"
./iptvc check -i ~/my.ini --playlists-user-agent "Mozilla/5.0" "curl/8.0"
@@ -273,7 +273,7 @@ User-Agent для HTTP-запросов плейлистов. Можно ука
Объём данных в байтах для загрузки от сервера при проверке канала.
-Переопределяет `check.channels.byte-range` (по умолчанию `512`).
+Переопределяет `check.channels.byteRange` (по умолчанию `512`).
```shell title="Пример"
./iptvc check -i ~/my.ini --channels-byte-range 1024
@@ -293,7 +293,7 @@ User-Agent для HTTP-запросов плейлистов. Можно ука
Максимум одновременно проверяемых каналов.
-Переопределяет `check.channels.max-routines` (по умолчанию `50`).
+Переопределяет `check.channels.maxRoutines` (по умолчанию `50`).
```shell title="Пример"
./iptvc check -i ~/my.ini --channels-max-routines 100
@@ -303,7 +303,7 @@ User-Agent для HTTP-запросов плейлистов. Можно ука
Количество каналов на одну процедуру проверки.
-Переопределяет `check.channels.per-routine` (по умолчанию `10`).
+Переопределяет `check.channels.perRoutine` (по умолчанию `10`).
```shell title="Пример"
./iptvc check -i ~/my.ini --channels-per-routine 20
@@ -313,7 +313,7 @@ User-Agent для HTTP-запросов плейлистов. Можно ука
User-Agent для HTTP-запросов каналов. Можно указать несколько — будет выбран случайный при каждом запросе.
-Переопределяет `check.channels.user-agent`.
+Переопределяет `check.channels.userAgent`.
```shell title="Пример"
./iptvc check -i ~/my.ini --channels-user-agent "Mozilla/5.0" "VLC/3.0"
@@ -325,9 +325,9 @@ User-Agent для HTTP-запросов каналов. Можно указат
### `--cache-enabled` { id=cache-enabled }
-Включает кеширование результатов в KeyDB/Redis.
+Включает кеширование результатов.
-Переопределяет `cache.enabled` (по умолчанию `false`).
+Переопределяет `cache.enabled` (по умолчанию `true`).
```shell title="Пример"
./iptvc check -i ~/my.ini --cache-enabled
@@ -335,9 +335,9 @@ User-Agent для HTTP-запросов каналов. Можно указат
### `--cache-host` { id=cache-host }
-Хост KeyDB/Redis.
+Хост кеша.
-Переопределяет `cache.host` (по умолчанию `localhost`).
+Переопределяет `cache.host` (по умолчанию `cache`).
```shell title="Пример"
./iptvc check -i ~/my.ini --cache-enabled --cache-host 192.168.1.10
@@ -345,7 +345,7 @@ User-Agent для HTTP-запросов каналов. Можно указат
### `--cache-port` { id=cache-port }
-Порт KeyDB/Redis.
+Порт кеша.
Переопределяет `cache.port` (по умолчанию `6379`).
@@ -355,7 +355,7 @@ User-Agent для HTTP-запросов каналов. Можно указат
### `--cache-username` { id=cache-username }
-Логин для подключения к KeyDB/Redis.
+Логин для подключения к кешу.
Переопределяет `cache.username`.
@@ -365,7 +365,7 @@ User-Agent для HTTP-запросов каналов. Можно указат
### `--cache-password` { id=cache-password }
-Пароль для подключения к KeyDB/Redis.
+Пароль для подключения к кешу.
Переопределяет `cache.password`.
@@ -375,7 +375,7 @@ User-Agent для HTTP-запросов каналов. Можно указат
### `--cache-db` { id=cache-db }
-Номер базы данных KeyDB/Redis.
+Номер базы данных кеша.
Переопределяет `cache.db` (по умолчанию `0`).
@@ -387,7 +387,7 @@ User-Agent для HTTP-запросов каналов. Можно указат
TTL записей кеша в секундах.
-Переопределяет `cache.ttl` (по умолчанию `30`).
+Переопределяет `cache.ttl` (по умолчанию `3600`).
```shell title="Пример"
./iptvc check -i ~/my.ini --cache-enabled --cache-ttl 3600
diff --git a/content/iptvc/commands/index.md b/content/iptvc/commands/index.md
index bf71864..6bb0bd2 100644
--- a/content/iptvc/commands/index.md
+++ b/content/iptvc/commands/index.md
@@ -18,6 +18,6 @@ hide: [toc]
| ----------------- | ------ | ---------------------------- | ----------------------------------------------------- |
| `--config` | string | — | Путь к файлу конфигурации (по умолчанию `config.yml`) |
| `--debug` | bool | `app.debug` | Включить режим отладки |
-| `--log-level` | string | `app.log_level` | Уровень логирования: `debug`, `info`, `warn`, `error` |
+| `--log-level` | string | `app.logLevel` | Уровень логирования: `debug`, `info`, `warn`, `error` |
| `-v`, `--verbose` | bool | — | Подробное логирование |
diff --git a/content/iptvc/commands/serve.md b/content/iptvc/commands/serve.md
index 07d57cc..28491fe 100644
--- a/content/iptvc/commands/serve.md
+++ b/content/iptvc/commands/serve.md
@@ -53,7 +53,7 @@ iptvc serve --check
### `-i`, `--ini` { id="ini" }
-Путь к локальному [ini-файлу](../../ref/formats/playlists.md) с описанием плейлистов.
+Путь к локальному [ini-файлу](../../reference/formats/playlists.md) с описанием плейлистов.
Значение по умолчанию: `./playlists.ini`
@@ -63,7 +63,7 @@ iptvc serve --check -i ~/my.ini
### `-t`, `--tags` { id="tags" }
-Путь к [json-файлу](../../ref/formats/channels.md) с описанием тегов каналов.
+Путь к [json-файлу](../../reference/formats/channels.md) с описанием тегов каналов.
Значение по умолчанию: `./channels.json`
@@ -73,9 +73,9 @@ iptvc serve --check -t ~/tags.json
### `--playlists-all-cooldown` { id=playlists-all-cooldown }
-Пауза между полными циклами фоновой проверки в секундах. Параметр переопределяет `check.playlists.all-cooldown` из конфигурации.
+Пауза между полными циклами фоновой проверки в секундах. Параметр переопределяет `check.playlists.allCooldown` из конфигурации.
-Значение по умолчанию: значение `check.playlists.all-cooldown` из конфигурации, обычно `1800` (30 минут).
+Значение по умолчанию: значение `check.playlists.allCooldown` из конфигурации, обычно `1800` (30 минут).
```bash
# пауза 2 минуты между циклами
@@ -115,7 +115,9 @@ iptvc serve --config /etc/iptvc/config.yml
### `--debug` { id="debug" }
-Включает режим отладки. Переопределяет `app.debug` из `config.yml` и переменную `APP_DEBUG`.
+Включает режим отладки.
+
+Переопределяет из `config.yml` и переменную `APP_DEBUG`.
```bash
iptvc serve --debug
@@ -123,7 +125,9 @@ iptvc serve --debug
### `--log-level` { id="log-level" }
-Устанавливает уровень логирования. Переопределяет `app.log_level` из `config.yml`.
+Устанавливает уровень логирования.
+
+Переопределяет из `config.yml`.
Доступные значения: `debug`, `info`, `warn`, `error`.
@@ -137,13 +141,13 @@ iptvc serve --log-level debug
## Флаги проверки плейлистов
-Эти флаги переопределяют параметры секции `check.playlists` из `config.yml`. Доступны для команд `check` и `serve`. Имеют смысл только при включённой фоновой проверке (`--check` или `check.start-on-serve: true`).
+Эти флаги переопределяют параметры секции `check.playlists` из `config.yml`. Доступны для команд `check` и `serve`. Имеют смысл только при включённой фоновой проверке (`--check` или `check.startOnServe: true`).
### `--playlists-timeout` { id="playlists-timeout" }
Таймаут HTTP-запроса плейлиста в секундах.
-Переопределяет `check.playlists.timeout` (по умолчанию `10`).
+Переопределяет (по умолчанию `10`).
```bash
iptvc serve --check --playlists-timeout 5
@@ -153,7 +157,7 @@ iptvc serve --check --playlists-timeout 5
Задержка в секундах после проверки всех плейлистов.
-Переопределяет `check.playlists.all-cooldown` (по умолчанию `1800`).
+Переопределяет (по умолчанию `1800`).
```bash
iptvc serve --check --playlists-all-cooldown 10
@@ -163,7 +167,7 @@ iptvc serve --check --playlists-all-cooldown 10
Задержка в секундах после проверки каждого плейлиста.
-Переопределяет `check.playlists.one-cooldown` (по умолчанию `2`).
+Переопределяет (по умолчанию `2`).
```bash
iptvc serve --check --playlists-one-cooldown 2
@@ -173,7 +177,7 @@ iptvc serve --check --playlists-one-cooldown 2
Максимум одновременно проверяемых плейлистов.
-Переопределяет `check.playlists.max-routines` (по умолчанию `1`).
+Переопределяет (по умолчанию `1`).
```bash
iptvc serve --check --playlists-max-routines 10
@@ -183,7 +187,7 @@ iptvc serve --check --playlists-max-routines 10
Количество плейлистов на одну процедуру проверки.
-Переопределяет `check.playlists.per-routine` (по умолчанию `1`).
+Переопределяет (по умолчанию `1`).
```bash
iptvc serve --check --playlists-per-routine 3
@@ -193,7 +197,7 @@ iptvc serve --check --playlists-per-routine 3
User-Agent для HTTP-запросов плейлистов. Можно указать несколько — будет выбран случайный при каждом запросе.
-Переопределяет `check.playlists.user-agent`.
+Переопределяет .
```bash
iptvc serve --check --playlists-user-agent "Mozilla/5.0" "curl/8.0"
@@ -207,7 +211,7 @@ iptvc serve --check --playlists-user-agent "Mozilla/5.0" "curl/8.0"
Таймаут HTTP-запроса канала в секундах.
-Переопределяет `check.channels.timeout` (по умолчанию `10`).
+Переопределяет (по умолчанию `10`).
```bash
iptvc serve --check --channels-timeout 8
@@ -217,7 +221,7 @@ iptvc serve --check --channels-timeout 8
Объём данных в байтах для загрузки от сервера при проверке канала.
-Переопределяет `check.channels.byte-range` (по умолчанию `512`).
+Переопределяет (по умолчанию `512`).
```bash
iptvc serve --check --channels-byte-range 1024
@@ -227,7 +231,7 @@ iptvc serve --check --channels-byte-range 1024
Задержка в секундах после проверки каждого канала.
-Переопределяет `check.channels.cooldown` (по умолчанию `0`).
+Переопределяет (по умолчанию `0`).
```bash
iptvc serve --check --channels-cooldown 1
@@ -237,7 +241,7 @@ iptvc serve --check --channels-cooldown 1
Максимум одновременно проверяемых каналов.
-Переопределяет `check.channels.max-routines` (по умолчанию `50`).
+Переопределяет (по умолчанию `50`).
```bash
iptvc serve --check --channels-max-routines 100
@@ -247,7 +251,7 @@ iptvc serve --check --channels-max-routines 100
Количество каналов на одну процедуру проверки.
-Переопределяет `check.channels.per-routine` (по умолчанию `10`).
+Переопределяет (по умолчанию `10`).
```bash
iptvc serve --check --channels-per-routine 20
@@ -257,7 +261,7 @@ iptvc serve --check --channels-per-routine 20
User-Agent для HTTP-запросов каналов. Можно указать несколько — будет выбран случайный при каждом запросе.
-Переопределяет `check.channels.user-agent`.
+Переопределяет .
```bash
iptvc serve --check --channels-user-agent "Mozilla/5.0" "VLC/3.0"
@@ -269,9 +273,9 @@ iptvc serve --check --channels-user-agent "Mozilla/5.0" "VLC/3.0"
### `--cache-enabled` { id="cache-enabled" }
-Включает кеширование результатов в KeyDB/Redis.
+Включает кеширование результатов redis-совместимым сервисом.
-Переопределяет `cache.enabled` (по умолчанию `false`).
+Переопределяет (по умолчанию `true`).
```bash
iptvc serve --cache-enabled
@@ -279,9 +283,9 @@ iptvc serve --cache-enabled
### `--cache-host` { id="cache-host" }
-Хост KeyDB/Redis.
+Хост сервиса кеша.
-Переопределяет `cache.host` (по умолчанию `localhost`).
+Переопределяет (по умолчанию `cache`).
```bash
iptvc serve --cache-enabled --cache-host 192.168.1.10
@@ -289,9 +293,9 @@ iptvc serve --cache-enabled --cache-host 192.168.1.10
### `--cache-port` { id="cache-port" }
-Порт KeyDB/Redis.
+Порт сервиса кеша.
-Переопределяет `cache.port` (по умолчанию `6379`).
+Переопределяет (по умолчанию `6379`).
```bash
iptvc serve --cache-enabled --cache-port 6380
@@ -299,9 +303,9 @@ iptvc serve --cache-enabled --cache-port 6380
### `--cache-username` { id="cache-username" }
-Логин для подключения к KeyDB/Redis.
+Логин для подключения к сервису кеша.
-Переопределяет `cache.username`.
+Переопределяет .
```bash
iptvc serve --cache-enabled --cache-username myuser
@@ -309,9 +313,9 @@ iptvc serve --cache-enabled --cache-username myuser
### `--cache-password` { id="cache-password" }
-Пароль для подключения к KeyDB/Redis.
+Пароль для подключения к сервису кеша.
-Переопределяет `cache.password`.
+Переопределяет .
```bash
iptvc serve --cache-enabled --cache-password secret
@@ -319,9 +323,9 @@ iptvc serve --cache-enabled --cache-password secret
### `--cache-db` { id="cache-db" }
-Номер базы данных KeyDB/Redis.
+Номер базы данных кеша.
-Переопределяет `cache.db` (по умолчанию `0`).
+Переопределяет (по умолчанию `0`).
```bash
iptvc serve --cache-enabled --cache-db 2
@@ -331,7 +335,7 @@ iptvc serve --cache-enabled --cache-db 2
TTL записей кеша в секундах.
-Переопределяет `cache.ttl` (по умолчанию `30`).
+Переопределяет (по умолчанию `3600`).
```bash
iptvc serve --cache-enabled --cache-ttl 3600
diff --git a/content/iptvc/dev/arch.md b/content/iptvc/dev/arch.md
index 7093e9d..5aaff88 100644
--- a/content/iptvc/dev/arch.md
+++ b/content/iptvc/dev/arch.md
@@ -16,7 +16,7 @@ tags: ["iptvc", "разработка", "архитектура"]
- `github.com/spf13/cobra` — CLI-фреймворк;
- `gopkg.in/yaml.v3` — парсинг `config.yml`;
- `github.com/joho/godotenv` — загрузка `.env`;
-- `github.com/redis/go-redis/v9` — клиент KeyDB/Redis.
+- `github.com/redis/go-redis/v9` — клиент кеша.
## Структура проекта
@@ -46,7 +46,7 @@ iptvc/
│ ├── tagfile/
│ │ └── tagfile.go # чтение channels.json, назначение тегов
│ ├── cache/
-│ │ └── cache.go # подключение к KeyDB/Redis
+│ │ └── cache.go # подключение к кешу
│ ├── logger/
│ │ └── logger.go # настройка логирования
│ ├── utils/
@@ -76,9 +76,9 @@ iptvc/
### `app`
-Глобальный контейнер: `Args` (CLI-флаги), `Config` (конфигурация), `Cache` (Redis-клиент).
+Глобальный контейнер: `Args` (CLI-флаги), `Config` (конфигурация), `Cache` (кеш-клиент).
`Init()` загружает конфигурацию и инициализирует логгер.
-`InitCache()` подключается к KeyDB/Redis, если кеш включён.
+`InitCache()` подключается к кешу, если кеш включён.
### `app.config`
@@ -98,10 +98,10 @@ iptvc/
Содержит логику проверки:
- **`PrepareListsToCheck(files, urls, codes)`** — формирует список плейлистов из файлов, URL и кодов ini-файла.
-- **`CheckPlaylists(lists)`** — параллельная проверка плейлистов (семфор `max-routines`), загрузка, парсинг, вызов `CheckChannels` для каждого.
-- **`CheckChannels(pls)`** — параллельная проверка каналов (семфор `max-routines`), HTTP-запрос с `Range` header.
+- **`CheckPlaylists(lists)`** — параллельная проверка плейлистов (семфор `maxRoutines`), загрузка, парсинг, вызов `CheckChannels` для каждого.
+- **`CheckChannels(pls)`** — параллельная проверка каналов (семфор `maxRoutines`), HTTP-запрос с `Range` header.
- **`OnPlaylistChecked`** — глобальный callback, вызывается после проверки каждого плейлиста. Используется веб-сервером для обновления in-memory кеша.
-- **`cachePlaylist(pls)`** — сохранение результата в Redis (если включён).
+- **`cachePlaylist(pls)`** — сохранение результата в кеш (если включён).
Параметры проверки берутся из `app.Config.Check.Playlists` и `app.Config.Check.Channels`.
@@ -141,7 +141,7 @@ GET /{path...} — все остальные маршру
Catch-all `/{path...}` используется для избежания конфликтов паттернов в Go 1.22 mux.
In-memory кеш (`memCache`) обновляется через `OnPlaylistChecked` callback.
-Это позволяет отображать результаты проверки в реальном времени без ожидания завершения цикла и без Redis.
+Это позволяет отображать результаты проверки в реальном времени без ожидания завершения цикла и без внешнего кеша.
ini-файл кешируется на 30 секунд, кеш сбрасывается при каждом обновлении `memCache`.
@@ -155,16 +155,16 @@ StartBackgroundChecker:
runCheckerOnce()
→ checker.PrepareListsToCheck()
→ checker.CheckPlaylists()
- → for each playlist (parallel, per-routine):
+ → for each playlist (parallel, perRoutine):
→ Download() / ReadFromFs()
→ Parse()
→ CheckChannels()
- → for each channel (parallel, per-routine):
+ → for each channel (parallel, perRoutine):
→ HTTP GET with Range header
→ check status + content type
→ OnPlaylistChecked(pls) → memCache update
- → one-cooldown sleep
- → all-cooldown sleep
+ → oneCooldown sleep
+ → allCooldown sleep
if repeat > 0 && iteration >= repeat: stop
```
@@ -211,7 +211,7 @@ StartBackgroundChecker:
## Конфигурация
-Подробное описание параметров — в разделе [config.yml](../../ref/config.md).
+Подробное описание параметров — в разделе [config.yml](../../reference/config.md).
Приоритет: Defaults < `config.yml` < Env < CLI-флаги.
@@ -235,7 +235,7 @@ SVG-логотипы каналов передаются через `encodeURICo
Два уровня кеша:
-1. **Redis/KeyDB** (опционально) — постоянный кеш результатов проверки. TTL из `cache.ttl`.
-2. **In-memory** (`memCache`) — только при `serve --check`. Обновляется в реальном времени через callback. Не требует Redis.
+1. **Внешний кеш** (опционально) — постоянный кеш результатов проверки. TTL из `cache.ttl`.
+2. **In-memory** (`memCache`) — только при `serve --check`. Обновляется в реальном времени через callback. Не требует внешнего кеша.
-In-memory кеш приоритетнее Redis при отображении в веб-интерфейсе.
+In-memory кеш приоритетнее внешнего кеша при отображении в веб-интерфейсе.
diff --git a/content/iptvc/dev/local-dev.md b/content/iptvc/dev/local-dev.md
index e3b987d..cc05851 100644
--- a/content/iptvc/dev/local-dev.md
+++ b/content/iptvc/dev/local-dev.md
@@ -53,13 +53,13 @@ make release
Для работы `iptvc` нужны два файла рядом с бинарником:
-- `playlists.ini` — список плейлистов. Формат описан в [справочнике форматов](../../ref/formats/playlists.md).
-- `channels.json` — правила тегов каналов. Формат описан в [справочнике форматов](../../ref/formats/channels.md).
-- `config.yml` — конфигурация программы. Описание — в [разделе config.yml](../../ref/config.md).
+- `playlists.ini` — список плейлистов. Формат описан в [справочнике форматов](../../reference/formats/playlists.md).
+- `channels.json` — правила тегов каналов. Формат описан в [справочнике форматов](../../reference/formats/channels.md).
+- `config.yml` — конфигурация программы. Описание — в [разделе config.yml](../../reference/config.md).
## Полное Docker-окружение
-Полная инфраструктура проекта (nginx, KeyDB, checker, docs) развёртывается через Docker.
+Полная инфраструктура проекта (nginx, кеш, checker, docs) развёртывается через Docker.
Подробнее — в разделе [Развёртывание](../site/deploy.md).
diff --git a/content/iptvc/overview.md b/content/iptvc/overview.md
index 6d0c9c2..ca98f03 100644
--- a/content/iptvc/overview.md
+++ b/content/iptvc/overview.md
@@ -49,7 +49,7 @@ hide: [toc]
[start]: quickstart.md "Перейти к разделу"
[site]: site/first-steps.md "Перейти к разделу"
[cli]: commands/index.md "Перейти к разделу"
-[cfg]: ../ref/config.md "Перейти к разделу"
+[cfg]: ../reference/config.md "Перейти к разделу"
@@ -104,7 +104,7 @@ cache:
---
-### `app.debug` { id=app-debug }
+### `app.debug` { id="app-debug" }
@@ -115,7 +115,7 @@ cache:
---
-### `app.log_level` { id=app-log-level }
+### `app.logLevel` { id="app-log-level" }
@@ -126,7 +126,7 @@ cache:
---
-### `app.playlists` { id=app-playlists }
+### `app.playlists` { id="app-playlists" }
@@ -138,7 +138,7 @@ cache:
---
-### `app.tags` { id=app-tags }
+### `app.tags` { id="app-tags" }
@@ -150,9 +150,9 @@ cache:
---
-## Секция `server` { id=server }
+## Секция `server` { id="server" }
-### `server.host` { id=server-host }
+### `server.host` { id="server-host" }
@@ -165,7 +165,7 @@ cache:
---
-### `server.port` { id=server-port }
+### `server.port` { id="server-port" }
@@ -177,11 +177,11 @@ cache:
---
-## Секция `site` { id=site }
+## Секция `site` { id="site" }
Настройки внешнего вида и ссылок сайта: заголовок, навигация, пагинация, иконка.
-### `site.base-url` { id=site-base-url }
+### `site.baseUrl` { id="site-base-url" }
@@ -191,7 +191,7 @@ cache:
---
-### `site.repo-url` { id=site-repo-url }
+### `site.repo-url` { id="site-repo-url" }
@@ -200,7 +200,7 @@ cache:
---
-### `site.page-size` { id=site-page-size }
+### `site.pageSize` { id="site-page-size" }
@@ -210,7 +210,7 @@ cache:
---
-### `site.favicon` { id=site-favicon }
+### `site.favicon` { id="site-favicon" }
@@ -219,7 +219,7 @@ cache:
---
-### `site.meta` { id=site-meta }
+### `site.meta` { id="site-meta" }
Мета-теги `` и `` для HTML-шаблонов.
@@ -230,7 +230,7 @@ cache:
---
-### `site.title` { id=site-title }
+### `site.title` { id="site-title" }
@@ -239,19 +239,19 @@ cache:
---
-### `site.header.menu` { id=site-header-menu }
+### `site.header.menu` { id="site-header-menu" }
Массив элементов [`Link`](#link) в шапке сайта.
---
-### `site.footer.links` { id=site-footer-links }
+### `site.footer.links` { id="site-footer-links" }
Массив элементов [`Link`](#link) в подвале сайта.
---
-### `site.tabs.raw.visible` { id=site-tabs-raw-visible }
+### `site.tabs.raw.visible` { id="site-tabs-raw-visible" }
@@ -259,15 +259,15 @@ cache:
---
-### `site.tabs.legal.visible` { id=site-tabs-legal-visible }
+### `site.tabs.legal.visible` { id="site-tabs-legal-visible" }
-
+
Отображать вкладку «Юридическая информация».
---
-### `site.tabs.legal.text` { id=site-tabs-legal-text }
+### `site.tabs.legal.text` { id="site-tabs-legal-text" }
HTML-контент вкладки «Юридическая информация».
@@ -275,7 +275,7 @@ HTML-контент вкладки «Юридическая информация
---
-### Тип `Link` { id=link }
+### Тип `Link` { id="link" }
Элемент навигации или подвала.
Если задано `children`, рендерится как выпадающее меню.
@@ -329,13 +329,13 @@ site:
---
-## Секция `check` { id=check }
+## Секция `check` { id="check" }
Параметры проверки плейлистов и каналов. Поддерживаются скаляры и массивы.
---
-### `check.start-on-serve` { id=check-start-on-serve }
+### `check.startOnServe` { id="check-start-on-serve" }
@@ -346,13 +346,13 @@ site:
---
-### `check.playlists` { id=check-playlists }
+### `check.playlists` { id="check-playlists" }
Параметры проверки плейлистов (загрузка m3u-файлов по URL или из ФС).
---
-#### `check.playlists.user-agent` { id=check-playlists-user-agent }
+#### `check.playlists.userAgent` { id="check-playlists-user-agent" }
@@ -377,7 +377,7 @@ User-Agent для HTTP-запросов плейлистов.
---
-#### `check.playlists.timeout` { id=check-playlists-timeout }
+#### `check.playlists.timeout` { id="check-playlists-timeout" }
@@ -389,7 +389,7 @@ User-Agent для HTTP-запросов плейлистов.
---
-#### `check.playlists.all-cooldown` { id=check-playlists-all-cooldown }
+#### `check.playlists.allCooldown` { id="check-playlists-all-cooldown" }
@@ -406,7 +406,7 @@ User-Agent для HTTP-запросов плейлистов.
---
-#### `check.playlists.one-cooldown` { id=check-playlists-one-cooldown }
+#### `check.playlists.oneCooldown` { id="check-playlists-one-cooldown" }
@@ -423,7 +423,7 @@ User-Agent для HTTP-запросов плейлистов.
---
-#### `check.playlists.max-routines` { id=check-playlists-max-routines }
+#### `check.playlists.maxRoutines` { id="check-playlists-max-routines" }
@@ -435,7 +435,7 @@ User-Agent для HTTP-запросов плейлистов.
---
-#### `check.playlists.per-routine` { id=check-playlists-per-routine }
+#### `check.playlists.perRoutine` { id="check-playlists-per-routine" }
@@ -447,13 +447,13 @@ User-Agent для HTTP-запросов плейлистов.
---
-### `check.channels` { id=check-channels }
+### `check.channels` { id="check-channels" }
Параметры проверки каналов внутри плейлиста.
---
-#### `check.channels.user-agent` { id=check-channels-user-agent }
+#### `check.channels.userAgent` { id="check-channels-user-agent" }
@@ -478,7 +478,7 @@ User-Agent для HTTP-запроса каждого канала каждого
---
-#### `check.channels.timeout` { id=check-channels-timeout }
+#### `check.channels.timeout` { id="check-channels-timeout" }
@@ -490,7 +490,7 @@ User-Agent для HTTP-запроса каждого канала каждого
---
-#### `check.channels.byte-range` { id=check-channels-byte-range }
+#### `check.channels.byteRange` { id="check-channels-byte-range" }
@@ -506,7 +506,7 @@ User-Agent для HTTP-запроса каждого канала каждого
---
-#### `check.channels.cooldown` { id=check-channels-cooldown }
+#### `check.channels.cooldown` { id="check-channels-cooldown" }
@@ -523,7 +523,7 @@ User-Agent для HTTP-запроса каждого канала каждого
---
-#### `check.channels.max-routines` { id=check-channels-max-routines }
+#### `check.channels.maxRoutines` { id="check-channels-max-routines" }
@@ -535,7 +535,7 @@ User-Agent для HTTP-запроса каждого канала каждого
---
-#### `check.channels.per-routine` { id=check-channels-per-routine }
+#### `check.channels.perRoutine` { id="check-channels-per-routine" }
@@ -547,15 +547,15 @@ User-Agent для HTTP-запроса каждого канала каждого
---
-## Секция `cache` { id=cache }
+## Секция `cache` { id="cache" }
-Параметры подключения к KeyDB/Redis для хранения результатов проверок.
+Параметры подключения к кешу для хранения результатов проверок.
---
-### `cache.enabled` { id=cache-enabled }
+### `cache.enabled` { id="cache-enabled" }
-
+
@@ -565,31 +565,31 @@ User-Agent для HTTP-запроса каждого канала каждого
---
-### `cache.host` { id=cache-host }
+### `cache.host` { id="cache-host" }
-
+
-Хост KeyDB/Redis.
+Хост кеша.
!!! info "Аргумент работает только для команд `check` и `serve --check`."
---
-### `cache.port` { id=cache-port }
+### `cache.port` { id="cache-port" }
-Порт KeyDB/Redis.
+Порт кеша.
!!! info "Аргумент работает только для команд `check` и `serve --check`."
---
-### `cache.username` { id=cache-username }
+### `cache.username` { id="cache-username" }
@@ -601,7 +601,7 @@ User-Agent для HTTP-запроса каждого канала каждого
---
-### `cache.password` { id=cache-password }
+### `cache.password` { id="cache-password" }
@@ -613,21 +613,21 @@ User-Agent для HTTP-запроса каждого канала каждого
---
-### `cache.db` { id=cache-db }
+### `cache.db` { id="cache-db" }
-Номер логической базы данных в KeyDB/Redis.
+Номер логической базы данных в кеше.
!!! info "Аргумент работает только для команд `check` и `serve --check`."
---
-### `cache.ttl` { id=cache-ttl }
+### `cache.ttl` { id="cache-ttl" }
-
+
diff --git a/content/ref/formats/channels.md b/content/reference/formats/channels.md
similarity index 100%
rename from content/ref/formats/channels.md
rename to content/reference/formats/channels.md
diff --git a/content/ref/formats/m3u.md b/content/reference/formats/m3u.md
similarity index 100%
rename from content/ref/formats/m3u.md
rename to content/reference/formats/m3u.md
diff --git a/content/ref/formats/overview.md b/content/reference/formats/overview.md
similarity index 100%
rename from content/ref/formats/overview.md
rename to content/reference/formats/overview.md
diff --git a/content/ref/formats/playlists.md b/content/reference/formats/playlists.md
similarity index 100%
rename from content/ref/formats/playlists.md
rename to content/reference/formats/playlists.md
diff --git a/content/ref/players.md b/content/reference/players.md
similarity index 100%
rename from content/ref/players.md
rename to content/reference/players.md
diff --git a/inline_badges.py b/inline_badges.py
index 9af0945..e0d74ea 100644
--- a/inline_badges.py
+++ b/inline_badges.py
@@ -15,7 +15,7 @@ SHORTCODE_RE = re.compile(r"