0
0
mirror of https://github.com/anthonyaxenov/iptv.git synced 2024-11-22 05:24:45 +00:00
This commit is contained in:
Anthony Axenov 2022-06-03 12:55:44 +08:00
parent 3500122334
commit 954491b9e2
Signed by: anthony
GPG Key ID: EA9EC32FF7CCD4EC

View File

@ -166,33 +166,33 @@ if (array_intersect(array_keys($_GET), array_keys($ini))) {
</div> </div>
<div class="tab-pane fade p-3 pt-5" id="faq" role="tabpanel" aria-labelledby="profile-tab"> <div class="tab-pane fade p-3 pt-5" id="faq" role="tabpanel" aria-labelledby="profile-tab">
<h2>Что здесь происходит?</h2> <h2>Что здесь происходит?</h2>
<p class="mb-5"> <p>
На этой странице собраны ссылки на IPTV-плейлисты, которые находятся в открытом доступе. На этой странице собраны ссылки на IPTV-плейлисты, которые находятся в открытом доступе.
Они отбираются мной вручную и проверяются здесь автоматически. Они отбираются мной вручную и проверяются здесь автоматически.
Поддержкой этих плейлистов занимаются администраторы ресурсов, указанные как источник.
Вопросы работоспособности плейлистов адресуйте тем, кто несёт за них ответственность.
</p> </p>
<p>
<h2>Эти плейлисты бесплатны?</h2> Ресурс <?=$_SERVER['SERVER_NAME']?> не занимается трансляцией видео- и аудиопотоков,
<p class="mb-5">Да, но в любой момент могут перестать таковыми быть.</p> администрированием конечных плейлистов и программ телепередач или хранением всего указанного.
Подобными вопросами занимаются администраторы ресурсов, указанные как источник, и те, с чьих ресурсов
<h2>Как подключить плейлист?</h2> ведётся трансляция.
</p>
<p class="mb-5"> <p class="mb-5">
<a href="https://www.google.com/search?q=%D0%BA%D0%B0%D0%BA%20%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C%20iptv%20%D0%BF%D0%BB%D0%B5%D0%B9%D0%BB%D0%B8%D1%81%D1%82%20%D0%BF%D0%BE%20%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B5"> Ресурс <?=$_SERVER['SERVER_NAME']?> предоставляет только информацию об активности плейлистов, найденных
Добавить в твой IPTV-плеер</a> ссылку из последней колонки. в открытом доступе, и короткие ссылки на них для удобства ввода с пульта на телевизоре.
Вопросы работоспособности плейлистов и каналов адресуйте тем, кто несёт за них ответственность.
</p> </p>
<h2>Что означают статусы плейлистов?</h2> <h2>Что означают статусы плейлистов?</h2>
<ul class="mb-5"> <ul class="mb-5">
<li> <li>
<span class="badge small bg-warning text-dark">?</span> Загрузка данных. <span class="badge small bg-warning text-dark">?</span> Загрузка данных, нужно немного подождать.
</li> </li>
<li> <li>
<span class="badge small text-dark bg-success">online</span> Плейлист активен. Фактически <span class="badge small text-dark bg-success">online</span> Плейлист, возможно, активен.
означает, что удалённый файл успешно скачивается.
</li> </li>
<li> <li>
<span class="badge small text-dark bg-secondary">unknown</span> Состояние неизвестно. Скорее всего, плейлист активен, но получить данные о нём не удалось. <span class="badge small text-dark bg-secondary">unknown</span> Состояние неизвестно.
Возможно, плейлист активен, но корректно его проверить не удалось.
</li> </li>
<li> <li>
<span class="badge small text-dark bg-secondary">timeout</span> Не удалось вовремя проверить плейлист. <span class="badge small text-dark bg-secondary">timeout</span> Не удалось вовремя проверить плейлист.
@ -207,8 +207,9 @@ if (array_intersect(array_keys($_GET), array_keys($ini))) {
<h2>Почему нельзя доверять результатам проверки?</h2> <h2>Почему нельзя доверять результатам проверки?</h2>
<p> <p>
Я не гарантирую корректность информации, которую ты увидишь здесь. Я не гарантирую корректность и актуальность информации, которую ты увидишь здесь.
Рекомендую проверять желаемые плейлисты вручную, ибо нет никаких гарантий: Хотя я и стараюсь улучшать качество проверок, но всё же рекомендую проверять желаемые
плейлисты самостоятельно вручную, ибо нет никаких гарантий:
</p> </p>
<ul class="mb-5"> <ul class="mb-5">
<li> <li>
@ -226,9 +227,44 @@ if (array_intersect(array_keys($_GET), array_keys($ini))) {
</li> </li>
</ul> </ul>
<h2>Эти плейлисты и каналы в них -- бесплатны?</h2>
<p class="mb-5">Возможно. По крайней мере, так утверждают источники.</p>
<h2>Как подключить плейлист?</h2>
<p class="mb-5">
<a href="https://www.google.com/search?q=%D0%BA%D0%B0%D0%BA%20%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C%20iptv%20%D0%BF%D0%BB%D0%B5%D0%B9%D0%BB%D0%B8%D1%81%D1%82%20%D0%BF%D0%BE%20%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B5">
Добавь в свой IPTV-плеер</a> ссылку из последней колонки.
</p>
<h2>Какова гарантия, что я добавлю себе плейлист отсюда и он работать хоть сколько-нибудь долго?</h2>
<p class="mb-5">
Никакова.
Мёртвые плейлисты я периодически вычищаю, реже -- добавляю новые.
ID плейлистов могут меняться, поэтому вполне может произойти внезапная подмена одного другим, однако намеренно я так не делаю.
Если один плейлист переезжает на новый адрес, то я ставлю временное перенаправление со старого ID на новый.
Плюс читай выше про доверие результатам проверки (проблема может быть не на этой стороне).
</p>
<h2>Где взять программу передач (EPG)?</h2>
<ul class="mb-5">
<li><b>https://iptvx.one/viewtopic.php?f=12&t=4</b></li>
<li>https://iptvmaster.ru/epg-for-iptv</li>
<li>https://google.com</li>
</ul>
<h2>Как часто обновляется этот список?</h2>
<p>
Время от времени.
Иногда я захожу сюда и проверяю всё ли на месте, иногда занимаюсь какими-то доработками.
</p>
<p class="mb-5">
Если есть кандидаты на добавление, то следующий пункт для тебя.
</p>
<h2>Как пополнить этот список?</h2> <h2>Как пополнить этот список?</h2>
<p class="mb-5"> <p class="mb-5">
Сделать pull-request в <a href="https://github.com/anthonyaxenov/iptv">репозиторий</a>. Сделать pull-request в <a href="https://github.com/anthonyaxenov/iptv">репозиторий</a>.
Я проверю плейлист и добавлю его в общий список, если всё ок.
</p> </p>
</div> </div>
</div> </div>
@ -243,7 +279,7 @@ if (array_intersect(array_keys($_GET), array_keys($ini))) {
const id = tr.attributes['data-playlist-id'].value const id = tr.attributes['data-playlist-id'].value
const xhr = new XMLHttpRequest() const xhr = new XMLHttpRequest()
xhr.responseType = 'json' xhr.responseType = 'json'
xhr.timeout = 60000 // ms = 1 min xhr.timeout = 5000 // ms = 5 sec
let st_el = tr.querySelector('span.status') let st_el = tr.querySelector('span.status')
xhr.onreadystatechange = () => { xhr.onreadystatechange = () => {
if (xhr.readyState === XMLHttpRequest.DONE) { if (xhr.readyState === XMLHttpRequest.DONE) {