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

Скрипты для Icecast

 

6245
Тарас @tarasian666
установить кодировку в базе latin_swedish_ci
но прийдется все ровно наново ее "заполнять"

81
MonoLog @MonoLog
Тыкните пальцем хоть на 1 внятный скрипт который выводит только общее количество слушателей с нескольких маунтов.

Отредактировано MonoLog - 17.12.2010
6245
3
mxneo @mxneo
[size=24]**********[/size]

Отредактировано mxneo - 18.12.2010
221
Дмитрий @ElectroNik
Перечитал всю тему и так не понял, как сделать что бы не считало статистику с маунта который недоступен и не выводило ошибку о его недоступности.
Есть вот такой скрипт у меня:
<?PHP
$data = file_get_contents('http://сайт.ру:8000/status.xsl?mount=/e-fm256');
$data2 = file_get_contents('http://сайт.ру:8000/status.xsl?mount=/live');
$data3 = file_get_contents('http://сайт.ру:8000/status.xsl?mount=/e-fm');
$data4 = file_get_contents('http://сайт.ру:8000/status.xsl?mount=/e-fm64');
$data5 = file_get_contents('http://сайт.ру:8000/status.xsl?mount=/electromaniacs');
$data6 = file_get_contents('http://сайт.ру:9000/status.xsl?mount=/RadioElectroManiacs');

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);
}
//========Маунт-1============//
$data = iconv("utf-8", "cp1251", $data);
$Current_listeners = antara($data, "Current Listeners:</td>\n<td class=\"streamdata\">","</td>");
$Peak_listeners = antara($data, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");;
//========Маунт-2============//
$Current_listeners2 = antara($data2, "Current Listeners:</td>\n<td class=\"streamdata\">","</td>");
$Peak_listeners2 = antara($data2, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");
//========Маунт-3============//
$Current_listeners3 = antara($data3, "Current Listeners:</td>\n<td class=\"streamdata\">","</td>");
$Peak_listeners3 = antara($data3, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");
//========Маунт-4============//
$Current_listeners4 = antara($data4, "Current Listeners:</td>\n<td class=\"streamdata\">","</td>");
$Peak_listeners4 = antara($data4, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");
//========Маунт-5============//
$Current_listeners5 = antara($data5, "Current Listeners:</td>\n<td class=\"streamdata\">","</td>");
$Peak_listeners5 = antara($data5, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");
//========Маунт-6============//
$Current_listeners6 = antara($data6, "Current Listeners:</td>\n<td class=\"streamdata\">","</td>");
$Peak_listeners6 = antara($data6, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");
//======Общий подсчёт слушателей=======//
$Curr_listens=$Current_listeners+$Current_listeners2+$Current_listeners3+$Current_listeners4+$Current_listeners5+$Current_listeners6;
$Peak_listens=$Peak_listeners2+$Peak_listeners3+$Peak_listeners4;

$staylst=$Curr_listens+1;
echo 'Сейчас слушает: '.$Curr_listens.' Максимум слушало: '.$Peak_listens.'
';
?>

Заранее благодарен

303
Сергей @Sergei
как исправить скрипт что бы в нем не обрезалось название песни если там есть запятая? вот например в этом скрипте
<?php

function get_title ($mount){
$r=fopen($mount,'r');
$text=fread($r,2000);
fclose($r);
$mass=explode(",", $text);
return $mass [16];
}
$mount1 = "ссылка на status2xsl первого маунта";
$mount2 = "--//-- второго --//--";
$mount3 = "--//-- третьего --//--";

if(get_title($mount1) !='')
{
echo get_title($mount1);
}
elseif(get_title($mount2) !='')
{
echo get_title($mount2);
}
else
{
echo get_title($mount3);
}
?>

4151
Дмитрий @Pioner
В общем уважаемые, помогите так сказать, перелопатил весь форум, но так и не добился нужного результата: А именно того, как вывести аватарку ведущего с помощью пхп скрипта. Покопавшись ********** Я понял, что не фига не получается
Взяв кусок этого скрипта:
if($description == "тут ни")
{
echo "<img src='адрес картинки'>";
}

Прилепил его сюда:
<?php
$fl = file_get_contents('http://site.ru:port/status.xsl?mount=/maunt');

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);
}
$stream = antara($fl,"<td>Stream Title:</td>\n<td class=\"streamdata\">","</td>");

$description = antara($fl, "<td>Stream Description:</td>\n<td class=\"streamdata\">", "</td>");

$listeners = antara($fl, "<td>Current Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$song = antara($fl, "<td>Current Song:</td>\n<td class=\"streamdata\">", "</td>");
if($stream != ''){
echo "Описание: $description ";}
else echo "Нет потока";
?>

В итоге получилось нечто:
<?php
$fl = file_get_contents('http://site.ru:port/status.xsl?mount=/maunt');

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);
}
$stream = antara($fl,"<td>Stream Title:</td>\n<td class=\"streamdata\">","</td>");

$description == "тут ник"){
echo "<img src='адрес картинки'>";
}
= antara ($fl, "<td>Stream Description:</td>\n<td class=\"streamdata\">", "</td>");

$listeners = antara($fl, "<td>Current Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$song = antara($fl, "<td>Current Song:</td>\n<td class=\"streamdata\">", "</td>");
if($stream != ''){
echo "Описание: $description ";}
else echo "Нет потока";
?>

В итоге не фига не работает, мож кто подскажет, как заставить эту беду работать.

Отредактировано Pioner - 21.01.2011
303
Сергей @Sergei
у меня вот так работает: создал файл dj.php и запихал туда этот код
<?php
$fl = file_get_contents('http://site.ru:port/status.xsl?mount=/maunt');
/*
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);
}*/
$stream = antara($fl,"<td>Stream Title:</td>\n<td class=\"streamdata\">","</td>");

$description = antara($fl, "<td>Stream Description:</td>\n<td class=\"streamdata\">", "</td>");

$listeners = antara($fl, "<td>Current Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$song = antara($fl, "<td>Current Song:</td>\n<td class=\"streamdata\">", "</td>");
if($stream != '')
include_once "test.php";
else echo "Нет потока";
?>
а вот код который запихал в test.php
<?php
if($description == "ник который в сэме написал")
{
echo "<img src='http://картинка'> <b> имя</b>";
}
else
if($description == "Default description")
{
echo "<img src='http://картинка нонстопа'>";
}
else echo "Нет потока";
?>
потом в нужном мне месте вставил include_once "dj.php";

Отредактировано Sergei - 21.01.2011
4151
Дмитрий @Pioner
Sergei пишет:

у меня вот так работает: создал файл dj.php и запихал туда этот код
<?php
$fl = file_get_contents('http://site.ru:port/status.xsl?mount=/maunt');
/*
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);
}*/
$stream = antara($fl,"<td>Stream Title:</td>\n<td class=\"streamdata\">","</td>");

$description = antara($fl, "<td>Stream Description:</td>\n<td class=\"streamdata\">", "</td>");

$listeners = antara($fl, "<td>Current Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$song = antara($fl, "<td>Current Song:</td>\n<td class=\"streamdata\">", "</td>");
if($stream != '')
include_once "test.php";
else echo "Нет потока";
?>
а вот код который запихал в test.php
<?php
if($description == "ник который в сэме написал")
{
echo "<img src='http://картинка'> <b> имя</b>";
}
else
if($description == "Default description")
{
echo "<img src='http://картинка нонстопа'>";
}
else echo "Нет потока";
?>
потом в нужном мне месте вставил include_once "dj.php";

Ну у тебя то может и работает, но у меня в файле dj php выбивает Fatal error: Call to undefined function antara() in /home/site.ru/dj.php on line 12
Не пойму где ошибка)

