Скрипт мониторинга радио станций

Тема в разделе "Коммерческие", создана пользователем mixdw, 4 июн 2009.

Информация :
Публиковать (для всех) нуленые версии, особенно от modulesgarden КАТЕГОРИЧЕСКИ не стоит. Тема мониторится оным разработчиком, а к нам приходят абузы которые нельзя игнорировать.
Статус темы:
Закрыта.
Модераторы: Amazko, Aste
  1. mixdw

    mixdw Постоялец

    Регистр.:
    5 мар 2008
    Сообщения:
    66
    Симпатии:
    3
    В общем нужен скрипт мониторинга радиостанций на shoutcast и icecast.

    Я так понял это скрипт для мониторинга одной станции?
    Мне нужен что бы люди могли добовлять свой адрес станции и сразу показывалась информация о той или иной радиостанции.
     
  2. dragonstyle

    dragonstyle Читатель

    Заблокирован
    Регистр.:
    17 ноя 2008
    Сообщения:
    524
    Симпатии:
    479
    сколько в данный момент слушателей моей волны и какой трек играет, вот тут moeradio.ru:10000/ показывается...
    Код:
    <?php 
    /*================================================================*\ 
    || ############################################################## || 
    || #  ICEcast info script v1.0                                  # || 
    || #  by Johnny [icq 319-058]                                   # || 
    || #                                                            # || 
    || #           [ ASTeam - Advanced Security Team ]              # || 
    || #  http://www.asteam.ru    |    http://www.asteam.ru/forum/  # || 
    || ############################################################## || 
    \*================================================================*/ 
    
    //СОЗДАЕМ КОНСТАНТЫ 
    define (NameStation, '/МАУНТПОИНТ'); //******* НАЗВАНИЕ РАДИО ******* 
    define (RadioOff, 'Радио выключено'); //******* СООБЩЕНИЕ О НЕРАБОТАЮЩЕМ РАДИО ******* 
    //******* ТУТ ИДУТ КОНСТАНТЫ ОТОБРАЖЕНИЯ ИНФОРМАЦИИ: 0 - НЕОТОБРАЖАТЬ, 1 - ОТОБРАЖАТЬ; В КАВЫЧКАХ УКАЗЫВАЕТСЯ НАЗВАНИЕ ПУНКТА ******* 
    define (StreamTitle, 1); define (StreamTitleText, 'Заголовок: '); 
    define (StreamDescription, 1); define (StreamDescriptionText, 'Описание: '); 
    define (ContentType, 1); define (ContentTypeText, 'Тип контента: '); 
    define (MountUptime, 1); define (MountUptimeText, 'Рабочее время: '); 
    define (Bitrate, 1); define (BitrateText, 'Битрейт: '); 
    define (CurrentListeners, 1); define (CurrentListenersText, 'Текущие слушатели: '); 
    define (PeakListeners, 1); define (PeakListenersText, 'Максимально слушателей: '); 
    define (StreamGenre, 1); define (StreamGenreText, 'Жанр: '); 
    define (StreamURL, 1); define (StreamURLText, 'Адрес: '); 
    define (CurrentSong, 1); define (CurrentSongText, 'Сейчас играет: ' ); 
    
    define (NoStream, 'Нет потока');//******* СООБЩЕНИЕ ЕСЛИ НЕ НАЙДЕН ПУНКТ ******* 
    define (Separator, '<br \>'); //******* РАЗДЕЛИТЕЛЬ МЕЖДУ ПУНКТАМИ ******* 
    
    //******* ЗАГРУЖАЕМ ФАЙЛ ******* 
    $file = file_get_contents('http://moeradio.ru:10000'); 
    //******* ВЫТАСКИВАЕМ ИНФОРМАЦИЮ О РАДИО ******* 
    $start = strpos($file, 'Mount Point : (' . NameStation . ') :') or $start = 0; 
    if ($start < 1) exit(RadioOff); //******* ЕСЛИ РАДИО ВЫКЛЮЧЕНО, ОТОБРАЖАЕТСЯ СООБЩЕНИЕ И ДАЛЬНЕЙШИЙ КОД НЕВЫПОЛНЯЕТСЯ ******* 
    $start += strlen('Mount Point : (' . NameStation . ') :'); 
    $file = substr($file, $start); 
    $file = substr($file, 0, strpos($file, 'Mount Point')); //******* ВЫРЕЗАЕМ ИНФУ ТОЛЬКО О НУЖНОМ РАДИО ******* 
    //############################################################## 
    //******* НАЧИНАЕМ ОТОБРАЖАТЬ НУЖНУЮ ИНФОРМАЦИЮ ******* 
    //******* ЗАГОЛОВОК ПОТОКА ******* 
    if (StreamTitle == 1) { 
        if (preg_match('#<td>Stream Title:<\/td><td class=\"streamdata\">(.*)<\/td>#Ui', $file, $m)) { 
            $streamtitle = $m[1]; 
            echo StreamTitleText, $streamtitle, Separator; 
        } else echo StreamTitleText, NoStream, Separator; 
    } 
    
    //******* ОПИСАНИЕ ПОТОКА ******* 
    if (StreamDescription == 1) { 
        if (preg_match('#<td>Stream Description:<\/td><td class=\"streamdata\">(.*)<\/td>#Ui', $file, $m)) { 
            $streamdesc = $m[1]; 
            echo StreamDescriptionText, $streamdesc, Separator; 
        } else echo StreamDescriptionText, NoStream, Separator; 
    } 
    
    //******* ТИП КОНТЕНТА ******* 
    if (ContentType == 1) { 
        if (preg_match('#<td>Content Type:<\/td><td class=\"streamdata\">(.*)<\/td>#Ui', $file, $m)) { 
            $contenttype = $m[1]; 
            echo ContentTypeText, $contenttype, Separator; 
        } else echo ContentTypeText, NoStream, Separator; 
    } 
    
    //******* РАБОЧЕЕ ВРЕМЯ ******* 
    if (MountUptime == 1) { 
        if (preg_match('#<td>Mount Uptime:<\/td><td class=\"streamdata\">(.*)<\/td>#Ui', $file, $m)) { 
            $mountuptime = $m[1]; 
            echo MountUptimeText, $mountuptime, Separator; 
        } else echo MountUptimeText, NoStream, Separator; 
    } 
    
    //******* БИТРЕЙТ ******* 
    if (Bitrate == 1) { 
        if (preg_match('#<td>Bitrate:<\/td><td class=\"streamdata\">(.*)<\/td>#Ui', $file, $m)) { 
            $bitrate = $m[1]; 
            echo BitrateText, $bitrate, Separator; 
        } else echo BitrateText, NoStream, Separator; 
    } 
    
    //******* КОЛИЧЕСТВО СЛУШАТЕЛЕЙ ******* 
    if (CurrentListeners == 1) { 
        if (preg_match('#<td>Current Listeners:<\/td><td class=\"streamdata\">(.*)<\/td>#Ui', $file, $m)) { 
            $currentlisteners = $m[1]; 
            echo CurrentListenersText, $currentlisteners, Separator; 
        } else echo CurrentListenersText, NoStream, Separator; 
    } 
    
    //******* МАКСИМАЛЬНОЕ КОЛ-ВО СЛУШАТЕЛЕЙ ******* 
    if (PeakListeners == 1) { 
        if (preg_match('#<td>Peak Listeners:<\/td><td class=\"streamdata\">(.*)<\/td>#Ui', $file, $m)) { 
            $peaklisteners = $m[1]; 
            echo PeakListenersText, $peaklisteners, Separator; 
        } else echo PeakListenersText, NoStream, Separator; 
    } 
    
    //******* ЖАНР ПОТОКА ******* 
    if (StreamGenre == 1) { 
        if (preg_match('#<td>Stream Genre:<\/td><td class=\"streamdata\">(.*)<\/td>#Ui', $file, $m)) { 
            $streamgenre = $m[1]; 
            echo StreamGenreText, $streamgenre, Separator; 
        } else echo StreamGenreText, NoStream, Separator; 
    } 
    
    //******* АДРЕС ******* 
    if (StreamURL == 1) { 
        if (preg_match('#<td>Stream URL:<\/td><td class=\"streamdata\">(.*)<\/td>#Ui', $file, $m)) { 
            $streamurl = $m[1]; 
            echo StreamURLText, $streamurl, Separator; 
        } else echo StreamURLText, NoStream, Separator; 
    } 
    
    //******* ИСПОЛНИТЕЛЬ ******* 
    if (CurrentSong == 1) { 
        if (preg_match('#<td>Current Song:<\/td><td class=\"streamdata\">(.*)<\/td>#Ui', $file, $m)) { 
            $currentsong = $m[1]; 
            echo CurrentSongText, $currentsong, Separator; 
        } else echo CurrentSongText, NoStream, Separator; 
    } 
    ?>
    или
    Вывод названия текущей композиции через Javascript
    Для вывода названия текущей композиции вам необходимо:

    1) В корневой директории вашего сайта создать PHP файл getcurentsong2902.php со следующим php кодом:
    Код:
    header("Pragma: no-cache"); 
    $curentsong2902=""; 
    $curentsong2902=file_get_contents('http://info.radiostyle.ru/inc/getinfo.php?getcurentsong=2902&mount=dabass'); 
    if ($curentsong2902) 
    { 
    echo $curentsong2902; 
    } 
    else 
    { 
    $curl_curentsong2902 = curl_init(); 
    curl_setopt($curl_curentsong2902, CURLOPT_RETURNTRANSFER, 1); 
    $url_curentsong2902 = 'http://info.radiostyle.ru/inc/getinfo.php?getcurentsong=2902&mount=dabass'; 
    curl_setopt($curl_curentsong2902, CURLOPT_URL, $url_curentsong2902); 
    //curl_setopt($curl_curentsong2902, CURLOPT_HEADER,1); 
    $curentsong2902 = curl_exec($curl_curentsong2902); 
    echo $curentsong2902; 
    } 
    ?>
    2) Добавить следующий код в страницу сайта:
    Код:
    <script type="text/javascript" src="http://stream2.radiostyle.ru/zxml.js"></script> 
    <script type="text/javascript"> 
    <!-- 
    function getcurentsong2902() { 
    var oXmlHttp = zXmlHttp.createRequest(); 
    oXmlHttp.open("get", "getcurentsong2902.php", true); 
    oXmlHttp.onreadystatechange = function () { 
    if (oXmlHttp.readyState == 4) { 
    if (oXmlHttp.status == 200) { 
    displaycurentsong2902(oXmlHttp.responseText); 
    } else { 
    displaycurentsong2902("An error occurred: " + oXmlHttp.statusText); 
    } 
    } 
    }; 
    oXmlHttp.send(null); 
    } 
    function displaycurentsong2902(sText) { 
    var divInfo = document.getElementById("curentsong2902"); 
    divInfo.innerHTML = "Текущая композиция: " + sText; 
    } 
    //--> 
    </script> 
    <BODY onLoad="getcurentsong2902();"> 
    
    <div id="curentsong2902"></div>
     
Статус темы:
Закрыта.