From 950dfdb1b97725940716234349f5ecd1ad7d9462 Mon Sep 17 00:00:00 2001 From: AnthonyAxenov Date: Fri, 2 Sep 2022 19:09:24 +0800 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=BA=D1=80=D0=B8=D0=BF=D1=82=20./iptv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 20 +++++++++++++++++--- iptv | 29 +++++++++++++++++++++++++++++ src/.env.example | 4 ++-- 3 files changed, 48 insertions(+), 5 deletions(-) create mode 100755 iptv diff --git a/README.md b/README.md index 131339f..5777a40 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,7 @@ I'm too lazy to translate and support the whole project in ru and en, sorry, guy --- + ## Как использовать этот список? Чтобы подключить плейлист, нужно в настройках медиаплеера указать ссылку в следующем формате: @@ -64,6 +65,7 @@ iptv.axenov.dev/? (устаревший формат) Либо провернуть всё то же самое через браузер. + ## Формат `playlists.ini` ```ini @@ -98,6 +100,7 @@ redirect = 1 Плейлистов с редиректами может быть сколько угодно, но они не должны быть цикличными. + ## API Можно получать состояние плейлистов из этого сборника при помощи метода: @@ -181,11 +184,18 @@ GET https://iptv.axenov.dev//json * `message` -- текст ошибки curl + ## Развёртывание проекта -1. Выполнить `cp src/.env.example src/.env`, установить необходимые параметры -2. Выполнить `docker compose up -d --build` -3. Открыть `http://:8080` +### Aвтоматически + +Выполнить `./iptv init` + +### Вручную + +1. Выполнить `cp src/.env.example src/.env`, установить необходимые параметры в файле `src/.env` +2. Выполнить `docker compose up -d --build` (или `./iptv up`) +3. Открыть `http://:8080` в браузере (или `./iptv open`) Если на сервере, на котором запускаются контейнеры, стоит apache2, то его можно использовать как реверс прокси: @@ -235,6 +245,7 @@ $ sudo systemctl restart apache2 ``` + ## Дополнительные инструменты (`./tools`) ### `download-all.sh` @@ -367,6 +378,7 @@ http://live02-cdn.tv.ti.ru:80/dtv/id376_NBN_SG--Fox_HD/04/plst.m3u8 ``` + ## Как создать свой собственный плейлист? 1. Скачать все плейлисты, указанные в [`playlists.ini`](playlists.ini): @@ -389,6 +401,7 @@ http://live02-cdn.tv.ti.ru:80/dtv/id376_NBN_SG--Fox_HD/04/plst.m3u8 5. Вручную: добавить плейлист в IPTV-плеер и перепроверить результат. + ## Использованный стек * [docker compose](https://docs.docker.com/compose/) @@ -399,6 +412,7 @@ http://live02-cdn.tv.ti.ru:80/dtv/id376_NBN_SG--Fox_HD/04/plst.m3u8 * bash + ## Лицензия [The MIT License](LICENSE) diff --git a/iptv b/iptv new file mode 100755 index 0000000..9d59a10 --- /dev/null +++ b/iptv @@ -0,0 +1,29 @@ +#!/bin/bash +# https://gist.github.com/anthonyaxenov/89c99e09ddb195985707e2b24a57257d + +CONTAINER="iptv-php" # the name of the container in which to 'exec' something +CONFIG="$(dirname $([ -L $0 ] && readlink -f $0 || echo $0))/docker-compose.yml" # path to compose yml file +CMD="docker-compose -f $CONFIG" # docker-compose command +APP_URL='http://localhost:8080/' + +open_browser() { + if which xdg-open > /dev/null; then + xdg-open "$1" /dev/null 2>&1 & disown + elif which gnome-open > /dev/null; then + gnome-open "$1" /dev/null 2>&1 & disown + fi +} + +case "$1" in + '' | 'help' ) echo -e "Provide one of operations: \t init, start, stop, up, down, restart, rebuild, open"; + echo "Otherwise all args will passed to 'docker exec -ti $CONTAINER ...'" ;; + 'init' ) cp src/.env.example src/.env && nano src/.env && ./iptv up && ./iptv composer i && ./iptv open && echo -e "\nYou're welcome!\n\t$APP_URL";; + 'up' ) $CMD up -d --build && ./iptv open ;; # build and start containers + 'down' ) $CMD down --remove-orphans ;; # stop and remove containers + 'start' ) $CMD start && ./iptv open ;; # start containers + 'stop' ) $CMD stop ;; # stop containers + 'restart' ) $CMD stop && $CMD start ;; # restart containers + 'rebuild' ) $CMD down --remove-orphans && $CMD up -d --build ;; # rebuild containers + 'open' ) open_browser $APP_URL ;; + * ) docker exec -ti $CONTAINER $@ # exec anything else in container +esac diff --git a/src/.env.example b/src/.env.example index 33ed7cc..de4c437 100644 --- a/src/.env.example +++ b/src/.env.example @@ -1,5 +1,5 @@ -APP_TITLE= -APP_URL= +APP_TITLE='Плейлисты IPTV' +APP_URL=http://localhost:8080 TWIG_CACHE=1 TWIG_DEBUG=0 FLIGHT_CASE_SENSITIVE=0