833
metra52 @metra52
он не знает или не понимает функцию antara

4151
Дмитрий @Pioner
Спасибо, вот перелопатил форум, помню где-то видел этот рабочий скрипт, но не помню, где может кто подскажет? А то старчески найти не могу)

6245
Тарас @tarasian666
у Сергея функция antara задекларирована раньше, вот потому она и закоментирована, раскоментируйте и заработает

303
Сергей @Sergei
metra52 пишет:

он не знает или не понимает функцию antara

я не только не знаю эту функцию но И не понимаю))) я нахожу скрипты а потом пытаюсь переделать их под себя методом тыка

833
metra52 @metra52
сделал так и все робит)
<?php
$fl = file_get_contents('http://188.40.124.23:8254/?mount=/ices');
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);
}
$stream = antara($fl,"<td>Stream Title:</td>\n<td class=\"streamdata\">","</td>");

$description = antara($fl, "<td>Stream Description:</td>\n<td class=\"streamdata\">", "</td>");

$listeners = antara($fl, "<td>Current Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$max = antara($fl, "<td>Peak Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$song = antara($fl, "<td>Current Song:</td>\n<td class=\"streamdata\">", "</td>");
switch ($_GET[tip]) {
case "title":
echo $stream;
break;
case "list":
echo "Слушает - ".$listeners;
break;
case "desk":
echo $description;
break;
case "song":
echo $song;
break;
case "max":
echo "Слушало максимум - ".$max;
break;
case "all":
echo "В эфире - ".$stream."<br>Слушает - ".$listeners."<br>Слушало максимум - ".$max."<br>Играет - ".$song;
break;
}
?>

собственно сдесь сделан отдельный вывод разных данных а так же их общий вывод.
-для вывода трека используем такую схему ********** скрипта?tip=song
-для вывода описания ********** скрипта?tip=desk
-для вывода слушателей ********** скрипта?tip=list
-для вывода названия ********** скрипта?tip=title
-для вывода максимального количества слушателей ********** скрипта?tip=max
-и для вывода всего вместе ********** скрипта?tip=all

Отредактировано metra52 - 21.01.2011
4151
Дмитрий @Pioner
metra52 пишет:

сделал так и все робит)
<?php
$fl = file_get_contents('http://188.40.124.23:8254/?mount=/ices');
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);
}
$stream = antara($fl,"<td>Stream Title:</td>\n<td class=\"streamdata\">","</td>");

