diff --git a/mkdocs.yml b/mkdocs.yml index c208fa6..6e78d6a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -116,13 +116,14 @@ nav: - common/players.md - 'IPTV Checker (iptvc)': - iptvc/index.md + - iptvc/install.md - iptvc/quickstart.md - iptvc/env.md - - 'Работа в терминале': - - iptvc/cli/index.md - - iptvc/cli/help.md - - iptvc/cli/check.md - - iptvc/cli/version.md + - 'Доступные команды': + - iptvc/commands/index.md + - iptvc/commands/help.md + - iptvc/commands/check.md + - iptvc/commands/version.md - 'Для разработчиков': - dev/index.md - dev/local-dev.md diff --git a/src/iptvc/cli/check.md b/src/iptvc/cli/check.md deleted file mode 100644 index 69b20ee..0000000 --- a/src/iptvc/cli/check.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -tags: ["iptvc"] ---- - -# Команда `check` - -!!! info "TODO" - Скоро здесь появится полезная информация. - Следи за обновлениями в канале [@iptv_aggregator](https://t.me/iptv_aggregator) или в [репозитории](https://git.axenov.dev/IPTV/docs). diff --git a/src/iptvc/cli/index.md b/src/iptvc/cli/index.md deleted file mode 100644 index df2682f..0000000 --- a/src/iptvc/cli/index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -icon: octicons/terminal-24 -hide: - - toc ---- - -# :octicons-terminal-24: Работа в терминале diff --git a/src/iptvc/cli/version.md b/src/iptvc/cli/version.md deleted file mode 100644 index 67a99d6..0000000 --- a/src/iptvc/cli/version.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -tags: ["iptvc"] ---- - -# Команда `version` - -!!! info "TODO" - Скоро здесь появится полезная информация. - Следи за обновлениями в канале [@iptv_aggregator](https://t.me/iptv_aggregator) или в [репозитории](https://git.axenov.dev/IPTV/docs). diff --git a/src/iptvc/commands/check.md b/src/iptvc/commands/check.md new file mode 100644 index 0000000..0f83dbc --- /dev/null +++ b/src/iptvc/commands/check.md @@ -0,0 +1,151 @@ +--- +tags: ["iptvc"] +--- + +# Команда `check` + +Команда поддерживает множество аргументов для разных целей. + +Они могут дополнять друг друга. + +Порядок аргументов не имеет значения. + + +## `-i`, `--ini` + +Указывает путь к локальному [ini-файлу](../../formats/playlists.md) с описанием плейлистов. + +Можно указать только однажды. + +Значение по умолчанию: `./playlists.ini` + +Если файл не найден, проверка плейлистов будет доступна только по ссылкам ([`--url`](#url)) или из локальных файлов ([`--file`](#file)). + +Пример: + +```bash +iptvc check -i ~/my.ini +``` + + +## `-t`, `--tags` + +Указывает путь к локальному [json-файлу](../../formats/channels.md) с описанием тегов каналов. + +Можно указать только однажды. + +Значение по умолчанию: `./channels.json` + +Если файл не найден, то будет выведено предупреждение о том, что каналы не будут помечены тегами. + +Пример: + +```bash +iptvc check -t ~/tags.json +``` + + +## `-f`, `--file` + +Указывает путь к локальному файлу плейлиста `*.m3u`/`*.m3u8`. + +Можно указать несколько разных. + +Пример: + +```bash +iptvc check -f playlist.m3u +iptvc check -f playlist1.m3u --file playlist2.m3u8 +iptvc check --file /path/to/playlist.m3u +``` + + +## `-u`, `--url` + +Указывает URL удалённого плейлиста (поддерживаются протоколы http/https). + +Можно указать несколько разных. + +Пример: + +```bash +iptvc check -u http://example.com/playlist.m3u +iptvc check -u https://site.com/playlist.m3u8 --url http://other.com/list.m3u +``` + + +## `-c`, `--code` + +Указывает код плейлиста из файла [playlists.ini](../../formats/playlists.md). + +Можно указать несколько разных. + +!!! warning "Работает только вместе с [`--ini`](#ini)." + +Если не указан ни разу, то будут проверены все плейлисты, которые указаны в ini-файле. + +Если используется кеширование, то проверенные плейлисты (результаты проверки которых ещё находятся в кеше) проверяться не будут. + +Пример: + +```bash +iptvc check -c RU_BASIC --code MOVIE_PREMIUM +``` + + +## `-r`, `--random` + +Указывает максимальное количество случайных плейлистов из ini-файла для проверки. + +Можно указать только однажды. + +!!! warning "Работает только вместе с [`--ini`](#ini)." + +Если не указан ни разу, то будут проверены все плейлисты, которые указаны в ini-файле. + +Если используется кеширование, то проверенные плейлисты (результаты проверки которых ещё находятся в кеше) проверяться не будут. + +Пример: + +```bash +iptvc check -i ~/my.ini -r 10 +``` + + +## `-j`, `--json` + +Если указано, то подробные результаты проверки будут выводиться в формате JSON. + +Пример: + +```bash +iptvc check -f playlist.m3u --json +``` + + +## `-q`, `--quiet` + +Подавляет вывод всех логов. + +!!! info "Не влияет на [`--json`](#json), но перекрывает [`--verbose`](#verbose)." + +Пример: + +```bash +iptvc check -i ~/my.ini -r 10 -q --json +``` + + +## `-v`, `--verbose` + +Включает подробное логирование. + +Пример: + +```bash +iptvc check --random 10 --verbose +``` + + + + diff --git a/src/iptvc/cli/help.md b/src/iptvc/commands/help.md similarity index 100% rename from src/iptvc/cli/help.md rename to src/iptvc/commands/help.md diff --git a/src/iptvc/commands/index.md b/src/iptvc/commands/index.md new file mode 100644 index 0000000..e85f414 --- /dev/null +++ b/src/iptvc/commands/index.md @@ -0,0 +1,6 @@ +--- +icon: octicons/terminal-24 +hide: [toc] +--- + +# :octicons-terminal-24: Доступные команды diff --git a/src/iptvc/commands/version.md b/src/iptvc/commands/version.md new file mode 100644 index 0000000..48f466e --- /dev/null +++ b/src/iptvc/commands/version.md @@ -0,0 +1,17 @@ +--- +tags: ["iptvc"] +--- + +# Команда `version` + +Выводит версию программы: + +```bash +iptvc version +``` + +Пример результата: + +``` +iptvc v1.0.6 +``` diff --git a/src/iptvc/install.md b/src/iptvc/install.md new file mode 100644 index 0000000..0ba352b --- /dev/null +++ b/src/iptvc/install.md @@ -0,0 +1,87 @@ +--- +icon: material/download +tags: ["iptvc"] +--- + +# Установка и запуск + +## Запуск готовой программы + +Достаточно скачать и распаковать архив с подходящим исполняемым файлом [со страницы последнего релиза](https://git.axenov.dev/IPTV/iptvc/releases/latest) в любую удобную директорию: + +| ОС | Скачать для `amd64` | Скачать для `arm64` | +| ------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | +| Linux | [linux_amd64.zip](https://git.axenov.dev/IPTV/iptvc/releases/download/latest/linux_amd64.zip) | [linux_arm64.zip](https://git.axenov.dev/IPTV/iptvc/releases/download/latest/linux_arm64.zip) | +| MacOS | [darwin_amd64.zip](https://git.axenov.dev/IPTV/iptvc/releases/download/latest/darwin_amd64.zip) | [darwin_arm64.zip](https://git.axenov.dev/IPTV/iptvc/releases/download/latest/darwin_arm64.zip) | +| Windows | [windows_amd64.zip](https://git.axenov.dev/IPTV/iptvc/releases/download/latest/windows_amd64.zip) | [windows_arm64.zip](https://git.axenov.dev/IPTV/iptvc/releases/download/latest/windows_arm64.zip) | + +## Запуск релизного образа + +Релизные docker-образы строятся для платформы `linux` и архитектуры `amd64`. + +Найти их можно здесь: + +Тег `latest` всегда соответствует последней версии, он подразумевается по умолчанию: + +```shell +docker run --pull always git.axenov.dev/iptv/iptvc КОМАНДА [АРГУМЕНТЫ] +``` + +Для использования другой версии следует явно указать её: + +```shell +docker run --pull always git.axenov.dev/iptv/iptvc:v1.0.6 КОМАНДА [АРГУМЕНТЫ] +``` + +## Построение собственного образа + +```shell +./build-docker-image.sh [<версия>] +``` + +где `<версия>` — необязательный тег версии в формате `vX.Y.Z`. +Если не указан, то будет взят последний. + +Целевая платформа и архитектура меняется с помощью переменных `GOOS` и `GOARCH`: + +```shell +GOOS=darwin GOARCH=arm64 ./build-docker-image.sh [<версия>] +``` + +Запуск: + +``` +docker run --pull always iptvc:[latest|<версия>] КОМАНДА [АРГУМЕНТЫ] +``` + +## Использование образа в Docker compose + +```yml +services: + #... + checker: + container_name: iptv-checker + image: git.axenov.dev/iptv/iptvc:latest + command: [check] + #... +``` + +## Компиляция из исходного кода + +Для компиляции потребуется golang v1.23.6 и выше. +На версиях ниже не проверялось. + +```bash +git clone https://git.axenov.dev/IPTV/iptvc.git +cd iptvc +make linux +# или make help для получения помощи по компиляции +``` + +Поддерживается передача переменной `GOARCH`: + +```shell +make darwin GOARCH=arm64 +``` + +Скомпилированные файлы находятся в директории `bin/`.