Re: Скрипты для Icecast
Когда добаляю эту строку которой не достает то на сайте пропадает отображение исполнителя и песни
Сайт за 50$. За 2 дня...
Первый русскоязычный форум посвященный интернет-радиовещанию
Страницы Назад 1 … 24 25 26 27 28 … 33 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Когда добаляю эту строку которой не достает то на сайте пропадает отображение исполнителя и песни
пишет 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>");
Строку добавил
$Mount_started = antara($data, "Mount started:</td>\n<td class=\"streamdata\">","</td>");
Всё равно играет поток /radio а информация с потока /nonstop.
А какая проблема может быть здесь?
antara($data, "Mount started:</td>\n<td class=\"streamdata\">","</td>") ==''
А ты в конфиге айса прописывал?:
<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 15:32:47)
Да и строки Mount started: нет
Эт скрипт:
<?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> <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">&</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 подельсь рабочим на котором проверено и работает
Да это в конфиге 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 17:50:02)
у меня например когда live неактивен то всеровно в статистике отображается
менял status.xls на версию от icecast-trunk...толку никакого...так в чем же причина?
А ты пробовал скрипт как у меня ставить себе. Он работает? Если работает, то вышли на freespace.by свой сервер. Ссылку в ЛС кинь или в icq 419440549
да пошуршите наконец своими извивинами! поменяйте Mount started в скрипте на что угодно что есть при активном маунте и что пропадает при откл маунте.
Ненужно менять status.xsl ведь он может не работать если из другой версии
Я вам суть показал, дальше уже подстраивайте скрипт под свой status, поскольку бацька не дает мне его увидеть
менял Mount started на Stream Description.
При нон стопе у меня присутствует Stream Description а в живую когда вещаешь на live такой строки нет, вот я и думал ее взять. Но всеровно инфа берется с нонстопа
aleksanders, твой скрипт работает
Отредактировано FortNoxBY (03-02-2012 20:46:37)
tarasian666 Красиво выразился по поводу бацьки. )))
Короче парни, не знаю что я там изменял, но оно заработало. Что изменял, даже сам не знаю. ))
давай делись пожайлусто)))...
Короче, если что не так, вы хоть не смейтесь. ))) Главное работает...
<?php
$data = file_get_contents('http://127.0.0.1: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, "Content Type:</td>\n<td class=\"streamdata\">","</td>") ==''){$data = file_get_contents('http://127.0.0.1:88/status.xsl?mount=/nonstop');}
$Mount_started = antara($data, "Content Type:</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 ''.$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>Icecast Streaming Media Server</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0">
<h2>Icecast2 Status</h2>
<br />
<!--index header menu -->
<div class="roundcont">
<div class="roundtop">
<img src="/corner_topleft.jpg" class="corner" style="display: none" />
</div>
<table border="0" width="100%" id="table1" cellspacing="0" cellpadding="4">
<tr>
<td bgcolor="#656565">
<a class="nav" href="admin/">Administration</a>
<a class="nav" href="status.xsl">Server Status</a>
<a class="nav" href="server_version.xsl">Version</a></td>
</tr>
</table>
<div class="roundbottom">
<img src="/corner_bottomleft.jpg" class="corner" style="display: none" />
</div>
</div>
<br />
<br />
<!--end index header menu -->
<!--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">M3U</a> <a href="{@mount}.xspf">XSPF</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="server_type">
<tr><td>Content Type:</td><td class="streamdata"><xsl:value-of select="server_type" /></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="listeners">
<tr><td>Current Listeners:</td><td class="streamdata"> <xsl:value-of select="listeners" /></td></tr>
</xsl:if>
<xsl:if test="listener_peak">
<tr><td>Peak Listeners:</td><td class="streamdata"> <xsl:value-of select="listener_peak" /></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="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">&</xsl:text>nbsp;
<div class="poster">Support icecast development at <a class="nav" target="_blank" href="http://www.icecast.org">www.icecast.org</a></div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Короче, если что не так, вы хоть не смейтесь. ))) Главное работает...
а что смеятся то, все правильно сделал
вот интересная история об функции antara, я ее нашел на форуме shoutcast где парсили ответ sc_trans2 через его API
а теперь она расползлась по рунету...
aleksanders? спасибо большое.
а айс ты используешь скаченный с оф.сайта я так понимаю?
Так точно. Сервер скачивал с оф. сайта, версии 2.3.2
Помогите с вопросом... Как в данном скрипте вывести тайтл радиостанции?
<?php
$file_name='http://иппорт';
$r=fopen($file_name,'r');
$text=fread($r,2000);
fclose($r);
$mass=explode(",", $text);
echo $mass [16] ."<br>";
echo $mass [14] ."<br>";
?>
Пробовал поменять $mass но ничего нужного не выдавало... Как с помощью него вывести название радио?
Отредактировано Всё-просто (05-02-2012 01:12:43)
aleksanders, большое тебе человеческое спасибо!!!!
и конечно и тебе tarasian666
пишет Всё-просто:
Помогите с вопросом... Как в данном скрипте вывести тайтл радиостанции?
<?php $file_name='http://иппорт'; $r=fopen($file_name,'r'); $text=fread($r,2000); fclose($r); $mass=explode(",", $text); echo $mass [16] ."<br>"; echo $mass [14] ."<br>"; ?>
Пробовал поменять $mass но ничего нужного не выдавало... Как с помощью него вывести название радио?
там не иппорт а ип:порт/status2xsl?mount=/маунт
пишет tarasian666:
пишет Всё-просто:
Помогите с вопросом... Как в данном скрипте вывести тайтл радиостанции?
<?php $file_name='http://иппорт'; $r=fopen($file_name,'r'); $text=fread($r,2000); fclose($r); $mass=explode(",", $text); echo $mass [16] ."<br>"; echo $mass [14] ."<br>"; ?>
Пробовал поменять $mass но ничего нужного не выдавало... Как с помощью него вывести название радио?
там не иппорт а ип:порт/status2xsl?mount=/маунт
Это я знаю )
Страницы Назад 1 … 24 25 26 27 28 … 33 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться