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

Скрипты для Icecast

 

95
Артур @NoExist
Falcon, FortNoxBY Не работает =(

6245
Тарас @tarasian666
aleksanders пишет:

Так вот допустим этот ставлю, что вы дали и работает. А ставлю свой не работает.

Убираю строку
if(antara($data, "Mount started:</td>\n<td class=\"streamdata\">","</td>") ==''){$data = file_get_contents('http://localhost:88/status.xsl?mount=/nonstop');}

показывает нормально. Как только строку эту добавляю, начинает показывать только этот нонстоп.

значит не совпадает строка Mount started:</td>\n<td class=\"streamdata\"> с вашим исходным кодом status.xsl
в kh нет перехода на новую строку, возможно убрав \n заработает
я проверял на trunk где исходный код status.xsl намного красивей и акуратней ))

49
aleksanders @aleksanders
Пробовал отсюда "Mount started:</td>\n<td class=\"streamdata\">" убрать \n и ничего не вышло.
Я так понимаю, что проблема будет с этим кодом $data = file_get_contents('http://127.0.0.1:88/status.xsl?mount=/radio');
т.к. когда отключаешь поток nonstop, то первый поток, который вещает DJ с компа не работает. Белый лист показывает и всё.
А если включить nonstop, то соответственно и показывает нонстоп только. Получается не может считать информацию с первого потока.