$description = antara($fl, "<td>Stream Description:</td>\n<td class=\"streamdata\">", "</td>");

$listeners = antara($fl, "<td>Current Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$max = antara($fl, "<td>Peak Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$song = antara($fl, "<td>Current Song:</td>\n<td class=\"streamdata\">", "</td>");
switch ($_GET[tip]) {
case "title":
echo $stream;
break;
case "list":
echo "Слушает - ".$listeners;
break;
case "desk":
echo $description;
break;
case "song":
echo $song;
break;
case "max":
echo "Слушало максимум - ".$max;
break;
case "all":
echo "В эфире - ".$stream."<br>Слушает - ".$listeners."<br>Слушало максимум - ".$max."<br>Играет - ".$song;
break;
}
?>

собственно сдесь сделан отдельный вывод разных данных а так же их общий вывод.
-для вывода трека используем такую схему ********** скрипта?tip=song
-для вывода описания ********** скрипта?tip=desk
-для вывода слушателей ********** скрипта?tip=list
-для вывода названия ********** скрипта?tip=title
-для вывода максимального количества слушателей ********** скрипта?tip=max
-и для вывода всего вместе ********** скрипта?tip=all

Прям спаситель, спасибо большое пашет как часы, тока вопрос такой: Тут маунт ацес прописан pначит данные берутся с него когда в эфире некого нет, а как сделать чтоб брались с канала ведущих? Ибо каждый раз менять ссылку не катит, может есть скрипт который проверяет доступность канала? Что то типа: Если канал лайв не доступен то показывает из нон стопа Если канал лайв работает то соотвественно с него..Буду ооочень благодарен

Отредактировано Pioner - 21.01.2011
6245
Тарас @tarasian666
перед switch ставим
if ($stream == ""){ $fl = file_get_contents('http://188.40.124.23:8254/?mount=/live');
$stream = antara($fl,"<td>Stream Title:</td>\n<td class=\"streamdata\">","</td>");

$description = antara($fl, "<td>Stream Description:</td>\n<td class=\"streamdata\">", "</td>");

$listeners = antara($fl, "<td>Current Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$max = antara($fl, "<td>Peak Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$song = antara($fl, "<td>Current Song:</td>\n<td class=\"streamdata\">", "</td>");
}

но можно и усовершенствовать

4151
Дмитрий @Pioner
В общем поставил на сайт скрипт Сергея а именно:
<?php
$fl = file_get_contents('http://site.ru:port/status.xsl?mount=/maunt');

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 ($stream == ""){ $fl = file_get_contents('http://site.ru:port/status.xsl?mount=/maunt');');
$stream = antara($fl,"<td>Stream Title:</td>\n<td class=\"streamdata\">","</td>");

$description = antara($fl, "<td>Stream Description:</td>\n<td class=\"streamdata\">", "</td>");

$listeners = antara($fl, "<td>Current Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$song = antara($fl, "<td>Current Song:</td>\n<td class=\"streamdata\">", "</td>");
if($stream != '')
include_once "test.php";
else echo "Нет потока";
И взяв часть скрипта Тараса
Всунул его (обозначил красным) на отрез отказался работать Нужно чтоб картинку с нон стопа выводил если лайв потока нет, а если есть то выводил картинку с потока лайв
вопрос такой: Как его заставить пахать? Чтоб и картинку выводил и работал..С меня огромная благодарочка)

Отредактировано Pioner - 21.01.2011
303
Сергей @Sergei
Pioner пишет:

В общем поставил на сайт скрипт Сергея а именно:
<?php
$fl = file_get_contents('http://site.ru:port/status.xsl?mount=/maunt');

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 ($stream == ""){ $fl = file_get_contents('http://site.ru:port/status.xsl?mount=/maunt');');
$stream = antara($fl,"<td>Stream Title:</td>\n<td class=\"streamdata\">","</td>");

$description = antara($fl, "<td>Stream Description:</td>\n<td class=\"streamdata\">", "</td>");

$listeners = antara($fl, "<td>Current Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$song = antara($fl, "<td>Current Song:</td>\n<td class=\"streamdata\">", "</td>");
if($stream != '')
include_once "test.php";
else echo "Нет потока";
И взяв часть скрипта Тараса
Всунул его (обозначил красным) на отрез отказался работать Нужно чтоб картинку с нон стопа выводил если лайв потока нет, а если есть то выводил картинку с потока лайв
вопрос такой: Как его заставить пахать? Чтоб и картинку выводил и работал..С меня огромная благодарочка)

возьми мой скрипт и там где
include_once "test.php";
else echo "Нет потока";
вместо "нет потока" пропиши картинку и получится так
include_once "test.php";
else echo "<img src='http://картинка нонстопа'>";
а в скрипте что я вначале выложил я ошибся когда в test.php подписал картинка с нонстопа. там должна быть картинка второго диджея

303
Сергей @Sergei
только маунт прописывай основной (через который вещаеш) а когда основной маунт будет отключен то должно выводиться что нет потока а так как для нонстопа хватит и одной картинки то просто достаточно заменить надпись на картинку! но есть только одна проблема... если вдруг у тебя по какой то причине и нанстоп не будет работать то картинка всё равно будет показываться

4151
Дмитрий @Pioner
Sergei пишет:

только маунт прописывай основной (через который вещаеш) а когда основной маунт будет отключен то должно выводиться что нет потока а так как для нонстопа хватит и одной картинки то просто достаточно заменить надпись на картинку! но есть только одна проблема... если вдруг у тебя по какой то причине и нанстоп не будет работать то картинка всё равно будет показываться

Дело то вот в чём прописываю основной маунт, пишет нет потока, на нон стопе же маунт все пашет и картинка и все) Поетому и нужен скрипт который выше)