Compare commits
2 Commits
7b913b5099
...
6637367d43
Author | SHA1 | Date |
---|---|---|
Anthony Axenov | 6637367d43 | |
Anthony Axenov | 950dfdb1b9 |
56
README.md
56
README.md
|
@ -49,6 +49,7 @@ I'm too lazy to translate and support the whole project in ru and en, sorry, guy
|
|||
---
|
||||
|
||||
<a id="howtouse"></a>
|
||||
|
||||
## Как использовать этот список?
|
||||
|
||||
Чтобы подключить плейлист, нужно в настройках медиаплеера указать ссылку в следующем формате:
|
||||
|
@ -64,6 +65,7 @@ iptv.axenov.dev/?<ID> (устаревший формат)
|
|||
Либо провернуть всё то же самое через браузер.
|
||||
|
||||
<a id="iniformat"></a>
|
||||
|
||||
## Формат `playlists.ini`
|
||||
|
||||
```ini
|
||||
|
@ -98,6 +100,7 @@ redirect = 1
|
|||
Плейлистов с редиректами может быть сколько угодно, но они не должны быть цикличными.
|
||||
|
||||
<a id="api"></a>
|
||||
|
||||
## API
|
||||
|
||||
Можно получать состояние плейлистов из этого сборника при помощи метода:
|
||||
|
@ -143,7 +146,8 @@ GET https://iptv.axenov.dev/<ID>/json
|
|||
* `status` -- статус плейлиста (`"online"|"timeout"|"offline"|"error"`)
|
||||
* `encoding` -- данные о кодировке файла плейлиста
|
||||
* `name` -- название кодировки (`"UTF-8"|"Windows-1251"`)
|
||||
* `alert` -- признак отличия кодировки от `UTF-8`, названия каналов сконвертированы в `UTF-8`, могут быть ошибки в отображении
|
||||
* `alert` -- признак отличия кодировки от `UTF-8`, названия каналов сконвертированы в `UTF-8`, могут быть ошибки
|
||||
в отображении
|
||||
* `channels` -- массив названий каналов
|
||||
* `count` -- количество каналов >= 0
|
||||
|
||||
|
@ -181,11 +185,18 @@ GET https://iptv.axenov.dev/<ID>/json
|
|||
* `message` -- текст ошибки curl
|
||||
|
||||
<a id="deploy"></a>
|
||||
|
||||
## Развёртывание проекта
|
||||
|
||||
1. Выполнить `cp src/.env.example src/.env`, установить необходимые параметры
|
||||
2. Выполнить `docker compose up -d --build`
|
||||
3. Открыть `http://<APP_URL>:8080`
|
||||
### Aвтоматически
|
||||
|
||||
Выполнить `./iptv init`
|
||||
|
||||
### Вручную
|
||||
|
||||
1. Выполнить `cp ./src/.env.example ./src/.env`, установить необходимые параметры в файле `./src/.env`
|
||||
2. Выполнить `docker compose up -d --build` (или `./iptv up`)
|
||||
3. Открыть `http://<APP_URL>:8080` в браузере (или `./iptv open`)
|
||||
|
||||
Если на сервере, на котором запускаются контейнеры, стоит apache2, то его можно использовать как реверс прокси:
|
||||
|
||||
|
@ -235,13 +246,29 @@ $ sudo systemctl restart apache2
|
|||
```
|
||||
|
||||
<a id="tools"></a>
|
||||
## Дополнительные инструменты (`./tools`)
|
||||
|
||||
### `download-all.sh`
|
||||
## Дополнительные инструменты
|
||||
|
||||
### Очистка кеша Twig
|
||||
|
||||
Если в файле `./src/.env` параметр `TWIG_CACHE=1`, то макеты страниц компилируются однажды и потом переиспользуются.
|
||||
Изменённые макеты не будут перекомпилироваться пока не будет очищен кеш прежних.
|
||||
|
||||
Для этого следует выполнить:
|
||||
|
||||
```
|
||||
./iptv composer clear-views
|
||||
```
|
||||
|
||||
### Скачать все плейлисты
|
||||
|
||||
Команда: `./tools/download-all.sh`
|
||||
|
||||
Скачивает все плейлисты из [`playlists.ini`](playlists.ini) в локальную директорию `./downloaded/`.
|
||||
|
||||
### `check-pls.sh`
|
||||
### Проверить каналы плейлиста
|
||||
|
||||
Команда: `./tools/check-pls.sh`
|
||||
|
||||
Проверяет каждый канал в плейлисте на доступность и выводит результат проверки.
|
||||
|
||||
|
@ -280,7 +307,9 @@ Check stats
|
|||
- Failed: 4/999
|
||||
```
|
||||
|
||||
### `find-in-pls.sh`
|
||||
### Поиск каналов в одном плейлисте
|
||||
|
||||
Команда: `./tools/find-in-pls.sh`
|
||||
|
||||
Находит каналы по заданному регулярному выражению в одном указанном плейлисте.
|
||||
|
||||
|
@ -306,7 +335,9 @@ Channel found: disney
|
|||
Found: 2
|
||||
```
|
||||
|
||||
### `find-in-all.sh`
|
||||
### Поиск каналов во всех плейлистах
|
||||
|
||||
Команда: `./tools/find-in-all.sh`
|
||||
|
||||
Находит каналы по заданному регулярному выражению во всех плейлистах, скачанных через `download-all.sh`.
|
||||
|
||||
|
@ -340,7 +371,9 @@ Nothing found
|
|||
...
|
||||
```
|
||||
|
||||
### `make-pls.sh`
|
||||
### Создать плейлист из нужных каналов
|
||||
|
||||
Команда: `./tools/make-pls.sh`
|
||||
|
||||
Находит каналы по заданному регулярному выражению во всех плейлистах, скачанных через `download-all.sh`.
|
||||
|
||||
|
@ -367,6 +400,7 @@ http://live02-cdn.tv.ti.ru:80/dtv/id376_NBN_SG--Fox_HD/04/plst.m3u8
|
|||
```
|
||||
|
||||
<a id="howtomake"></a>
|
||||
|
||||
## Как создать свой собственный плейлист?
|
||||
|
||||
1. Скачать все плейлисты, указанные в [`playlists.ini`](playlists.ini):
|
||||
|
@ -389,6 +423,7 @@ http://live02-cdn.tv.ti.ru:80/dtv/id376_NBN_SG--Fox_HD/04/plst.m3u8
|
|||
5. Вручную: добавить плейлист в IPTV-плеер и перепроверить результат.
|
||||
|
||||
<a id="stack"></a>
|
||||
|
||||
## Использованный стек
|
||||
|
||||
* [docker compose](https://docs.docker.com/compose/)
|
||||
|
@ -399,6 +434,7 @@ http://live02-cdn.tv.ti.ru:80/dtv/id376_NBN_SG--Fox_HD/04/plst.m3u8
|
|||
* bash
|
||||
|
||||
<a id="license"></a>
|
||||
|
||||
## Лицензия
|
||||
|
||||
[The MIT License](LICENSE)
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
[PHP]
|
||||
file_uploads = Off
|
||||
; upload_max_filesize=256M
|
||||
; post_max_size=256M
|
||||
error_reporting = E_ALL
|
||||
;& ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE & ~E_WARNING
|
||||
file_uploads = Off
|
||||
; upload_max_filesize=10M
|
||||
; post_max_size=10M
|
||||
|
||||
[opcache]
|
||||
opcache.enable = 1
|
||||
|
@ -16,12 +15,19 @@ opcache.jit = tracing
|
|||
|
||||
[xdebug]
|
||||
; https://xdebug.org/docs/all_settings
|
||||
|
||||
; закомментировать для выключения
|
||||
zend_extension = xdebug.so
|
||||
xdebug.mode = develop,debug
|
||||
|
||||
; для отладки установить значение 'develop,debug'
|
||||
xdebug.mode = develop
|
||||
|
||||
; для отладки при каждом запросе поменять 'trigger' на 'yes'
|
||||
; иначе -- отправлять заголовок 'Cookie: XDEBUG_TRIGGER=go'
|
||||
xdebug.start_with_request = trigger
|
||||
xdebug.trigger_value = go
|
||||
|
||||
xdebug.client_host = 172.17.0.1
|
||||
xdebug.REQUEST = *
|
||||
xdebug.SESSION = *
|
||||
xdebug.SERVER = *
|
||||
xdebug.client_host = 172.17.0.1
|
||||
;xdebug.start_with_request=yes
|
||||
xdebug.start_with_request = trigger
|
||||
xdebug.trigger_value = go
|
||||
|
|
|
@ -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 >/dev/null 2>&1 & disown
|
||||
elif which gnome-open > /dev/null; then
|
||||
gnome-open "$1" </dev/null >/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
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue