From bc03abeb9d4998d4c01742469b5894c9e9a011b1 Mon Sep 17 00:00:00 2001 From: Anthony Axenov Date: Sat, 22 Nov 2025 18:05:38 +0800 Subject: [PATCH] =?UTF-8?q?=D0=9C=D0=B5=D0=BB=D0=BE=D1=87=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=BE=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B5=20=D0=B8=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 14 +++++++------- README.md | 39 +++++++++++++++++++-------------------- build-docker-image.sh | 2 ++ 3 files changed, 28 insertions(+), 27 deletions(-) diff --git a/Makefile b/Makefile index 7af7907..d30c8e4 100644 --- a/Makefile +++ b/Makefile @@ -1,11 +1,11 @@ .DEFAULT_GOAL=help BINARY_NAME := iptvc -ARCH ?= amd64 +GOARCH ?= amd64 -LINUX_PATH := "bin/linux_$(ARCH)" -WINDOWS_PATH := "bin/windows_$(ARCH)" -DARWIN_PATH := "bin/darwin_$(ARCH)" +LINUX_PATH := "bin/linux_$(GOARCH)" +WINDOWS_PATH := "bin/windows_$(GOARCH)" +DARWIN_PATH := "bin/darwin_$(GOARCH)" LINUX_FILE := "$(LINUX_PATH)/$(BINARY_NAME)" WINDOWS_FILE := "$(WINDOWS_PATH)/$(BINARY_NAME).exe" @@ -19,17 +19,17 @@ clean: ## linux: Build new binaries for linux linux: @rm -rf $(LINUX_PATH) - @GOARCH=$(ARCH) GOOS=linux go build -o $(LINUX_FILE) . && echo "Compiled: $(LINUX_FILE)" + @GOARCH=$(GOARCH) GOOS=linux go build -o $(LINUX_FILE) . && echo "Compiled: $(LINUX_FILE)" ## win: Build new binaries for windows win: @rm -rf $(WINDOWS_PATH) - @GOARCH=$(ARCH) GOOS=windows go build -o $(WINDOWS_FILE) . && echo "Compiled: $(WINDOWS_FILE)" + @GOARCH=$(GOARCH) GOOS=windows go build -o $(WINDOWS_FILE) . && echo "Compiled: $(WINDOWS_FILE)" ## darwin: Build new binaries for darwin darwin: @rm -rf $(DARWIN_PATH) - @GOARCH=$(ARCH) GOOS=darwin go build -o $(DARWIN_FILE) . && echo "Compiled: $(DARWIN_FILE)" + @GOARCH=$(GOARCH) GOOS=darwin go build -o $(DARWIN_FILE) . && echo "Compiled: $(DARWIN_FILE)" ## all: Build new binaries for linux, windows and darwin all: clean linux win darwin diff --git a/README.md b/README.md index c3e0bd6..4c6ce4b 100644 --- a/README.md +++ b/README.md @@ -5,22 +5,21 @@ Консольная программа для проверки IPTV-плейлистов в формате m3u или m3u8. > **Веб-сайт:** [m3u.su](https://m3u.su) -> Исходный код: [git.axenov.dev/IPTV/iptvc](https://git.axenov.dev/IPTV/iptvc) +> **Документация:** [m3u.su/docs](https://m3u.su/docs) +> Исходный код: [git.axenov.dev/IPTV](https://git.axenov.dev/IPTV) > Telegram-канал: [@iptv_aggregator](https://t.me/iptv_aggregator) > Обсуждение: [@iptv_aggregator_chat](https://t.me/iptv_aggregator_chat) -> Дополнительные сведения: -> * [./docs](./docs) -> * [git.axenov.dev/IPTV/.profile](https://git.axenov.dev/IPTV/.profile) +> Бот: [@iptv_aggregator_bot](https://t.me/iptv_aggregator_bot) ## Установка Достаточно скачать и распаковать архив с подходящим исполняемым файлом [со страницы последнего релиза](https://git.axenov.dev/IPTV/iptvc/releases/latest): -| ОС | Архив | Платформа | -|---------|----------------------|-----------| -| Linux | `linux_amd64.zip` | x64 | -| MacOS | `darwin_amd64.zip` | x64 | -| Windows | `windows_amd64.zip` | x64 | +| ОС | Скачать для `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) | ## Компиляция @@ -29,7 +28,7 @@ 1. Склонировать репозиторий 2. Находясь в корне репозитория, следует выполнить `make` или `make help` для получения справки. -3. Другой способ -- выполнить `go run .` для быстрого запуска. +3. Другой способ — выполнить `go run .` для быстрого запуска. ## Быстрый старт @@ -69,11 +68,11 @@ ### Другие возможности команды `check` -* `--random|-r X` -- проверить X случайных плейлистов из ini-файла -* `--json|-j` -- вывести результаты проверки в формате JSON -* `--quiet|-q` -- полностью подавить вывод лога (включая отладочную информацию) -* `--verbose|-v` -- добавить в лог более подробную отладочную информацию (значительно увеличит количество строк!) -* `--tags|-t` -- файл с перечислением тегов (подробности см. [здесь](https://git.axenov.dev/IPTV/playlists#файл-channelsjson)) +* `--random|-r X` — проверить X случайных плейлистов из ini-файла +* `--json|-j` — вывести результаты проверки в формате JSON +* `--quiet|-q` — полностью подавить вывод лога (включая отладочную информацию) +* `--verbose|-v` — добавить в лог более подробную отладочную информацию (значительно увеличит количество строк!) +* `--tags|-t` — файл с перечислением тегов (подробности см. [здесь](https://git.axenov.dev/IPTV/playlists#файл-channelsjson)) Например, можно получить только json с результатами, передать его в `jq` и, отфильтровав результат, вывести названия оффлайн каналов: @@ -126,8 +125,8 @@ pls='https://example.com/list2.m3u' ### Параметры проверки Выше в п.7 видно некоторые служебные данные: -* `timeout` -- таймаут каждого запроса в секундах (макс. время ожидания ответа канала); -* `routines` -- количество одновременных проверок. +* `timeout` — таймаут каждого запроса в секундах (макс. время ожидания ответа канала); +* `routines` — количество одновременных проверок. Эти параметры рассчитываются динамически для каждого плейлиста в отдельности, исходя из количества каналов в каждом (`count`). См. [app/checker/checker.go](app/checker/checker.go) для подробностей. @@ -151,9 +150,9 @@ pls='https://example.com/list2.m3u' ### Коды возврата -* 0 -- успех -* 1 -- общая ошибка, см. вывод -* 2 -- команде `check` не переданы параметры `--file`, `--url` и `--code` +* 0 — успех +* 1 — общая ошибка, см. вывод +* 2 — команде `check` не переданы параметры `--file`, `--url` и `--code` ## Лицензия diff --git a/build-docker-image.sh b/build-docker-image.sh index 7bc07b2..99163b3 100755 --- a/build-docker-image.sh +++ b/build-docker-image.sh @@ -8,6 +8,8 @@ IPTVC_VERSION="${GIT_TAG}-${GIT_HASH}" git checkout "${GIT_TAG}" 2>/dev/null docker build \ --build-arg IPTVC_VERSION="${IPTVC_VERSION}" \ + --build-arg GOOS="${GOOS:-linux}" \ + --build-arg GOARCH="${GOARCH:-amd64}" \ --tag iptvc:"${DOCKER_TAG}" \ --tag git.axenov.dev/iptv/iptvc:"${DOCKER_TAG}" \ .