ОсновноеRadiotalkПользовательское
Технологии вещания, софт, скрипты
3   •   Посмотреть все темы

Скрипты для Icecast

 

6245
Тарас @tarasian666
кто в эфире - если прописано в stream title (name) то здесь $stream_n
если прописано в description то здесь $desc

накрутка ? зачем ? но если так то просто умножить $listeners на 7

168
Jon-coool @Jon-coool
Привет всем!
Использую скрипт по выводу 10 проигравших песен.
Но есть проблема как сделать так чтобы когда проиграли 10 песен, 11 появлялась в этом списке а 1 убиралась.

6245
Тарас @tarasian666
конкретнее какой скрипт

168
6245
Тарас @tarasian666
это тот что через last.fm ?

168
Jon-coool @Jon-coool
tarasian666/ Да но я ласт фм не подключал.

223
Игорь @devilben
Jon-coool пишет:

Да но я ласт фм не подключал.

Тот виджет без скробблинга на ласт работать не будет. И да, он так и выводит - 1-й трек исчезает, 11-й появляется.

168
Jon-coool @Jon-coool
Нет он выводит 10 потом заново с первого

6245
Тарас @tarasian666
ну и как он тогда может выводить если last.fm не подключен ?

223
Игорь @devilben
Jon-coool пишет:

Нет он выводит 10 потом заново с первого

Подозреваю что это скрипт который постил здесь Metra, это он так выводит. Но тот скрипт в Last.fm не нуждается и пишет треки в MySQL.

168
Jon-coool @Jon-coool
А как исправить знает кто?
Или дайте тот скрипт который с ласт фм.
Тольок с инструкцией если можно.

Отредактировано Jon-coool - 22.04.2012
8
rattlesneyk @rattlesneyk
Всем привет.
Интересует как сделать автообновление скрипта.

<?php

$data = file_get_contents('http://**********/status.xsl?mount=/live');

function antara($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}

if(antara($data, "Mount started:</td>\n<td class=\"streamdata\">","</td>") ==''){$data = file_get_contents('http://localhost:88/status.xsl?mount=/nonstop');}
$data = iconv("utf-8", "cp1251", $data);
$title = antara($data, "Stream Title:</td>\n<td class=\"streamdata\">","</td>");
$description = antara($data, "Stream Description:</td>\n<td class=\"streamdata\">","</td>");
$content_type = antara($data, "Content Type:</td>\n<td class=\"streamdata\">","</td>");
$Mount_started = antara($data, "Mount started:</td>\n<td class=\"streamdata\">","</td>");
$Bitrate = antara($data, "Bitrate:</td>\n<td class=\"streamdata\">","</td>");
$Current_listeners = antara($data, "Current Listeners:</td>\n<td class=\"streamdata\">","</td>");
$Peak_listeners = antara($data, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");
$Stream_genre = antara($data, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");
$Stream_url = antara($data, "Stream URL:</td>\n<td class=\"streamdata\">","</td>");
$Current_song = antara($data, "Current Song:</td>\n<td class=\"streamdata\">","</td>");
$hellp_curr_listeners = antara($hellp, "Сейчас слушают:</td>\n<td class=\"streamdata\">","</td>");
$hellp_peak_listeners = antara($hellp, "Максимум было</td>\n<td class=\"streamdata\">","</td>");
$Curr_listens=$Current_listeners2+$Current_listeners+$hellp_curr_listeners;
$Peak_listens=$Peak_listeners2+$Peak_listeners+$hellp_peak_listeners;

$staylst=$Curr_listens+1;
echo '<span style="font-size: 15px; font-family:Trebuchet MS, Tahoma, Arial, sans-serif; color:#3090c3"><b>Название радио:</b> '.$title.' <br>
<b>За пультом:</b> '.$description.' <br>
<b>Битрейт:</b> '.$Bitrate.' <br>
<b>Сейчас в эфире:<br /></b> '.$Current_song.' <br>
<br>
<center><input type="button" value="Слушать радио в плеере" onclick="location.href=\'http://************/live.m3u\'" /></center>';
?>



Скрипты выводится на DLE. В блоке с помощью инклуда

Отредактировано rattlesneyk - 24.04.2012
223
Игорь @devilben
rattlesneyk пишет:

Всем привет.
Интересует как сделать автообновление скрипта.

Скрипты выводится на DLE. В блоке с помощью инклуда

Можно с помощью AJAX, в этой теме есть пример. Но это решение не очень хорошее так как может генерировать слишком много запросов к веб-серверу и с каждым разом выполнять php.

1572
KyPIIaToB @KyPIIaToB
Как по мне, так проще использовать обычный мета
<META HTTP-EQUIV="REFRESH" CONTENT="30">

223
Игорь @devilben
KyPIIaToB пишет:

Как по мне, так проще использовать обычный мета
<META HTTP-EQUIV="REFRESH" CONTENT="30">

Конечно проще. Но сути не меняет. Открыли 20 чел. страницу на весь день - и оно рефрешит каждые 3 сек. дергая php-скрипт у всех этих 20-ти чел., а скрипт в свою очередь, долбит запросами Icecast.
Если посещаемость маленькая и ограничений в ресурсах особых нет, то можно конечно хоть аяксом хоть мета рефреш.

6245
Тарас @tarasian666
можно отправлять в сон скрипт что генерирует статистику в файл, но сколько он "проживет" зависит от нескольких факторов )

или же после чтоб сна он запускал сам себя, а время сна = время трека

223
Игорь @devilben
у меня скрипт на php дергает каждые 3 сек. крон, скрипт проверяет если трек сменился то пишет его в статический файл, с файла потом беру аяксом, в том же числе можно кроссдоменно с помощью jsonp

6245
Тарас @tarasian666
насколько я знаю крон может дергать раз в минуту, не чаще

или в кроне куча записей по типу
sleep 3 && sript.php
sleep 6 && script.php
и тд
?

223
Игорь @devilben
tarasian666 пишет:

насколько я знаю крон может дергать раз в минуту, не чаще

или в кроне куча записей по типу
sleep 3 && sript.php
sleep 6 && script.php
и тд
?


Да, так и есть, скрипт выполняется без апача и fast-cgi, потому посчитал таким методом дергать самое то, бесконечный цикл как то не надежно и стремно форк-бомбу получить.

6245
Тарас @tarasian666
да цикл фигово, но вот если в завершении скрипта, так сказать перед смертью пусть сам себя запускает
в крон
* * * * pgrep 'script.php' || script.php

в скрипте в конце exec("sleep $sec && script.php >/dev/null");