112
Юрий @FortNoxBY
А...то же самое и у меня(((.
Сразу не тестировал, а тут сам решил проверить и тоже не хочет брать исполнителя с маунта live.
Убрал \n но всеровно не работает.
kh 31 но файл status.xsl с оригинальной сборки айса
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
<xsl:output omit-xml-declaration="no" method="html" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8/windows-1251" />
<xsl:template match = "/icestats" >
<html>
<head>
<title>Nазвание радио</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0">
<h2>   название радио через пробелы отнес а то текст на картинке получается</h2>
<br />
<!--mount point stats-->
<xsl:for-each select="source">
<xsl:choose>
<xsl:when test="listeners">
<div class="roundcont">
<div class="roundtop">
<img src="/corner_topleft.jpg" class="corner" style="display: none" />
</div>
<div class="newscontent">
<div class="streamheader">
<table cellspacing="0" cellpadding="0">
<colgroup align="left" />
<colgroup align="right" width="300" />
<tr>
<td><h3>Mount Point <xsl:value-of select="@mount" /></h3></td>
<xsl:choose>
<xsl:when test="authenticator">
<td align="right"><a class="auth" href="/auth.xsl">Login</a></td>
</xsl:when>
<xsl:otherwise>
<td align="right"> <a href="{@mount}.m3u">Play</a></td>
</xsl:otherwise>
</xsl:choose>
</tr></table>
</div>
<table border="0" cellpadding="4">
<xsl:if test="server_name">
<tr><td>Stream Title:</td><td class="streamdata"> <xsl:value-of select="server_name" /></td></tr>
</xsl:if>
<xsl:if test="server_description">
<tr><td>Stream Description:</td><td class="streamdata"> <xsl:value-of select="server_description" /></td></tr>
</xsl:if>
<xsl:if test="bitrate">
<tr><td>Bitrate:</td><td class="streamdata"> <xsl:value-of select="bitrate" /></td></tr>
</xsl:if>
<xsl:if test="quality">
<tr><td>Quality:</td><td class="streamdata"> <xsl:value-of select="quality" /></td></tr>
</xsl:if>
<xsl:if test="video_quality">
<tr><td>Video Quality:</td><td class="streamdata"> <xsl:value-of select="video_quality" /></td></tr>
</xsl:if>
<xsl:if test="frame_size">
<tr><td>Framesize:</td><td class="streamdata"> <xsl:value-of select="frame_size" /></td></tr>
</xsl:if>
<xsl:if test="frame_rate">
<tr><td>Framerate:</td><td class="streamdata"> <xsl:value-of select="frame_rate" /></td></tr>
</xsl:if>
<xsl:if test="genre">
<tr><td>Stream Genre:</td><td class="streamdata"> <xsl:value-of select="genre" /></td></tr>
</xsl:if>
<xsl:if test="listeners">
<tr><td>Current Listeners:</td><td class="streamdata"> <xsl:value-of select="listeners" /></td></tr>
</xsl:if>
<xsl:if test="server_url">
<tr><td>Stream URL:</td><td class="streamdata"> <a target="_blank" href="{server_url}"><xsl:value-of select="server_url" /></a></td></tr>
</xsl:if>
<tr><td>Current Song:</td><td class="streamdata">
<xsl:if test="artist"><xsl:value-of select="artist" /> - </xsl:if><xsl:value-of select="title" /></td></tr>
</table>
</div>
<div class="roundbottom">
<img src="/corner_bottomleft.jpg" class="corner" style="display: none" />
</div>
</div>
<br />
<br />
</xsl:when>
<xsl:otherwise>
<h3><xsl:value-of select="@mount" /> - Not Connected</h3>
</xsl:otherwise>
</xsl:choose>

</xsl:for-each>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;


<div class="poster">тут я немного изменил текст <a class="nav" target="_blank" href="вставил свой сайт">имясайта</a></div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

6245
Тарас @tarasian666
проблема не тут $data = file_get_contents('http://127.0.0.1:88/status.xsl?mount=/radio');
а тут antara($data, "Mount started:</td>\n<td class=\"streamdata\">","</td>") ==''

FortNoxBY как видишь в твоем status.xsl даже нет Mount started: делайте выводы и правьте скрипт под себя

112
Юрий @FortNoxBY
Когда добаляю эту строку которой не достает то на сайте пропадает отображение исполнителя и песни

6245
Тарас @tarasian666
facepalm

112
Юрий @FortNoxBY
aleksanders пишет:

Ну вот, вроде сам нахимичил, только почему-то не переходит с потока /radio на поток /nonstop! В чём я сделал ошибку?

<?php

$data = file_get_contents('http://xoiniki.com:88/status.xsl?mount=/radio');

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');}

$Current_song = antara($data, "Current Song:</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 ''.$Current_song.'';
?>

у тебя в коде отсутствует
$Mount_started = antara($data, "Mount started:</td>\n<td class=\"streamdata\">","</td>");

49
aleksanders @aleksanders
Строку добавил
$Mount_started = antara($data, "Mount started:</td>\n<td class=\"streamdata\">","</td>");


Всё равно играет поток /radio а информация с потока /nonstop.

А какая проблема может быть здесь?
antara($data, "Mount started:</td>\n<td class=\"streamdata\">","</td>") ==''

112
Юрий @FortNoxBY
А ты в конфиге айса прописывал?:
<mount>
<mount-name>/live</mount-name>
<charset>CP1251</charset>
<fallback-mount>/nonstop</fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>1</fallback-when-full>
</mount>
<mount>
<mount-name>/nonstop</mount-name>
<charset>CP1251</charset>
</mount>

Твоя страница статуса смущает:

Отредактировано FortNoxBY - 03.02.2012
112
Юрий @FortNoxBY
Да и строки Mount started: нет

112
Юрий @FortNoxBY
Эт скрипт:
<?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 Start:</td>\n<td class=\"streamdata\">","</td>") ==''){$data = file_get_contents('http://ип/status.xsl?mount=/nonstop');}
$data = iconv("utf-8", "cp1251", $data);
$content_type = antara($data, "Content Type:</td>\n<td class=\"streamdata\">","</td>");
$Stream_genre = antara($data, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");
$Current_song = antara($data, "Current Song:</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 '
<br>&nbsp;<b>Сейчас в эфире:</b> '.$Current_song.'
';
?>

Status.xls
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
<xsl:output omit-xml-declaration="no" method="html" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
<xsl:template match = "/icestats" >
<html>
<head>
<title>название</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0">
<h2>   Сайт</h2>
<br />
<!--mount point stats-->
<xsl:for-each select="source">
<xsl:choose>
<xsl:when test="listeners">
<div class="roundcont">
<div class="roundtop">
<img src="/corner_topleft.jpg" class="corner" style="display: none" />
</div>
<div class="newscontent">
<div class="streamheader">
<table cellspacing="0" cellpadding="0">
<colgroup align="left" />
<colgroup align="right" width="300" />
<tr>
<td><h3>Mount Point <xsl:value-of select="@mount" /></h3></td>
<xsl:choose>
<xsl:when test="authenticator">
<td align="right"><a class="auth" href="/auth.xsl">Login</a></td>
</xsl:when>
<xsl:otherwise>
<td align="right"> <a href="{@mount}.m3u">Play</a></td>
</xsl:otherwise>
</xsl:choose>
</tr></table>
</div>
<table border="0" cellpadding="4">
<xsl:if test="server_name">
<tr><td>Stream Title:</td><td class="streamdata"> <xsl:value-of select="server_name" /></td></tr>
</xsl:if>
<xsl:if test="server_description">
<tr><td>Stream Description:</td><td class="streamdata"> <xsl:value-of select="server_description" /></td></tr>
</xsl:if>
<xsl:if test="stream_start">
<tr><td>Mount started:</td><td class="streamdata"><xsl:value-of select="stream_start" /></td></tr>
</xsl:if>
<xsl:if test="bitrate">
<tr><td>Bitrate:</td><td class="streamdata"> <xsl:value-of select="bitrate" /></td></tr>
</xsl:if>
<xsl:if test="quality">
<tr><td>Quality:</td><td class="streamdata"> <xsl:value-of select="quality" /></td></tr>
</xsl:if>
<xsl:if test="video_quality">
<tr><td>Video Quality:</td><td class="streamdata"> <xsl:value-of select="video_quality" /></td></tr>
</xsl:if>
<xsl:if test="frame_size">
<tr><td>Framesize:</td><td class="streamdata"> <xsl:value-of select="frame_size" /></td></tr>
</xsl:if>
<xsl:if test="frame_rate">
<tr><td>Framerate:</td><td class="streamdata"> <xsl:value-of select="frame_rate" /></td></tr>
</xsl:if>
<xsl:if test="genre">
<tr><td>Stream Genre:</td><td class="streamdata"> <xsl:value-of select="genre" /></td></tr>
</xsl:if>
<xsl:if test="listeners">
<tr><td>Current Listeners:</td><td class="streamdata"> <xsl:value-of select="listeners" /></td></tr>
</xsl:if>
<xsl:if test="server_url">
<tr><td>Stream URL:</td><td class="streamdata"> <a target="_blank" href="{server_url}"><xsl:value-of select="server_url" /></a></td></tr>
</xsl:if>
<tr><td>Current Song:</td><td class="streamdata">
<xsl:if test="artist"><xsl:value-of select="artist" /> - </xsl:if><xsl:value-of select="title" /></td></tr>
</table>
</div>
<div class="roundbottom">
<img src="/corner_bottomleft.jpg" class="corner" style="display: none" />
</div>
</div>
<br />
<br />
</xsl:when>
<xsl:otherwise>
<h3><xsl:value-of select="@mount" /> - Not Connected</h3>
</xsl:otherwise>
</xsl:choose>

</xsl:for-each>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;


<div class="poster">текст <a class="nav" target="_blank" href="http://сайт">сайт</a></div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>


Когда добавлена строка то название с нонстопа не идет даже на сайт, а про live вообще молчу...
заколдованый круг, если дело в status.xls то tarasian666 подельсь рабочим на котором проверено и работает

49
aleksanders @aleksanders
Да это в конфиге icecast прописал. Вот:
<mount>
<mount-name>/radio</mount-name>
<password>111222333</password>
<charset>CP1251</charset>
<fallback-mount>/nonstop</fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>1</fallback-when-full>
</mount>
<mount>
<mount-name>/nonstop</mount-name>
<password>123123</password>
<charset>CP1251</charset>
</mount>


Когда захожу по ссылке 127.0.0.1:88, то показывает нормально там. И один поток и второй поток. И какие песни всё правильно. А вот в информере только нонстоп.
А что смущает в такой странице статуса?

Отредактировано aleksanders - 03.02.2012
112
Юрий @FortNoxBY
у меня например когда live неактивен то всеровно в статистике отображается

112
Юрий @FortNoxBY
менял status.xls на версию от icecast-trunk...толку никакого...так в чем же причина?

49
aleksanders @aleksanders
А ты пробовал скрипт как у меня ставить себе. Он работает? Если работает, то вышли на freespace.by свой сервер. Ссылку в ЛС кинь или в icq 419440549

6245
Тарас @tarasian666
да пошуршите наконец своими извивинами! поменяйте Mount started в скрипте на что угодно что есть при активном маунте и что пропадает при откл маунте.
Ненужно менять status.xsl ведь он может не работать если из другой версии

Я вам суть показал, дальше уже подстраивайте скрипт под свой status, поскольку бацька не дает мне его увидеть

112
Юрий @FortNoxBY
менял Mount started на Stream Description.
При нон стопе у меня присутствует Stream Description а в живую когда вещаешь на live такой строки нет, вот я и думал ее взять. Но всеровно инфа берется с нонстопа

aleksanders, твой скрипт работает

Отредактировано FortNoxBY - 03.02.2012
49
aleksanders @aleksanders
tarasian666 Красиво выразился по поводу бацьки. )))

Короче парни, не знаю что я там изменял, но оно заработало. Что изменял, даже сам не знаю. ))

112
Юрий @FortNoxBY
давай делись пожайлусто)))...