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

Скрипты для Icecast

 

49
aleksanders @aleksanders
Короче, если что не так, вы хоть не смейтесь. ))) Главное работает...
  1. <?php
  2. $data = file_get_contents('http://127.0.0.1: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, "Content Type:</td>\n<td class=\"streamdata\">","</td>") ==''){$data = file_get_contents('http://127.0.0.1:88/status.xsl?mount=/nonstop');}
  12. $Mount_started = antara($data, "Content Type:</td>\n<td class=\"streamdata\">","</td>");
  13. $Current_song = antara($data, "Current Song:</td>\n<td class=\"streamdata\">","</td>");
  14. $Curr_listens=$Current_listeners2+$Current_listeners+$hellp_curr_listeners;
  15. $Peak_listens=$Peak_listeners2+$Peak_listeners+$hellp_peak_listeners;
  16. $staylst=$Curr_listens+1;
  17. echo ''.$Current_song.'';
  18. ?>

0
112
Юрий @FortNoxBY
а в status.xls как обстоят дела?) выложи код тоже

0
49
aleksanders @aleksanders
  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>Icecast Streaming Media Server</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>Icecast2 Status</h2>
  11. <br />
  12. <!--index header menu -->
  13. <div class="roundcont">
  14. <div class="roundtop">
  15. <img src="/corner_topleft.jpg" class="corner" style="display: none" />
  16. </div>
  17. <table border="0" width="100%" id="table1" cellspacing="0" cellpadding="4">
  18. <tr>
  19. <td bgcolor="#656565">
  20. <a class="nav" href="admin/">Administration</a>
  21. <a class="nav" href="status.xsl">Server Status</a>
  22. <a class="nav" href="server_version.xsl">Version</a></td>
  23. </tr>
  24. </table>
  25. <div class="roundbottom">
  26. <img src="/corner_bottomleft.jpg" class="corner" style="display: none" />
  27. </div>
  28. </div>
  29. <br />
  30. <br />
  31. <!--end index header menu -->
  32. <!--mount point stats-->
  33. <xsl:for-each select="source">
  34. <xsl:choose>
  35. <xsl:when test="listeners">
  36. <div class="roundcont">
  37. <div class="roundtop">
  38. <img src="/corner_topleft.jpg" class="corner" style="display: none" />
  39. </div>
  40. <div class="newscontent">
  41. <div class="streamheader">
  42. <table cellspacing="0" cellpadding="0">
  43. <colgroup align="left" />
  44. <colgroup align="right" width="300" />
  45. <tr>
  46. <td><h3>Mount Point <xsl:value-of select="@mount" /></h3></td>
  47. <xsl:choose>
  48. <xsl:when test="authenticator">
  49. <td align="right"><a class="auth" href="/auth.xsl">Login</a></td>
  50. </xsl:when>
  51. <xsl:otherwise>
  52. <td align="right"> <a href="{@mount}.m3u">M3U</a> <a href="{@mount}.xspf">XSPF</a></td>
  53. </xsl:otherwise>
  54. </xsl:choose>
  55. </tr></table>
  56. </div>
  57. <table border="0" cellpadding="4">
  58. <xsl:if test="server_name">
  59. <tr><td>Stream Title:</td><td class="streamdata"> <xsl:value-of select="server_name" /></td></tr>
  60. </xsl:if>
  61. <xsl:if test="server_description">
  62. <tr><td>Stream Description:</td><td class="streamdata"> <xsl:value-of select="server_description" /></td></tr>
  63. </xsl:if>
  64. <xsl:if test="server_type">
  65. <tr><td>Content Type:</td><td class="streamdata"><xsl:value-of select="server_type" /></td></tr>
  66. </xsl:if>
  67. <xsl:if test="stream_start">
  68. <tr><td>Mount started:</td><td class="streamdata"><xsl:value-of select="stream_start" /></td></tr>
  69. </xsl:if>
  70. <xsl:if test="bitrate">
  71. <tr><td>Bitrate:</td><td class="streamdata"> <xsl:value-of select="bitrate" /></td></tr>
  72. </xsl:if>
  73. <xsl:if test="quality">
  74. <tr><td>Quality:</td><td class="streamdata"> <xsl:value-of select="quality" /></td></tr>
  75. </xsl:if>
  76. <xsl:if test="video_quality">
  77. <tr><td>Video Quality:</td><td class="streamdata"> <xsl:value-of select="video_quality" /></td></tr>
  78. </xsl:if>
  79. <xsl:if test="frame_size">
  80. <tr><td>Framesize:</td><td class="streamdata"> <xsl:value-of select="frame_size" /></td></tr>
  81. </xsl:if>
  82. <xsl:if test="frame_rate">
  83. <tr><td>Framerate:</td><td class="streamdata"> <xsl:value-of select="frame_rate" /></td></tr>
  84. </xsl:if>
  85. <xsl:if test="listeners">
  86. <tr><td>Current Listeners:</td><td class="streamdata"> <xsl:value-of select="listeners" /></td></tr>
  87. </xsl:if>
  88. <xsl:if test="listener_peak">
  89. <tr><td>Peak Listeners:</td><td class="streamdata"> <xsl:value-of select="listener_peak" /></td></tr>
  90. </xsl:if>
  91. <xsl:if test="genre">
  92. <tr><td>Stream Genre:</td><td class="streamdata"> <xsl:value-of select="genre" /></td></tr>
  93. </xsl:if>
  94. <xsl:if test="server_url">
  95. <tr><td>Stream URL:</td><td class="streamdata"> <a target="_blank" href="{server_url}"><xsl:value-of select="server_url" /></a></td></tr>
  96. </xsl:if>
  97. <tr><td>Current Song:</td><td class="streamdata">
  98. <xsl:if test="artist"><xsl:value-of select="artist" /> - </xsl:if><xsl:value-of select="title" /></td></tr>
  99. </table>
  100. </div>
  101. <div class="roundbottom">
  102. <img src="/corner_bottomleft.jpg" class="corner" style="display: none" />
  103. </div>
  104. </div>
  105. <br />
  106. <br />
  107. </xsl:when>
  108. <xsl:otherwise>
  109. <h3><xsl:value-of select="@mount" /> - Not Connected</h3>
  110. </xsl:otherwise>
  111. </xsl:choose>
  112. </xsl:for-each>
  113. <xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
  114. <div class="poster">Support icecast development at <a class="nav" target="_blank" href="http://www.icecast.org">www.icecast.org</a></div>
  115. </body>
  116. </html>
  117. </xsl:template>
  118. </xsl:stylesheet>

