mirror of
https://github.com/anthonyaxenov/iptv.git
synced 2024-11-24 22:34:34 +00:00
Compare commits
2 Commits
1c57f58936
...
b70491e6fb
Author | SHA1 | Date | |
---|---|---|---|
b70491e6fb | |||
c0b7dd9a40 |
@ -1,6 +1,6 @@
|
|||||||
{% extends "template.twig" %}
|
{% extends "template.twig" %}
|
||||||
|
|
||||||
{% block title %}{{ name }} - {{ config('app.title') }}{% endblock %}
|
{% block title %}[{{ id }}] {{ name }} - {{ config('app.title') }}{% endblock %}
|
||||||
|
|
||||||
{% block head %}
|
{% block head %}
|
||||||
<style>
|
<style>
|
||||||
@ -13,7 +13,7 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block header %}
|
{% block header %}
|
||||||
<h2>О плейлисте {{ name }}</h2>
|
<h2>О плейлисте: {{ name }}</h2>
|
||||||
{% if (content.encoding.alert) %}
|
{% if (content.encoding.alert) %}
|
||||||
<div class="alert alert-warning small" role="alert">
|
<div class="alert alert-warning small" role="alert">
|
||||||
Кодировка исходного плейлиста отличается от UTF-8.
|
Кодировка исходного плейлиста отличается от UTF-8.
|
||||||
@ -37,12 +37,12 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-lg-7">
|
||||||
<table class="table table-dark table-hover small">
|
<table class="table table-dark table-hover small mb-lg-5">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="w-25">ID</td>
|
<th class="w-25" scope="row">ID</th>
|
||||||
<td>
|
<td class="text-break">
|
||||||
<code>{{ id }}</code> {% if status.possibleStatus == 'online' %}
|
<code>{{ id }}</code> {% if status.possibleStatus == 'online' %}
|
||||||
<span class="badge small text-dark bg-success">online</span>
|
<span class="badge small text-dark bg-success">online</span>
|
||||||
{% elseif status.possibleStatus == 'offline' %}
|
{% elseif status.possibleStatus == 'offline' %}
|
||||||
@ -51,34 +51,48 @@
|
|||||||
<span class="badge small text-dark bg-warning">timeout</span>
|
<span class="badge small text-dark bg-warning">timeout</span>
|
||||||
{% elseif status.possibleStatus == 'error' %}
|
{% elseif status.possibleStatus == 'error' %}
|
||||||
<span class="badge small text-dark bg-danger">error</span>
|
<span class="badge small text-dark bg-danger">error</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Описание</td>
|
<th scope="row">Описание</th>
|
||||||
<td><p>{{ desc }}</p></td>
|
<td class="text-break"><p>{{ desc }}</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Ccылка для ТВ</b></td>
|
<th scope="row">Ccылка для ТВ</th>
|
||||||
<td><b onclick="prompt('Скопируй адрес плейлиста', '{{ url }}')"
|
<td><b onclick="prompt('Скопируй адрес плейлиста', '{{ url }}')"
|
||||||
data-bs-toggle="tooltip"
|
data-bs-toggle="tooltip"
|
||||||
data-bs-placement="top"
|
data-bs-placement="top"
|
||||||
title="Нажми на ссылку, чтобы скопировать её в буфер обмена"
|
title="Нажми на ссылку, чтобы скопировать её в буфер обмена"
|
||||||
class="font-monospace cursor-pointer">{{ url }}</b></td>
|
class="font-monospace cursor-pointer text-break">{{ url }}</b></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>M3U</td>
|
<th scope="row">M3U</th>
|
||||||
<td>{{ pls }}</td>
|
<td class="text-break">{{ pls }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Источник</td>
|
<th scope="row">Источник</th>
|
||||||
<td>{{ src }}</td>
|
<td class="text-break">{{ src }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
{% if (content.attributes) %}
|
||||||
|
<h4>Дополнительные атрибуты</h4>
|
||||||
|
<table class="table table-dark table-hover small">
|
||||||
|
<tbody>
|
||||||
|
{% for attribute,value in content.attributes %}
|
||||||
|
<tr>
|
||||||
|
<th class="w-25" scope="row">{{ attribute }}</th>
|
||||||
|
<td class="text-break">{{ value }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-6">
|
<div class="col-lg-5">
|
||||||
<h4>Список каналов ({{ content.channelCount ?? 0 }})</h4>
|
<h4>Список каналов ({{ content.channelCount ?? 0 }})</h4>
|
||||||
{% if (content.channelCount > 0) %}
|
{% if (content.channelCount > 0) %}
|
||||||
<div id="chlist">
|
<div id="chlist">
|
||||||
@ -106,7 +120,7 @@
|
|||||||
title="Логотип канала '{{ channel.name }}'"
|
title="Логотип канала '{{ channel.name }}'"
|
||||||
/>
|
/>
|
||||||
</td>
|
</td>
|
||||||
<td class="chname">{{ channel.name }}</td>
|
<td class="chname text-break">{{ channel.name }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@ -16,6 +16,10 @@
|
|||||||
видео/аудио потоков, программ телепередач, плейлистов и их поддержки. Этим занимаются администраторы
|
видео/аудио потоков, программ телепередач, плейлистов и их поддержки. Этим занимаются администраторы
|
||||||
ресурсов, указанные как источник, и те, с чьих ресурсов ведётся трансляция.
|
ресурсов, указанные как источник, и те, с чьих ресурсов ведётся трансляция.
|
||||||
</p>
|
</p>
|
||||||
|
<p>
|
||||||
|
За содержимое плейлистов и их качество отвечают авторы плейлистов. На стороне сервиса управляются сами
|
||||||
|
плейлисты.
|
||||||
|
</p>
|
||||||
<p class="mb-5">
|
<p class="mb-5">
|
||||||
Сервис "{{ config('app.title') }}" ({{ base_url() }}) предоставляет только информацию об активности
|
Сервис "{{ config('app.title') }}" ({{ base_url() }}) предоставляет только информацию об активности
|
||||||
плейлистов, найденных в открытом доступе, и короткие ссылки на них для удобства использования в ПО.
|
плейлистов, найденных в открытом доступе, и короткие ссылки на них для удобства использования в ПО.
|
||||||
@ -24,8 +28,26 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="accordion" id="faq-accordion">
|
<div class="accordion" id="faq-accordion">
|
||||||
<div class="accordion-item bg-dark">
|
<div class="accordion-item bg-dark text-light">
|
||||||
<h2 class="accordion-header bg-dark" id="h-howtouse">
|
<h2 class="accordion-header" id="h-purpose">
|
||||||
|
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#purpose" aria-expanded="false" aria-controls="purpose">
|
||||||
|
Для чего нужен сервис?
|
||||||
|
</button>
|
||||||
|
</h2>
|
||||||
|
<div id="purpose" class="accordion-collapse collapse" aria-labelledby="h-purpose" data-bs-parent="#faq-accordion">
|
||||||
|
<div class="accordion-body">
|
||||||
|
<p>Изначально сервис создавался "для себя", чтобы:</p>
|
||||||
|
<ul>
|
||||||
|
<li>сократить ссылки на сторонние плейлисты и их было проще вводить с пульта;</li>
|
||||||
|
<li>собрать в одном месте наиболее годные плейлисты.</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="accordion-item bg-dark text-light">
|
||||||
|
<h2 class="accordion-header" id="h-howtouse">
|
||||||
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#howtouse" aria-expanded="false" aria-controls="howtouse">
|
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#howtouse" aria-expanded="false" aria-controls="howtouse">
|
||||||
Как пользоваться сервисом?
|
Как пользоваться сервисом?
|
||||||
</button>
|
</button>
|
||||||
@ -42,7 +64,8 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="accordion-item bg-dark">
|
|
||||||
|
<div class="accordion-item bg-dark text-light">
|
||||||
<h2 class="accordion-header bg-dark" id="h-howtoconnect">
|
<h2 class="accordion-header bg-dark" id="h-howtoconnect">
|
||||||
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#howtoconnect" aria-expanded="false" aria-controls="howtoconnect">
|
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#howtoconnect" aria-expanded="false" aria-controls="howtoconnect">
|
||||||
Как подключить плейлист?
|
Как подключить плейлист?
|
||||||
@ -55,17 +78,35 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="accordion-item bg-dark">
|
|
||||||
|
<div class="accordion-item bg-dark text-light">
|
||||||
<h2 class="accordion-header bg-dark" id="h-isitfree">
|
<h2 class="accordion-header bg-dark" id="h-isitfree">
|
||||||
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#isitfree" aria-expanded="false" aria-controls="isitfree">
|
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#isitfree" aria-expanded="false" aria-controls="isitfree">
|
||||||
Эти плейлисты и каналы в них -- бесплатны?
|
Эти плейлисты и каналы в них -- бесплатны?
|
||||||
</button>
|
</button>
|
||||||
</h2>
|
</h2>
|
||||||
<div id="isitfree" class="accordion-collapse collapse" aria-labelledby="h-isitfree" data-bs-parent="#faq-accordion">
|
<div id="isitfree" class="accordion-collapse collapse" aria-labelledby="h-isitfree" data-bs-parent="#faq-accordion">
|
||||||
<p class="accordion-body">Возможно. По крайней мере, так утверждают источники. Но гарантий никаких никто не даёт.</p>
|
<p class="accordion-body">
|
||||||
|
Возможно. По крайней мере, так утверждают источники. Но гарантий никаких никто не даёт.
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="accordion-item bg-dark">
|
|
||||||
|
<div class="accordion-item bg-dark text-light">
|
||||||
|
<h2 class="accordion-header" id="h-logos">
|
||||||
|
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#logos" aria-expanded="false" aria-controls="logos">
|
||||||
|
Откуда берутся логотипы каналов и программы передач?
|
||||||
|
</button>
|
||||||
|
</h2>
|
||||||
|
<div id="logos" class="accordion-collapse collapse" aria-labelledby="h-logos" data-bs-parent="#faq-accordion">
|
||||||
|
<p class="accordion-body">
|
||||||
|
Всё это (не) указывается внутри плейлиста его авторами.
|
||||||
|
Но в некоторых плеерах можно вручную указывать программу передач (см. ниже).
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="accordion-item bg-dark text-light">
|
||||||
<h2 class="accordion-header bg-dark" id="h-which">
|
<h2 class="accordion-header bg-dark" id="h-which">
|
||||||
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#which" aria-expanded="false" aria-controls="which">
|
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#which" aria-expanded="false" aria-controls="which">
|
||||||
Какие плейлисты попадают сюда?
|
Какие плейлисты попадают сюда?
|
||||||
@ -88,7 +129,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="accordion-item bg-dark">
|
|
||||||
|
<div class="accordion-item bg-dark text-light">
|
||||||
<h2 class="accordion-header bg-dark" id="h-statuses">
|
<h2 class="accordion-header bg-dark" id="h-statuses">
|
||||||
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#statuses" aria-expanded="false" aria-controls="statuses">
|
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#statuses" aria-expanded="false" aria-controls="statuses">
|
||||||
Что означают статусы плейлистов?
|
Что означают статусы плейлистов?
|
||||||
@ -123,7 +165,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="accordion-item bg-dark">
|
|
||||||
|
<div class="accordion-item bg-dark text-light">
|
||||||
<h2 class="accordion-header bg-dark" id="h-donttrust">
|
<h2 class="accordion-header bg-dark" id="h-donttrust">
|
||||||
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#donttrust" aria-expanded="false" aria-controls="donttrust">
|
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#donttrust" aria-expanded="false" aria-controls="donttrust">
|
||||||
Почему нельзя доверять результатам проверки?
|
Почему нельзя доверять результатам проверки?
|
||||||
@ -145,7 +188,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="accordion-item bg-dark">
|
|
||||||
|
<div class="accordion-item bg-dark text-light">
|
||||||
<h2 class="accordion-header bg-dark" id="h-guarantee">
|
<h2 class="accordion-header bg-dark" id="h-guarantee">
|
||||||
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#guarantee" aria-expanded="false" aria-controls="guarantee">
|
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#guarantee" aria-expanded="false" aria-controls="guarantee">
|
||||||
Какова гарантия, что я добавлю себе плейлист отсюда и он работать хоть сколько-нибудь долго?
|
Какова гарантия, что я добавлю себе плейлист отсюда и он работать хоть сколько-нибудь долго?
|
||||||
@ -163,7 +207,19 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="accordion-item bg-dark">
|
|
||||||
|
<div class="accordion-item bg-dark text-light">
|
||||||
|
<h2 class="accordion-header" id="h-panic">
|
||||||
|
<button class="accordion-button text-warning bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#panic" aria-expanded="false" aria-controls="panic">
|
||||||
|
У меня перестал работать/исчез любимый канал/плейлист! Нет лого канала/программы передач!
|
||||||
|
</button>
|
||||||
|
</h2>
|
||||||
|
<div id="panic" class="accordion-collapse collapse" aria-labelledby="h-panic" data-bs-parent="#faq-accordion">
|
||||||
|
<p class="accordion-body">Ну штош ¯\_(ツ)_/¯</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="accordion-item bg-dark text-light">
|
||||||
<h2 class="accordion-header bg-dark" id="h-epg">
|
<h2 class="accordion-header bg-dark" id="h-epg">
|
||||||
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#epg" aria-expanded="false" aria-controls="epg">
|
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#epg" aria-expanded="false" aria-controls="epg">
|
||||||
Где взять программу передач (EPG)?
|
Где взять программу передач (EPG)?
|
||||||
@ -179,10 +235,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="accordion-item bg-dark">
|
|
||||||
|
<div class="accordion-item bg-dark text-light">
|
||||||
<h2 class="accordion-header bg-dark" id="h-howoftenlist">
|
<h2 class="accordion-header bg-dark" id="h-howoftenlist">
|
||||||
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#howoftenlist" aria-expanded="false" aria-controls="howoftenlist">
|
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#howoftenlist" aria-expanded="false" aria-controls="howoftenlist">
|
||||||
Как часто обновляется этот список?
|
Как часто обновляется список плейлистов?
|
||||||
</button>
|
</button>
|
||||||
</h2>
|
</h2>
|
||||||
<div id="howoftenlist" class="accordion-collapse collapse" aria-labelledby="h-howoftenlist" data-bs-parent="#faq-accordion">
|
<div id="howoftenlist" class="accordion-collapse collapse" aria-labelledby="h-howoftenlist" data-bs-parent="#faq-accordion">
|
||||||
@ -193,7 +250,8 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="accordion-item bg-dark">
|
|
||||||
|
<div class="accordion-item bg-dark text-light">
|
||||||
<h2 class="accordion-header bg-dark" id="h-howoftench">
|
<h2 class="accordion-header bg-dark" id="h-howoftench">
|
||||||
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#howoftench" aria-expanded="false" aria-controls="howoftench">
|
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#howoftench" aria-expanded="false" aria-controls="howoftench">
|
||||||
Как часто обновляется содержимое плейлистов?
|
Как часто обновляется содержимое плейлистов?
|
||||||
@ -205,7 +263,8 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="accordion-item bg-dark">
|
|
||||||
|
<div class="accordion-item bg-dark text-light">
|
||||||
<h2 class="accordion-header bg-dark" id="h-api">
|
<h2 class="accordion-header bg-dark" id="h-api">
|
||||||
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#api" aria-expanded="false" aria-controls="api">
|
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#api" aria-expanded="false" aria-controls="api">
|
||||||
Есть ли API? Как им пользоваться?
|
Есть ли API? Как им пользоваться?
|
||||||
@ -217,7 +276,8 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="accordion-item bg-dark">
|
|
||||||
|
<div class="accordion-item bg-dark text-light">
|
||||||
<h2 class="accordion-header bg-dark" id="h-howtoadd">
|
<h2 class="accordion-header bg-dark" id="h-howtoadd">
|
||||||
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#howtoadd" aria-expanded="false" aria-controls="howtoadd">
|
<button class="accordion-button text-light bg-dark" type="button" data-bs-toggle="collapse" data-bs-target="#howtoadd" aria-expanded="false" aria-controls="howtoadd">
|
||||||
Как пополнить этот список?
|
Как пополнить этот список?
|
||||||
@ -230,6 +290,7 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -55,7 +55,7 @@
|
|||||||
</nav>
|
</nav>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<section class="container-fluid h-100 pt-lg-3 px-0 pb-0">
|
<section class="container h-100 pt-lg-3 px-0 pb-0">
|
||||||
{% block header %}{% endblock %}
|
{% block header %}{% endblock %}
|
||||||
{% block content %}{% endblock %}
|
{% block content %}{% endblock %}
|
||||||
</section>
|
</section>
|
||||||
|
Loading…
Reference in New Issue
Block a user