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

Скрипты для Icecast

 

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

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

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

Убираю строку
  1. 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 намного красивей и акуратней ))

0
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, то соответственно и показывает нонстоп только. Получается не может считать информацию с первого потока.

0
112
Юрий @FortNoxBY
А...то же самое и у меня(((.
Сразу не тестировал, а тут сам решил проверить и тоже не хочет брать исполнителя с маунта live.
Убрал \n но всеровно не работает.
kh 31 но файл status.xsl с оригинальной сборки айса
  1. <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
  2. <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" />
  3. <xsl:template match = "/icestats" >
  4. <html>
  5. <head>
  6. <title>Nазвание радио</title>
  7. <link rel="stylesheet" type="text/css" href="style.css" />
  8. </head>
  9. <body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0">
  10. <h2>   название радио через пробелы отнес а то текст на картинке получается</h2>
  11. <br />
  12. <!--mount point stats-->
  13. <xsl:for-each select="source">
  14. <xsl:choose>
  15. <xsl:when test="listeners">
  16. <div class="roundcont">
  17. <div class="roundtop">
  18. <img src="/corner_topleft.jpg" class="corner" style="display: none" />
  19. </div>
  20. <div class="newscontent">
  21. <div class="streamheader">
  22. <table cellspacing="0" cellpadding="0">
  23. <colgroup align="left" />
  24. <colgroup align="right" width="300" />
  25. <tr>
  26. <td><h3>Mount Point <xsl:value-of select="@mount" /></h3></td>
  27. <xsl:choose>
  28. <xsl:when test="authenticator">
  29. <td align="right"><a class="auth" href="/auth.xsl">Login</a></td>
  30. </xsl:when>
  31. <xsl:otherwise>
  32. <td align="right"> <a href="{@mount}.m3u">Play</a></td>
  33. </xsl:otherwise>
  34. </xsl:choose>
  35. </tr></table>
  36. </div>
  37. <table border="0" cellpadding="4">
  38. <xsl:if test="server_name">
  39. <tr><td>Stream Title:</td><td class="streamdata"> <xsl:value-of select="server_name" /></td></tr>
  40. </xsl:if>
  41. <xsl:if test="server_description">
  42. <tr><td>Stream Description:</td><td class="streamdata"> <xsl:value-of select="server_description" /></td></tr>
  43. </xsl:if>
  44. <xsl:if test="bitrate">
  45. <tr><td>Bitrate:</td><td class="streamdata"> <xsl:value-of select="bitrate" /></td></tr>
  46. </xsl:if>
  47. <xsl:if test="quality">
  48. <tr><td>Quality:</td><td class="streamdata"> <xsl:value-of select="quality" /></td></tr>
  49. </xsl:if>
  50. <xsl:if test="video_quality">
  51. <tr><td>Video Quality:</td><td class="streamdata"> <xsl:value-of select="video_quality" /></td></tr>
  52. </xsl:if>
  53. <xsl:if test="frame_size">
  54. <tr><td>Framesize:</td><td class="streamdata"> <xsl:value-of select="frame_size" /></td></tr>
  55. </xsl:if>
  56. <xsl:if test="frame_rate">
  57. <tr><td>Framerate:</td><td class="streamdata"> <xsl:value-of select="frame_rate" /></td></tr>
  58. </xsl:if>
  59. <xsl:if test="genre">
  60. <tr><td>Stream Genre:</td><td class="streamdata"> <xsl:value-of select="genre" /></td></tr>
  61. </xsl:if>
  62. <xsl:if test="listeners">
  63. <tr><td>Current Listeners:</td><td class="streamdata"> <xsl:value-of select="listeners" /></td></tr>
  64. </xsl:if>
  65. <xsl:if test="server_url">
  66. <tr><td>Stream URL:</td><td class="streamdata"> <a target="_blank" href="{server_url}"><xsl:value-of select="server_url" /></a></td></tr>
  67. </xsl:if>
  68. <tr><td>Current Song:</td><td class="streamdata">
  69. <xsl:if test="artist"><xsl:value-of select="artist" /> - </xsl:if><xsl:value-of select="title" /></td></tr>
  70. </table>
  71. </div>
  72. <div class="roundbottom">
  73. <img src="/corner_bottomleft.jpg" class="corner" style="display: none" />
  74. </div>
  75. </div>
  76. <br />
  77. <br />
  78. </xsl:when>
  79. <xsl:otherwise>
  80. <h3><xsl:value-of select="@mount" /> - Not Connected</h3>
  81. </xsl:otherwise>
  82. </xsl:choose>
  83. </xsl:for-each>
  84. <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
  85. <div class="poster">тут я немного изменил текст <a class="nav" target="_blank" href="вставил свой сайт">имясайта</a></div>
  86. </body>
  87. </html>
  88. </xsl:template>
  89. </xsl:stylesheet>

0
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: делайте выводы и правьте скрипт под себя

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

0
6245
Тарас @tarasian666
facepalm

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

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

  1. <?php
  2. $data = file_get_contents('http://xoiniki.com:88/status.xsl?mount=/radio');
  3. function antara($string, $start, $end){
  4. $string = " ".$string;
  5. $ini = strpos($string,$start);
  6. if ($ini == 0) return "";
  7. $ini += strlen($start);
  8. $len = strpos($string,$end,$ini) - $ini;
  9. return substr($string,$ini,$len);
  10. }
  11. if(antara($data, "Mount started:</td>\n<td class=\"streamdata\">","</td>") ==''){$data = file_get_contents('http://localhost:88/status.xsl?mount=/nonstop');}
  12. $Current_song = antara($data, "Current Song:</td>\n<td class=\"streamdata\">","</td>");
  13. $Curr_listens=$Current_listeners2+$Current_listeners+$hellp_curr_listeners;
  14. $Peak_listens=$Peak_listeners2+$Peak_listeners+$hellp_peak_listeners;
  15. $staylst=$Curr_listens+1;
  16. echo ''.$Current_song.'';
  17. ?>

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

0
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>") ==''

0
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
0
112
Юрий @FortNoxBY
Да и строки Mount started: нет

0
112
Юрий @FortNoxBY
Эт скрипт:
  1. <?php
  2. $data = file_get_contents('http://ип/status.xsl?mount=/live');
  3. function antara($string, $start, $end){
  4. $string = " ".$string;
  5. $ini = strpos($string,$start);
  6. if ($ini == 0) return "";
  7. $ini += strlen($start);
  8. $len = strpos($string,$end,$ini) - $ini;
  9. return substr($string,$ini,$len);
  10. }
  11. if(antara($data, "Mount Start:</td>\n<td class=\"streamdata\">","</td>") ==''){$data = file_get_contents('http://ип/status.xsl?mount=/nonstop');}
  12. $data = iconv("utf-8", "cp1251", $data);
  13. $content_type = antara($data, "Content Type:</td>\n<td class=\"streamdata\">","</td>");
  14. $Stream_genre = antara($data, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");
  15. $Current_song = antara($data, "Current Song:</td>\n<td class=\"streamdata\">","</td>");
  16. $Curr_listens=$Current_listeners2+$Current_listeners+$hellp_curr_listeners;
  17. $Peak_listens=$Peak_listeners2+$Peak_listeners+$hellp_peak_listeners;
  18. $staylst=$Curr_listens+1;
  19. echo '
  20. <br>&nbsp;<b>Сейчас в эфире:</b> '.$Current_song.'
  21. ';
  22. ?>

Status.xls
  1. <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
  2. <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" />
  3. <xsl:template match = "/icestats" >
  4. <html>
  5. <head>
  6. <title>название</title>
  7. <link rel="stylesheet" type="text/css" href="style.css" />
  8. </head>
  9. <body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0">
  10. <h2>   Сайт</h2>
  11. <br />
  12. <!--mount point stats-->
  13. <xsl:for-each select="source">
  14. <xsl:choose>
  15. <xsl:when test="listeners">
  16. <div class="roundcont">
  17. <div class="roundtop">
  18. <img src="/corner_topleft.jpg" class="corner" style="display: none" />
  19. </div>
  20. <div class="newscontent">
  21. <div class="streamheader">
  22. <table cellspacing="0" cellpadding="0">
  23. <colgroup align="left" />
  24. <colgroup align="right" width="300" />
  25. <tr>
  26. <td><h3>Mount Point <xsl:value-of select="@mount" /></h3></td>
  27. <xsl:choose>
  28. <xsl:when test="authenticator">
  29. <td align="right"><a class="auth" href="/auth.xsl">Login</a></td>
  30. </xsl:when>
  31. <xsl:otherwise>
  32. <td align="right"> <a href="{@mount}.m3u">Play</a></td>
  33. </xsl:otherwise>
  34. </xsl:choose>
  35. </tr></table>
  36. </div>
  37. <table border="0" cellpadding="4">
  38. <xsl:if test="server_name">
  39. <tr><td>Stream Title:</td><td class="streamdata"> <xsl:value-of select="server_name" /></td></tr>
  40. </xsl:if>
  41. <xsl:if test="server_description">
  42. <tr><td>Stream Description:</td><td class="streamdata"> <xsl:value-of select="server_description" /></td></tr>
  43. </xsl:if>
  44. <xsl:if test="stream_start">
  45. <tr><td>Mount started:</td><td class="streamdata"><xsl:value-of select="stream_start" /></td></tr>
  46. </xsl:if>
  47. <xsl:if test="bitrate">
  48. <tr><td>Bitrate:</td><td class="streamdata"> <xsl:value-of select="bitrate" /></td></tr>
  49. </xsl:if>
  50. <xsl:if test="quality">
  51. <tr><td>Quality:</td><td class="streamdata"> <xsl:value-of select="quality" /></td></tr>
  52. </xsl:if>
  53. <xsl:if test="video_quality">
  54. <tr><td>Video Quality:</td><td class="streamdata"> <xsl:value-of select="video_quality" /></td></tr>
  55. </xsl:if>
  56. <xsl:if test="frame_size">
  57. <tr><td>Framesize:</td><td class="streamdata"> <xsl:value-of select="frame_size" /></td></tr>
  58. </xsl:if>
  59. <xsl:if test="frame_rate">
  60. <tr><td>Framerate:</td><td class="streamdata"> <xsl:value-of select="frame_rate" /></td></tr>
  61. </xsl:if>
  62. <xsl:if test="genre">
  63. <tr><td>Stream Genre:</td><td class="streamdata"> <xsl:value-of select="genre" /></td></tr>
  64. </xsl:if>
  65. <xsl:if test="listeners">
  66. <tr><td>Current Listeners:</td><td class="streamdata"> <xsl:value-of select="listeners" /></td></tr>
  67. </xsl:if>
  68. <xsl:if test="server_url">
  69. <tr><td>Stream URL:</td><td class="streamdata"> <a target="_blank" href="{server_url}"><xsl:value-of select="server_url" /></a></td></tr>
  70. </xsl:if>
  71. <tr><td>Current Song:</td><td class="streamdata">
  72. <xsl:if test="artist"><xsl:value-of select="artist" /> - </xsl:if><xsl:value-of select="title" /></td></tr>
  73. </table>
  74. </div>
  75. <div class="roundbottom">
  76. <img src="/corner_bottomleft.jpg" class="corner" style="display: none" />
  77. </div>
  78. </div>
  79. <br />
  80. <br />
  81. </xsl:when>
  82. <xsl:otherwise>
  83. <h3><xsl:value-of select="@mount" /> - Not Connected</h3>
  84. </xsl:otherwise>
  85. </xsl:choose>
  86. </xsl:for-each>
  87. <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
  88. <div class="poster">текст <a class="nav" target="_blank" href="http://сайт">сайт</a></div>
  89. </body>
  90. </html>
  91. </xsl:template>
  92. </xsl:stylesheet>


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

0
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
0
112
Юрий @FortNoxBY
у меня например когда live неактивен то всеровно в статистике отображается

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

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

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

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

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

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

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

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

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

0