0
6245
Тарас @tarasian666
Короче, если что не так, вы хоть не смейтесь. ))) Главное работает...

а что смеятся то, все правильно сделал

вот интересная история об функции antara, я ее нашел на форуме shoutcast где парсили ответ sc_trans2 через его API
а теперь она расползлась по рунету...

0
112
Юрий @FortNoxBY
aleksanders? спасибо большое.
а айс ты используешь скаченный с оф.сайта я так понимаю?

0
49
aleksanders @aleksanders
Так точно. Сервер скачивал с оф. сайта, версии 2.3.2

0
349
Юрий @Всё-просто
Помогите с вопросом... Как в данном скрипте вывести тайтл радиостанции?
  1. <?php
  2. $file_name='http://иппорт';
  3. $r=fopen($file_name,'r');
  4. $text=fread($r,2000);
  5. fclose($r);
  6. $mass=explode(",", $text);
  7. echo $mass [16] ."<br>";
  8. echo $mass [14] ."<br>";
  9. ?>


Пробовал поменять $mass но ничего нужного не выдавало... Как с помощью него вывести название радио?

Отредактировано Всё-просто - 05.02.2012
0
112
Юрий @FortNoxBY
aleksanders, большое тебе человеческое спасибо!!!!
и конечно и тебе tarasian666

0
6245
Тарас @tarasian666
Всё-просто пишет:

