Compare commits
3 Commits
b93ab57c63
...
3500122334
Author | SHA1 | Date |
---|---|---|
Anthony Axenov | 3500122334 | |
Anthony Axenov | 516b2a56a4 | |
Anthony Axenov | 57919923a2 |
58
index.php
58
index.php
|
@ -8,30 +8,47 @@ $updated_at = date('d.m.Y h:i', filemtime('playlists.ini'));
|
|||
$my_url = $_SERVER['SERVER_NAME'] . '?';
|
||||
$ini = parse_ini_file('playlists.ini', true);
|
||||
|
||||
// получение инфы о плейлисте
|
||||
// get playlist info (ajax)
|
||||
if (!empty($_GET['getinfo'])) {
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, $ini[$_GET['getinfo']]['pls']);
|
||||
$pls_cfg = $ini[$_GET['getinfo']];
|
||||
unset($ini);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
curl_setopt($ch, CURLOPT_HEADER, 1);
|
||||
$response = curl_exec($ch);
|
||||
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
|
||||
$headers = explode("\r\n", substr($response, 0, $header_size));
|
||||
$content = substr($response, $header_size);
|
||||
unset($response);
|
||||
unset($header_size);
|
||||
curl_close($ch);
|
||||
unset($ch);
|
||||
if (empty($pls_cfg)) {
|
||||
die(json_encode([
|
||||
'is_online' => false,
|
||||
'count' => 0,
|
||||
'channels' => [],
|
||||
]));
|
||||
}
|
||||
|
||||
$curl = curl_init();
|
||||
curl_setopt($curl, CURLOPT_URL, $pls_cfg['pls']);
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
||||
curl_setopt($curl, CURLOPT_TIMEOUT, 3);
|
||||
curl_setopt($curl, CURLOPT_HEADER, 1);
|
||||
$response = curl_exec($curl);
|
||||
$headers_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
|
||||
curl_close($curl);
|
||||
if ($response === false) {
|
||||
die(json_encode([
|
||||
'is_online' => false,
|
||||
'count' => '-',
|
||||
'channels' => [],
|
||||
]));
|
||||
}
|
||||
|
||||
$headers = array_unique(explode("\r\n", substr($response, 0, $headers_size)));
|
||||
$pls_content = substr($response, $headers_size);
|
||||
unset($response, $headers_size, $curl);
|
||||
|
||||
$matches = [];
|
||||
preg_match_all("/^#EXTINF:-?[\d](?:(\s?url-tvg=\".*\")?(\stvg-logo=\".*\")?(\stvg-name=\".*\")?(\stvg-id=\".*\")?(\sgroup-title=\".*\")?)\s?,\s?(.*)/m", $content, $matches);
|
||||
unset($content);
|
||||
$channels = $matches[5];
|
||||
unset($matches);
|
||||
$is_online = is_array($headers) && !empty($headers) && strpos($headers[0], ' 200') !== false;
|
||||
// preg_match_all("/^#EXTINF:-?[\d](?:(\s?url-tvg=\".*\")?(\stvg-logo=\".*\")?(\stvg-name=\".*\")?(\stvg-id=\".*\")?(\sgroup-title=\".*\")?)\s?,\s?(.*)/m", $content, $matches);
|
||||
preg_match_all("/^#EXTINF:-?\d.*,\s*(.*)/m", $pls_content, $matches);
|
||||
$channels = $matches[1];
|
||||
unset($pls_content, $matches);
|
||||
$is_online = !empty($headers) && strpos($headers[0], ' 200') !== false;
|
||||
unset($headers);
|
||||
array_walk($channels, function (&$str) { $str = trim($str); });
|
||||
header("Content-Type: text/plain; charset=utf-8");
|
||||
$channels = array_map('trim', $channels);
|
||||
header("Content-Type: application/json; charset=utf-8");
|
||||
die(json_encode([
|
||||
'is_online' => $is_online,
|
||||
'count' => $is_online ? count($channels) : '-',
|
||||
|
@ -39,6 +56,7 @@ if (!empty($_GET['getinfo'])) {
|
|||
]));
|
||||
}
|
||||
|
||||
// redirect to playlist
|
||||
if (array_intersect(array_keys($_GET), array_keys($ini))) {
|
||||
$id = array_keys($_GET)[0];
|
||||
if (!empty($ini[$id]['redirect'])) {
|
||||
|
|
150
playlists.ini
150
playlists.ini
|
@ -112,126 +112,6 @@ desc=
|
|||
pls='https://pastebin.com/raw/jLaRge54'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[kino6]
|
||||
name='Фильмы 6'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/boeviki.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[kino7]
|
||||
name='Фильмы 7'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/vestern.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[kino8]
|
||||
name='Фильмы 8'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/voenniy.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[kino9]
|
||||
name='Фильмы 9'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/detektiv.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[kino10]
|
||||
name='Фильмы 10'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/dokument.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[kino11]
|
||||
name='Фильмы 11'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/dramy.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[kino12]
|
||||
name='Фильмы 12'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/istoriya.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[kino13]
|
||||
name='Фильмы 13'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/komedii.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[kino14]
|
||||
name='Фильмы 14'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/kriminal.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[kino15]
|
||||
name='Фильмы 15'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/melodrama.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[kino16]
|
||||
name='Фильмы 16'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/mistic.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[kino17]
|
||||
name='Фильмы 17'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/muzikl.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[kino18]
|
||||
name='Фильмы 18'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/prikluch.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[kino19]
|
||||
name='Фильмы 19'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/semeynie.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[kino20]
|
||||
name='Фильмы 20'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/serial.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[kino21]
|
||||
name='Фильмы 21'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/sport.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[kino22]
|
||||
name='Фильмы 22'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/triller.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[kino23]
|
||||
name='Фильмы 23'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/ujasy.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[kino24]
|
||||
name='Фильмы 24'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/fantast.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[kino25]
|
||||
name='Фильмы 25'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/fentezi.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[ru1]
|
||||
name='Русские 1'
|
||||
desc=
|
||||
|
@ -262,24 +142,12 @@ desc=
|
|||
pls='http://iptv.ktkru.ru/playlist.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[ua1]
|
||||
name='Украинские 1'
|
||||
desc=
|
||||
pls='http://ettytv.com/playlist/odessa_tv.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[ua2]
|
||||
name='Украинские 2'
|
||||
desc=
|
||||
pls='https://iptvmaster.ru/ukraine.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[m1]
|
||||
name='Мультфильмы 1'
|
||||
desc=
|
||||
pls='http://46.161.65.30:1682/voskres/pr/mult.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[m2]
|
||||
name='Мультфильмы 2'
|
||||
desc=
|
||||
|
@ -340,24 +208,12 @@ desc=
|
|||
pls='http://lradio.c1.biz/ltradio.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[r2]
|
||||
name='Радио каналы 2'
|
||||
desc=
|
||||
pls='https://cdn.iptvmate.net/index.category.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[r3]
|
||||
name='Радио каналы 3'
|
||||
desc=
|
||||
pls='https://iptvmaster.ru/radio.m3u'
|
||||
src='https://iptvsensei.ru/novye-samoobnovlyaemye-plejlisty'
|
||||
|
||||
[r4]
|
||||
name='Радио каналы 4'
|
||||
desc=
|
||||
pls='http://2kom.tv/channels/radio.m3u'
|
||||
src='https://iptvsensei.ru/samoobnovlyayemyye-pleylisty-iptv'
|
||||
|
||||
[sng1]
|
||||
name='Каналы СНГ 1'
|
||||
desc=
|
||||
|
@ -435,9 +291,3 @@ name='Каналы СНГ 14'
|
|||
desc=
|
||||
pls='http://gorod.tv/iptv.m3u'
|
||||
src='https://iptvsensei.ru/samoobnovlyayemyye-pleylisty-iptv'
|
||||
|
||||
[sng16]
|
||||
name='Каналы СНГ 16'
|
||||
desc=
|
||||
pls='http://ettytv.com/playlist/LLC_Uplink.m3u8'
|
||||
src='https://iptvsensei.ru/samoobnovlyayemyye-pleylisty-iptv'
|
||||
|
|
Loading…
Reference in New Issue