Орфограция и синтаксис

This commit is contained in:
2025-11-22 16:15:55 +08:00
parent af8361bd5c
commit 0eefda4294
22 changed files with 114 additions and 117 deletions

View File

@@ -117,7 +117,6 @@ nav:
- 'IPTV Checker (iptvc)': - 'IPTV Checker (iptvc)':
- iptvc/index.md - iptvc/index.md
- iptvc/quickstart.md - iptvc/quickstart.md
- iptvc/how-it-works.md
- iptvc/env.md - iptvc/env.md
- 'Работа в терминале': - 'Работа в терминале':
- iptvc/cli/index.md - iptvc/cli/index.md

View File

@@ -25,15 +25,15 @@ tags: ["статусы", "плейлисты", "каналы", "iptvc"]
Каждый плейлист может быть в одном из трёх статусов: Каждый плейлист может быть в одном из трёх статусов:
* <span class="badge unknown">unknown</span> -- Плейлист в очереди на проверку * <span class="badge unknown">unknown</span> Плейлист в очереди на проверку
Он сменит свой статус в ближайшие минуты. Он сменит свой статус в ближайшие минуты.
* <span class="badge online">online</span> -- Плейлист активен * <span class="badge online">online</span> Плейлист активен
Это не значит, что он работает. Это не значит, что он работает.
Это значит, что адрес плейлиста корректен и там, *вероятно*, *что-то* транслируется. Это значит, что адрес плейлиста корректен и там, *вероятно*, *что-то* транслируется.
В нём может быть 0 каналов -- значит, содержимое потёрли. В нём может быть 0 каналов значит, содержимое потёрли.
* <span class="badge offline">offline</span> -- Плейлист недоступен * <span class="badge offline">offline</span> Плейлист недоступен
Если этот статус висит постоянно, значит это главный кандидат на удаление из проекта. Если этот статус висит постоянно, значит это главный кандидат на удаление из проекта.
Но это может быть просто разовый сбой (например, таймаут проверки), и, *возможно*, скоро он станет доступен. Но это может быть просто разовый сбой (например, таймаут проверки), и, *возможно*, скоро он станет доступен.
@@ -46,10 +46,10 @@ tags: ["статусы", "плейлисты", "каналы", "iptvc"]
Каждый канал в любом плейлисте может быть в одном из трёх статусов: Каждый канал в любом плейлисте может быть в одном из трёх статусов:
* <span class="icon online"><ion-icon name="radio-button-on-outline"></ion-icon></span> -- *Возможно*, канал работает * <span class="icon online"><ion-icon name="radio-button-on-outline"></ion-icon></span> *Возможно*, канал работает
Но там может транслироваться какая-нибудь [заглушка](../faq.md#заглушка) (например, от [Wink](../faq.md#wink)). Но там может транслироваться какая-нибудь [заглушка](../faq.md#заглушка) (например, от [Wink](../faq.md#wink)).
* <span class="icon offline"><ion-icon name="radio-button-on-outline"></ion-icon></span> -- *Возможно*, канал не работает * <span class="icon offline"><ion-icon name="radio-button-on-outline"></ion-icon></span> *Возможно*, канал не работает
Чем больше таких каналов в плейлисте, тем сложнее будет листать плейлист в плеере или на ТВ. Чем больше таких каналов в плейлисте, тем сложнее будет листать плейлист в плеере или на ТВ.
Но, *возможно*, *когда-нибудь* плейлист обновят и канал будет работать исправно. Но, *возможно*, *когда-нибудь* плейлист обновят и канал будет работать исправно.
Также и здесь может быть просто разовый сбой (например, таймаут проверки), и (возможно) скоро он станет доступен. Также и здесь может быть просто разовый сбой (например, таймаут проверки), и (возможно) скоро он станет доступен.
@@ -63,9 +63,9 @@ tags: ["статусы", "плейлисты", "каналы", "iptvc"]
В описаниях плейлистов, которые находятся в статусе <span class="badge online">online</span>, можно встретить следующие иконки: В описаниях плейлистов, которые находятся в статусе <span class="badge online">online</span>, можно встретить следующие иконки:
* <ion-icon name="folder-open-outline"></ion-icon> -- каналы плейлиста разбиты на группы (например, музыкальные каналы и региональные); * <ion-icon name="folder-open-outline"></ion-icon> каналы плейлиста разбиты на группы (например, музыкальные каналы и региональные);
* <ion-icon name="newspaper-outline"></ion-icon> -- плейлист предоставляет программу передач для каналов; * <ion-icon name="newspaper-outline"></ion-icon> плейлист предоставляет программу передач для каналов;
* <ion-icon name="play-back"></ion-icon> -- плейлист предоставляет возможность перемотки передач. * <ion-icon name="play-back"></ion-icon> плейлист предоставляет возможность перемотки передач.
Если плейлист недоступен или непроверен, этих иконок не будет. Если плейлист недоступен или непроверен, этих иконок не будет.
@@ -84,7 +84,7 @@ tags: ["статусы", "плейлисты", "каналы", "iptvc"]
!!! warning "Обрати внимание" !!! warning "Обрати внимание"
Далеко не все каналы могут быть помечены таким тегом. Далеко не все каналы могут быть помечены таким тегом.
Хотя набор правил для тегов очень богат, но невозможно угадать все каналы с приемлемой точностью. Хотя набор правил для тегов очень богат, но невозможно угадать все каналы с приемлемой точностью.
Почему -- читай [здесь](../formats/channels.md#warnings). Почему читай [здесь](../formats/channels.md#warnings).
--- ---

View File

@@ -19,18 +19,18 @@ tags: ["сайт", "статусы", "каналы"]
На этой вкладке выводится таблица со следующими строками: На этой вкладке выводится таблица со следующими строками:
* **Код** -- короткий уникальный [код плейлиста](../formats/playlists.md#code); * **Код** короткий уникальный [код плейлиста](../formats/playlists.md#code);
* **Описание** -- [описание плейлиста](../formats/playlists.md#desc) (при наличии); * **Описание** [описание плейлиста](../formats/playlists.md#desc) (при наличии);
* **Ccылка для ТВ** -- короткая ссылка, которую можно использовать для [подключения плейлиста](../common/connect.md), подробнее о ней см. ниже; * **Ccылка для ТВ** короткая ссылка, которую можно использовать для [подключения плейлиста](../common/connect.md), подробнее о ней см. ниже;
* **Источник** -- [ссылка на ресурс](../formats/playlists.md#src), где была найдена ссылка на плейлист (при наличии); * **Источник** [ссылка на ресурс](../formats/playlists.md#src), где была найдена ссылка на плейлист (при наличии);
* **Наполнение**: * **Наполнение**:
* группы -- количество групп, на которые поделены каналы; * группы количество групп, на которые поделены каналы;
* каналы -- количества каналов общее, онлайн и оффлайн; * каналы количества каналов общее, онлайн и оффлайн;
(всё по нулям, если плейлист <span class="badge offline">offline</span>) (всё по нулям, если плейлист <span class="badge offline">offline</span>)
* **Возможности** -- наличие программы передач и перемотки каналов; * **Возможности** наличие программы передач и перемотки каналов;
* **M3U** -- [прямая ссылка](../formats/playlists.md#pls) на плейлист; * **M3U** [прямая ссылка](../formats/playlists.md#pls) на плейлист;
* **Проверка плейлиста** -- дата и время последней [проверки](../common/checks.md) плейлиста с помощью [iptvc](../iptvc/how-it-works.md); * **Проверка плейлиста** дата и время последней [проверки](../common/checks.md) плейлиста с помощью [iptvc](../iptvc/how-it-works.md);
* **Ошибка проверки** -- текст ошибки, которая возникла при проверке * **Ошибка проверки** текст ошибки, которая возникла при проверке
(только если плейлист <span class="badge offline">offline</span>) (только если плейлист <span class="badge offline">offline</span>)
Если при проверке плейлиста возникла ошибка, то она будет отображена красным цветом сразу под заголовком: Если при проверке плейлиста возникла ошибка, то она будет отображена красным цветом сразу под заголовком:
@@ -39,7 +39,7 @@ tags: ["сайт", "статусы", "каналы"]
![Страница с ошибкой проверки плейлиста](../assets/img/pls-details/error.jpg) ![Страница с ошибкой проверки плейлиста](../assets/img/pls-details/error.jpg)
!!! info !!! info
Если в тексте ошибки фигурирует слово `Timeout` и плейлист <span class="badge offline">offline</span> -- это ерунда. Если в тексте ошибки фигурирует слово `Timeout` и плейлист <span class="badge offline">offline</span> это ерунда.
Скорее всего, при следующей проверке статус позеленеет. Скорее всего, при следующей проверке статус позеленеет.
Просто в момент проверки сервер не получил файл плейлиста вовремя, а т. к. долго ждать он не может, поэтому плюнул и пошёл проверять другие. Просто в момент проверки сервер не получил файл плейлиста вовремя, а т. к. долго ждать он не может, поэтому плюнул и пошёл проверять другие.
@@ -52,7 +52,7 @@ tags: ["сайт", "статусы", "каналы"]
![Вкладка "Исходный текст"](../assets/img/pls-details/tab2.jpg) ![Вкладка "Исходный текст"](../assets/img/pls-details/tab2.jpg)
Здесь выводится плейлист как он есть. Здесь выводится плейлист как он есть.
Над этим текстом -- две кнопки: Над этим текстом две кнопки:
* зелёная с кодом плейлиста для скачивания файла; * зелёная с кодом плейлиста для скачивания файла;
* нажатие на **QR-код** покажет, внезапно, QR-код, в который закодирована "Ссылка для ТВ". * нажатие на **QR-код** покажет, внезапно, QR-код, в который закодирована "Ссылка для ТВ".
@@ -77,14 +77,14 @@ tags: ["сайт", "статусы", "каналы"]
Под заголовком есть **выпадающий список групп**. Под заголовком есть **выпадающий список групп**.
Он отображается только если плейлист поделён на группы. Он отображается только если плейлист поделён на группы.
Справа -- **кнопка сброса** для отображения всех каналов. Справа **кнопка сброса** для отображения всех каналов.
Под списком групп расположилась **строка поиска**. Под списком групп расположилась **строка поиска**.
Она есть вообще всегда. Она есть вообще всегда.
Туда можно начать вводить название канала, и по мере ввода список будет сужаться. Туда можно начать вводить название канала, и по мере ввода список будет сужаться.
Справа от строки поиска есть **кнопки фильтрации каналов по их статусу**. Справа от строки поиска есть **кнопки фильтрации каналов по их статусу**.
Справа -- **кнопка сброса** для отображения всех каналов. Справа **кнопка сброса** для отображения всех каналов.
Под строкой поиска есть [**облако тегов**](../formats/channels.md#доступные-теги). Под строкой поиска есть [**облако тегов**](../formats/channels.md#доступные-теги).
@@ -133,12 +133,12 @@ m3u.su/ru
По идее, можешь использовать любую сылку из подобных, т. к. технически они отработают одинаково. По идее, можешь использовать любую сылку из подобных, т. к. технически они отработают одинаково.
А вот твой [плеер](players.md) может не принять какую-то из них. А вот твой [плеер](players.md) может не принять какую-то из них.
Так что, если не подойдёт один формат, используй другой -- добавь префикс или суффикс. Так что, если не подойдёт один формат, используй другой добавь префикс или суффикс.
Префикс плееру требуется чаще всего, потому что он при добавлении плейлиста проверяет -- а ссылку ли мне вообще предоставил пользователь? Префикс плееру требуется чаще всего, потому что он при добавлении плейлиста проверяет а ссылку ли мне вообще предоставил пользователь?
По наличию суффикса плеер может определить -- а прямая ли это ссылка на файл плейлиста? По наличию суффикса плеер может определить а прямая ли это ссылка на файл плейлиста?
Технически -- нет, непрямая, потому что файла плейлиста у меня на сервере нет физически и сервер должен сделать редирект уже на сам плейлист. Технически нет, непрямая, потому что файла плейлиста у меня на сервере нет физически и сервер должен сделать редирект уже на сам плейлист.
Но благодаря такой обманке плеер его наверняка подгрузит. Но благодаря такой обманке плеер его наверняка подгрузит.
Или нет. Или нет.

View File

@@ -1,7 +1,6 @@
--- ---
icon: material/file-document icon: material/file-document
hide: hide: [toc]
- toc
--- ---
# Общая информация # Общая информация

View File

@@ -14,22 +14,22 @@ tags: ["сайт", "плейлисты"]
* дата последнего изменения файла [playlists.ini](../formats/playlists.md) * дата последнего изменения файла [playlists.ini](../formats/playlists.md)
* общее количество плейлистов и с разделением по статусам. * общее количество плейлистов и с разделением по статусам.
Ниже -- спиcок плейлистов. Ниже спиcок плейлистов.
## Из чего состоит список ## Из чего состоит список
* **Код** -- короткий уникальный [код плейлиста](../formats/playlists.md#code) * **Код** короткий уникальный [код плейлиста](../formats/playlists.md#code)
* **Информация о плейлисте** * **Информация о плейлисте**
* [статус плейлиста](../common/checks.md#плейлисты) * [статус плейлиста](../common/checks.md#плейлисты)
* может быть [значок 18+](../common/checks.md#для-взрослых) * может быть [значок 18+](../common/checks.md#для-взрослых)
* [название плейлиста](../formats/playlists.md#name) -- ссылка на [страницу плейлиста](../common/details.md) * [название плейлиста](../formats/playlists.md#name) ссылка на [страницу плейлиста](../common/details.md)
под ним: под ним:
* [иконки возможностей плейлиста](../common/checks.md#возможности) (только при статусе <span class="badge online">online</span>) * [иконки возможностей плейлиста](../common/checks.md#возможности) (только при статусе <span class="badge online">online</span>)
* [описание плейлиста](../formats/playlists.md#desc) (при наличии) * [описание плейлиста](../formats/playlists.md#desc) (при наличии)
* [список тегов](../formats/channels.md#доступные-теги), собранный со всех каналов после их проверки (только при статусе <span class="badge online">online</span>) * [список тегов](../formats/channels.md#доступные-теги), собранный со всех каналов после их проверки (только при статусе <span class="badge online">online</span>)
* ещё одна ссылка на [страницу плейлиста](../common/details.md) * ещё одна ссылка на [страницу плейлиста](../common/details.md)
* **Каналов** -- фактическое количество каналов в плейлисте (только при статусе <span class="badge online">online</span>) или 0 (при других статусах) * **Каналов** фактическое количество каналов в плейлисте (только при статусе <span class="badge online">online</span>) или 0 (при других статусах)
* **Ссылка для ТВ** -- [короткая ссылка](details.md#ссылка-для-тв), которую можно использовать для [подключения плейлиста](../common/connect.md). * **Ссылка для ТВ** [короткая ссылка](details.md#ссылка-для-тв), которую можно использовать для [подключения плейлиста](../common/connect.md).
В зависимости от ширины экрана, для экономии места может быть скрыто описание с иконками возможностей и короткая ссылка. В зависимости от ширины экрана, для экономии места может быть скрыто описание с иконками возможностей и короткая ссылка.

View File

@@ -9,7 +9,7 @@ tags: ["плееры"]
В списке ниже только те плееры, которые широко известны и популярны у зрителей IPTV, а также рекомендуются специализированными сайтами. В списке ниже только те плееры, которые широко известны и популярны у зрителей IPTV, а также рекомендуются специализированными сайтами.
Некоторые из них помечены значком :thumbsup: -- значит, он уже зарекомендовал себя как стабильный и удобный, с ним меньше всего хлопот. Некоторые из них помечены значком :thumbsup: значит, он уже зарекомендовал себя как стабильный и удобный, с ним меньше всего хлопот.
Список для удобства разбит по платформам и ОС. Список для удобства разбит по платформам и ОС.
Обращайся к содержанию справа для быстрой навигации. Обращайся к содержанию справа для быстрой навигации.

View File

@@ -7,7 +7,7 @@ tags: ["статусы", "плейлисты"]
Есть некоторые критерии, по которым плейлисты отбираются в проект: Есть некоторые критерии, по которым плейлисты отбираются в проект:
* Прежде всего -- каналы РФ и бывшего СНГ, но не только они * Прежде всего каналы РФ и бывшего СНГ, но не только они
* Открытый источник * Открытый источник
* Прямая ссылка на плейлист * Прямая ссылка на плейлист
* Автообновление плейлиста * Автообновление плейлиста

View File

@@ -1,7 +1,6 @@
--- ---
icon: simple/devbox icon: simple/devbox
hide: hide: [toc]
- toc
--- ---
# :simple-devbox: Для разработчиков # :simple-devbox: Для разработчиков

View File

@@ -31,7 +31,7 @@ icon: material/robot-outline
``` ```
telebit http 8080 telebit http 8080
``` ```
где `8080` -- порт локальной машины, на который проброшен порт 80 из контейнера `iptv-nginx`. где `8080` порт локальной машины, на который проброшен порт 80 из контейнера `iptv-nginx`.
Для выключения выполнить: Для выключения выполнить:
``` ```
telebit http telebit http

View File

@@ -6,8 +6,8 @@ icon: material/book-open-page-variant-outline
!!! warning "Актуальность" !!! warning "Актуальность"
Она может отставать от актуальной версии сервиса, его исходных кодов и инфраструктуры. Она может отставать от актуальной версии сервиса, его исходных кодов и инфраструктуры.
Поддерживать документацию в актуальном состоянии -- тоже труд. Поддерживать документацию в актуальном состоянии тоже труд.
Прошу отнестись с пониманием, а лучше -- [помочь делом](support.md#participate). Прошу отнестись с пониманием, а лучше [помочь делом](support.md#participate).
!!! danger "Тем не менее, прошу прочесть её!" !!! danger "Тем не менее, прошу прочесть её!"
Потому что очень часто и мне, и в общий чат поступают одинаковые вопросы, на которые уже просто нет сил отвечать персонально. Потому что очень часто и мне, и в общий чат поступают одинаковые вопросы, на которые уже просто нет сил отвечать персонально.
@@ -22,10 +22,10 @@ icon: material/book-open-page-variant-outline
К твоим услугам: К твоим услугам:
1. в заголовке сайта -- глобальный поиск; 1. в заголовке сайта глобальный поиск;
2. над заголовком страницы -- метки страницы (полный список ниже); 2. над заголовком страницы метки страницы (полный список ниже);
3. слева -- общее содержание; 3. слева общее содержание;
4. справа -- содержание конкретной страницы. 4. справа содержание конкретной страницы.
??? info end "На мобильниках содержание страницы спрятано за этой кнопкой в боковом меню:" ??? info end "На мобильниках содержание страницы спрятано за этой кнопкой в боковом меню:"
![Скриншот бокового меню с мобильной версии](assets/img/mobile-toc-btn.jpg) ![Скриншот бокового меню с мобильной версии](assets/img/mobile-toc-btn.jpg)

View File

@@ -223,7 +223,7 @@ tags: ["сайт", "каналы", "плейлисты", "epg", "плееры",
* ты сам не изменяешь этот *чей-то* файл и не паришься; * ты сам не изменяешь этот *чей-то* файл и не паришься;
* возможно, кто-то за ним следит и периодически обновляет самостоятельно (вручную или как-то автоматически — это не твоя проблема); * возможно, кто-то за ним следит и периодически обновляет самостоятельно (вручную или как-то автоматически — это не твоя проблема);
* возможно, твой плеер сам подтянет плейлист после запуска (чаще всего так и происходит) или по твоей команде (если такая кнопка в нём есть) -- **это и есть автообновление**. * возможно, твой плеер сам подтянет плейлист после запуска (чаще всего так и происходит) или по твоей команде (если такая кнопка в нём есть) **это и есть автообновление**.
В чём минус: этот *кто-то* по своим причинам может удалить твой любимый канал или вообще плейлист, и больше он не подгрузится. В чём минус: этот *кто-то* по своим причинам может удалить твой любимый канал или вообще плейлист, и больше он не подгрузится.

View File

@@ -52,7 +52,7 @@ tags: ["iptvc", "теги", "каналы"]
5. Один канал может быть назван по-разному. 5. Один канал может быть назван по-разному.
Например, `Ю` или `Ю!`, `Россия 1 +5` или `Россия-1`. Например, `Ю` или `Ю!`, `Россия 1 +5` или `Россия-1`.
6. Важно учитывать холдинги. 6. Важно учитывать холдинги.
Например, российские Матч, ТНТ и НТВ имеют множество разных каналов, и тупо искать `^нтв$` -- тупо. Например, российские Матч, ТНТ и НТВ имеют множество разных каналов, и тупо искать `^нтв$` тупо.
7. У всех каналов есть `title`. 7. У всех каналов есть `title`.
Не все каналы имеют `tvg-id`. Не все каналы имеют `tvg-id`.
Некоторые каналы имеют `tvg-name`. Некоторые каналы имеют `tvg-name`.

View File

@@ -1,7 +1,6 @@
--- ---
icon: material/file-code-outline icon: material/file-code-outline
hide: hide: [toc]
- toc
--- ---
# :material-file-code-outline: Форматы файлов # :material-file-code-outline: Форматы файлов
@@ -20,5 +19,5 @@ hide:
- [:material-playlist-play: Формат файлов `*.m3u` (`*.m3u8`)](m3u.md) - [:material-playlist-play: Формат файлов `*.m3u` (`*.m3u8`)](m3u.md)
--- ---
Плейлист -- это вообще что? Плейлист это вообще что?
</div> </div>

View File

@@ -59,7 +59,7 @@ http://example.com/play-am.m3u8
Название группы, к которой относится контент (звуковая дорожка или канал). Название группы, к которой относится контент (звуковая дорожка или канал).
Указывается в формате `#EXTGRP:XXX`, где: `XXX` -- название группы. Указывается в формате `#EXTGRP:XXX`, где: `XXX` название группы.
<a id="EXTINF"></a> <a id="EXTINF"></a>
### Директива `#EXTINF` ### Директива `#EXTINF`
@@ -67,9 +67,9 @@ http://example.com/play-am.m3u8
Описывает контент (звуковую дорожку или канал). Описывает контент (звуковую дорожку или канал).
Указывается в формате `#EXTINF:XXX YYY,ZZZ`, где: Указывается в формате `#EXTINF:XXX YYY,ZZZ`, где:
* `XXX` -- длительность в секундах (обязательно, но может быть `-1` или `0`); * `XXX` длительность в секундах (обязательно, но может быть `-1` или `0`);
* `YYY` -- атрибуты (см. ниже); * `YYY` атрибуты (см. ниже);
* `ZZZ` -- название контента; * `ZZZ` название контента;
<a id="tvg-shift"></a> <a id="tvg-shift"></a>
#### Атрибут `tvg-shift` #### Атрибут `tvg-shift`
@@ -132,8 +132,8 @@ Cмещение телепрограммы в часах относительн
Директив может быть множество для одной дорожки (канала). Директив может быть множество для одной дорожки (канала).
Указывается в формате `#EXTVLCOPT:XXX` или `#EXTVLCOPT--XXX=YYY`, где: Указывается в формате `#EXTVLCOPT:XXX` или `#EXTVLCOPT--XXX=YYY`, где:
* `XXX` -- параметр командной строки VLC Player ([полный список](https://wiki.videolan.org/VLC_command-line_help/)); * `XXX` параметр командной строки VLC Player ([полный список](https://wiki.videolan.org/VLC_command-line_help/));
* `YYY` -- значения параметра. * `YYY` значения параметра.
## Дополнительные материалы ## Дополнительные материалы

View File

@@ -30,19 +30,19 @@ icon: material/home
## Основные принципы проекта ## Основные принципы проекта
1. Проект должен быть публичен и бесплатен для всех 1. Проект должен быть публичен и бесплатен для всех.
2. Проект не должен нарушать права третьих лиц 2. Проект не должен нарушать права третьих лиц.
3. Весь исходный код проекта должен быть открыт и распространяться под MIT-лицензией 3. Весь исходный код проекта должен быть открыт и распространяться под MIT-лицензией.
## Для чего предназначен сервис ## Для чего предназначен сервис
1. Для хранения ссылок на сторонние плейлисты 1. Для хранения ссылок на сторонние плейлисты.
2. Для периодической проверки доступности плейлистов и их каналов 2. Для периодической проверки доступности плейлистов и их каналов.
3. Для кратковременного хранения результатов проверок и их публикации (в человекочитаемом и машиночитаемом виде) 3. Для кратковременного хранения результатов проверок и их публикации (в человекочитаемом и машиночитаемом виде).
4. Для категоризации плейлистов и их каналов с помощью тегов 4. Для категоризации плейлистов и их каналов с помощью тегов.
5. Для предоставления коротких ссылок на плейлисты (для удобства ввода с пульта) 5. Для предоставления коротких ссылок на плейлисты (для удобства ввода с пульта).
6. Для переадресации с короткого адреса плейлиста на исходный 6. Для переадресации с короткого адреса плейлиста на исходный.
7. Для публикации общей информации о каналах (название, логотип) 7. Для публикации общей информации о каналах (название, логотип).
## Для чего НЕ предназначен сервис ## Для чего НЕ предназначен сервис

View File

@@ -21,7 +21,4 @@ tags: ["iptvc", "переменные окружения"]
| `CACHE_USERNAME` | string | `""` | Логин пользователя в СУБД | | `CACHE_USERNAME` | string | `""` | Логин пользователя в СУБД |
| `CACHE_PASSWORD` | string | `""` | Пароль пользователя в СУБД | | `CACHE_PASSWORD` | string | `""` | Пароль пользователя в СУБД |
| `CACHE_DB` | uint | `0` | Номер БД в СУБД для кэша | | `CACHE_DB` | uint | `0` | Номер БД в СУБД для кэша |
| `CACHE_TTL` | unit | `1800` | ВРемя жизни ключей кэша в секундах | | `CACHE_TTL` | unit | `1800` | Время жизни ключей кэша в секундах |

View File

@@ -1,26 +0,0 @@
---
icon: material/cog-sync-outline
tags: ["iptvc", "теги"]
---
# :material-cog-sync-outline: Как работает iptvc
Это консольная программа, которая проверяет плейлисты и присваивает каналам [теги](../formats/channels.md).
У неё нет графического интерфейса.
Принцип её работы очень простой:
1. Получить плейлист по ссылке.
2. Полученный плейлист распарсить:
обрабатывается полученный текст в формате [m3u](../formats/m3u.md), из него вычленется информация о каналах и их группировке.
3. Каждый найденный канал проверить:
получить информацию по ссылке (первый 1 КБ данных) и принять решение -- работает ли канал технически или нет.
4. Каждому каналу [присвоить теги](../formats/channels.md#доступные-теги).
Во время работы программа пишет лог проверки плейлиста и каналов в достаточно компактном человекочитаемом виде, а в конце пишет результаты проверок.
При желании, можно включить более подробный вывод, чтобы тщательно следить за ходом проверки в реальном времени, а также вывод результатов в машиночитаемом виде (в формате json).
Подробности см. в разделе [Команда `check`](../iptvc/cli/check.md).

View File

@@ -1,11 +1,18 @@
--- ---
icon: material/check-network icon: material/check-network
hide: hide: [toc]
- toc
--- ---
# :material-check-network: IPTV Checker (iptvc) # :material-check-network: IPTV Checker (iptvc)
Это простая программа для проверки IPTV плейлистов, входящая в состав проекта m3u.su.
Поддерживает проверку как локальных файлов `*.m3u`/`*.m3u8`, так и удалённых плейлистов по прямым ссылкам, с возможностью кеширования результатов и его вывода в различных форматах.
> Программа не предназначена для хранения, воспроизведения или распространения пиратского контента.
Программа не имеет графического интерфейса и работает в терминале.
<div class="grid cards" markdown> <div class="grid cards" markdown>
- [:material-flag-checkered: Быстрый старт](quickstart.md) - [:material-flag-checkered: Быстрый старт](quickstart.md)
@@ -27,3 +34,22 @@ hide:
--- ---
Доступные команды и их аргументы Доступные команды и их аргументы
</div> </div>
## :material-cog-sync-outline: Как работает iptvc
Принцип её работы очень простой:
1. Получить плейлист по ссылке.
2. Полученный плейлист распарсить:
обрабатывается полученный текст в формате [m3u](../formats/m3u.md), из него вычленется информация о каналах и их группировке.
3. Каждый найденный канал проверить:
получить информацию по ссылке и принять решение — работает ли канал (технически) или нет.
4. Если необходимо, каждому каналу [присвоить теги](../formats/channels.md#доступные-теги) согласно [правилам](../formats/channels.md).
5. Если необходимо, закешировать результаты проверок.
Во время работы программа пишет лог проверки плейлиста и каналов в достаточно компактном человекочитаемом виде, а в конце пишет результаты проверок.
При желании, можно включить более подробный вывод, чтобы тщательно следить за ходом проверки в реальном времени, а также вывод результатов в машиночитаемом виде (в формате json).
Подробности см. в разделе [Команда `check`](../iptvc/commands/check.md).

View File

@@ -5,21 +5,26 @@ tags: ["iptvc"]
# :material-flag-checkered: Быстрый старт # :material-flag-checkered: Быстрый старт
Допустим, что программа скачана и распакована в любую директорию.
## Проверить плейлист по прямой ссылке ## Проверить плейлист по прямой ссылке
``` ```
./iptvc check -u https://example.com/pls.m3u
./iptvc check --url https://example.com/pls.m3u ./iptvc check --url https://example.com/pls.m3u
``` ```
## Проверить файл плейлист с диска ## Проверить файл плейлист с диска
``` ```
./iptvc check -f /home/user/pls.m3u
./iptvc check --file /home/user/pls.m3u ./iptvc check --file /home/user/pls.m3u
``` ```
## Проверить плейлист по короткому коду из [`playlists.ini`](../formats/playlists.md) ## Проверить плейлист по короткому коду из [`playlists.ini`](../formats/playlists.md)
``` ```
./iptvc check -c X
./iptvc check --code X ./iptvc check --code X
``` ```
@@ -28,7 +33,7 @@ tags: ["iptvc"]
Если файл лежит в другой директории, то можно явно указать путь к нему: Если файл лежит в другой директории, то можно явно указать путь к нему:
``` ```
./iptvc check --code X --ini /home/user/playlists.ini ./iptvc check --ini /home/user/playlists.ini --code X
``` ```
Если ini-файл не будет найден, программа предупредит об этом. Если ini-файл не будет найден, программа предупредит об этом.
@@ -61,7 +66,7 @@ tags: ["iptvc"]
В этом примере (построчно): В этом примере (построчно):
* вызывать команду проверки; * вызвать команду проверки;
* взять список плейлистов из файла `/home/user/p.ini`; * взять список плейлистов из файла `/home/user/p.ini`;
* применить правила присвоения тегов из файла `/home/user/c.json`; * применить правила присвоения тегов из файла `/home/user/c.json`;
* проверить плейлист с кодом `Y` из ini-файла; * проверить плейлист с кодом `Y` из ini-файла;
@@ -73,7 +78,7 @@ tags: ["iptvc"]
Переданные плейлисты будут обработаны в следующем порядке: Переданные плейлисты будут обработаны в следующем порядке:
1. локальные файлы плейлистов; 1. локальные файлы;
2. плейлисты по ссылкам; 2. по ссылкам;
3. плейлисты по кодам из ini-файла. 3. по кодам из ini-файла.

View File

@@ -8,7 +8,7 @@ icon: material/hand-heart-outline
При этом, проект не планировался как монетизируемый и до сих пор не принёс ни рубля прибыли. При этом, проект не планировался как монетизируемый и до сих пор не принёс ни рубля прибыли.
Если у вас есть желание помочь проекту, ниже перечислены минимально доступные тебе способы -- от самых простых способов к более сложным. Если у вас есть желание помочь проекту, ниже перечислены минимально доступные тебе способы от самых простых способов к более сложным.
## Рассказать публично ## Рассказать публично
@@ -22,8 +22,8 @@ icon: material/hand-heart-outline
У проекта есть два публичных ресурса для прямой связи с пользователями. У проекта есть два публичных ресурса для прямой связи с пользователями.
Там можно ставить **платные реакции** к постам и/или **дарить голоса** (бусты): Там можно ставить **платные реакции** к постам и/или **дарить голоса** (бусты):
* канал: [@iptv_aggregator](https://t.me/iptv_aggregator) ([boost](https://t.me/iptv_aggregator?boost)) -- в нём новости о проекте (общие объявления и проведённые доработки); * канал: [@iptv_aggregator](https://t.me/iptv_aggregator) ([boost](https://t.me/iptv_aggregator?boost)) в нём новости о проекте (общие объявления и проведённые доработки);
* чат: [@iptv_aggregator_chat](https://t.me/iptv_aggregator_chat) ([boost](https://t.me/iptv_aggregator_chat?boost)) -- комментарии к каналу, общение по теме проекта и IPTV. * чат: [@iptv_aggregator_chat](https://t.me/iptv_aggregator_chat) ([boost](https://t.me/iptv_aggregator_chat?boost)) комментарии к каналу, общение по теме проекта и IPTV.
Голоса открывают новые возможности для каналов и групп. Голоса открывают новые возможности для каналов и групп.
@@ -57,7 +57,7 @@ icon: material/hand-heart-outline
Любое ПО неидеально, как и документация к нему. Любое ПО неидеально, как и документация к нему.
Если вы нашли ошибку, опечатку, неожиданное поведение ПО или есть предложение по улучшению -- можете создать задачу в соответствующем репозитории организации. Если вы нашли ошибку, опечатку, неожиданное поведение ПО или есть предложение по улучшению можете создать задачу в соответствующем репозитории организации.
### Прислать изменения ### Прислать изменения

View File

@@ -29,13 +29,13 @@ tags: ["telegram"]
Держи чеклист: Держи чеклист:
1. **Найди ответ в [FAQ](../faq.md)** 1. **Найди ответ в [FAQ](../faq.md)**
2. Если не нашёл ответ -- прочти остальное 2. Если не нашёл ответ прочти остальное
3. Если не нашёл ответ и это проблема: 3. Если не нашёл ответ и это проблема:
* опиши всю ситуацию -- сухо и по существу, в чём проблема, чего хочешь и ожидаешь; * опиши всю ситуацию сухо и по существу, в чём проблема, чего хочешь и ожидаешь;
* если вопрос связан с плейлистом из сервиса -- приложи его код и ссылку, которую указываешь в плеере; * если вопрос связан с плейлистом из сервиса приложи его код и ссылку, которую указываешь в плеере;
* если вопрос связан с другим плейлистом -- приложи его ссылку; * если вопрос связан с другим плейлистом приложи его ссылку;
* если вопрос связан с плеером -- укажи хотя бы его название; * если вопрос связан с плеером укажи хотя бы его название;
* если есть возможность, приложи скриншот или чёткое фото -- чтобы можно было разглядеть проблему и подсказать решение. * если есть возможность, приложи скриншот или чёткое фото чтобы можно было разглядеть проблему и подсказать решение.
!!! info "Скорее всего, это надо только тебе" !!! info "Скорее всего, это надо только тебе"
Чем больше ты предоставишь полезной информации, тем лучше. Чем больше ты предоставишь полезной информации, тем лучше.

View File

@@ -1,7 +1,6 @@
--- ---
icon: simple/telegram icon: simple/telegram
hide: hide: [toc]
- toc
--- ---
# :simple-telegram: Ресурсы в Telegram # :simple-telegram: Ресурсы в Telegram