Помогите с вопросом... Как в данном скрипте вывести тайтл радиостанции?
  1. <?php
  2. $file_name='http://иппорт';
  3. $r=fopen($file_name,'r');
  4. $text=fread($r,2000);
  5. fclose($r);
  6. $mass=explode(",", $text);
  7. echo $mass [16] ."<br>";
  8. echo $mass [14] ."<br>";
  9. ?>


Пробовал поменять $mass но ничего нужного не выдавало... Как с помощью него вывести название радио?

там не иппорт а ип:порт/status2xsl?mount=/маунт

0
349
Юрий @Всё-просто
tarasian666 пишет:

Всё-просто пишет:

Помогите с вопросом... Как в данном скрипте вывести тайтл радиостанции?
  1. <?php
  2. $file_name='http://иппорт';
  3. $r=fopen($file_name,'r');
  4. $text=fread($r,2000);
  5. fclose($r);
  6. $mass=explode(",", $text);
  7. echo $mass [16] ."<br>";
  8. echo $mass [14] ."<br>";
  9. ?>


Пробовал поменять $mass но ничего нужного не выдавало... Как с помощью него вывести название радио?

там не иппорт а ип:порт/status2xsl?mount=/маунт


Это я знаю )

0
6245
Тарас @tarasian666
надо брать конкретно используемый status2.xsl и считать на каком месте стоит название, так как в trunk и kh они тоже отличаются

0
95
Артур @NoExist
Проблема с фоллбеком... Я все сделал, все работает, но, при подключении FrostFMSZ.OGG & FrostFMSZ другие 2 FrostFM.OGG & FrostFM не отключаются, их надо отключить вручную и только тогда слушателей перенаправляет на фоллбеки, как это исправить?

<mount>
<mount-name>/FrostFM.OGG</mount-name>
<password>7539514682</password>
<max-listeners>2000</max-listeners>
<fallback-mount>/FrostFMSZ.OGG</fallback-mount>
<fallback-override>1</fallback-override>
<charset>cp1251</charset>
</mount>

<mount>
<mount-name>/FrostFMSZ.OGG</mount-name>
<password>7539514682</password>
<max-listeners>2000</max-listeners>
<charset>cp1251</charset>
</mount>
<mount>
<mount-name>/FrostFM</mount-name>
<password>7539514682</password>
<max-listeners>2000</max-listeners>
<fallback-mount>/FrostFMSZ</fallback-mount>
<fallback-override>1</fallback-override>
<charset>cp1251</charset>
</mount>

<mount>
<mount-name>/FrostFMSZ</mount-name>
<password>7539514682</password>
<max-listeners>2000</max-listeners>
<charset>cp1251</charset>
</mount>

0
6245
Тарас @tarasian666
а собственно почему они должны отключаться?

слушателям подключаться только к тем маунтам в которых есть строки fallback, то есть к маунтам live а не нонстоп
я ж об этом уже говорил

0
95
Артур @NoExist
Все разобрался по твоей наводке))) Я случайно мануты не там прописал)))

0
19
JaST @JaST
всем привет,читать не успеваю,времени мало,пожалуйста подскажите скрипт который может считывать информацию с сервера находящегося не на той же машине

0
6245
Тарас @tarasian666
любой может, пару постов выше есть скрипты

0
19
JaST @JaST
не хотят никак считывать информацию с потока giss tv

0
6245
Тарас @tarasian666
а где запускаешь? Много зависит от доступов хостинга

0
19
JaST @JaST
проверял скриптом
  1. Ваш хостинг <?php if (!fopen("http://giss.tv", "r")) print("не"); ?> поддерживает исходящие соединения!


исходящее соединение с giss.tv нормально идёт

Отредактировано JaST - 18.03.2012
0
19
JaST @JaST
блин ребят ну вы можете помочь!?
Скрипт нужен для считывания статистики с **********

0





Согласие на обработку данных на нашем сайте

Продолжая просматривать страницу, вы соглашаетесь с использованием файлов «Cookie» и с Политикой конфиденциальности «Privacy».
Наверху или внизу страницы вы можете изменить валюту и язык по умолчанию. Английская версия сайта ещё находится в доработке и доступна не полностью.