Published using Google Docs
r_radiobutton.php
Updated automatically every 5 minutes

<?php

// Основной класс с кучей функций

class radioboss {

// Определяем языковые определения        

const INFO_BLOCK = "Какую команду отправить?";

const C_VNIMANIE = "Внимательно выбирай";

const C_PLAY = "Воспроизвести";

const C_STOP = "Стоп";

const C_NEXT = "Следующий трек";

const C_PREV = "Предыдущий трек";

const A_PLAYBACKINFO = "Посмотреть что играет";

const A_INSERTTRACK = "Вставить трек";

const A_LIBRARY = "Получить библиотеку";

const A_TRACKARTWORK = "Скачать текущий трек";

const A_NEXTTRACKARTWORK = "Скачать следующий трек";

const A_SETNEXTTARCK = "Установить следующий трек";

const A_INSERT_END = "Вставить файл в конец списка";

const A_INSERT_CURRENT = "Вставить файл после текущего";

const A_INSERT_TO_POS = "Вставить файл в позицию списка";

const A_GETLIBRARY = "Получить библиотеку";

const R_ERROR_CMD = "Не понятно";

const R_ARTIST = "Артист";

const R_TITLE = "Заголовок";

const R_ALBUM = "Альбом";

const R_YEAR = "Год";

const R_GENRE = "Жанр";

const R_COMMENT = "Комментарий";

const R_FILE = "Файл";

const R_FILESIZE = "Размер";

const R_DURATION = "Продолжительность";

const R_PLAYCOUNT = "Прослушано";

const R_ERROR_FILE = "Укажите правильно имя файла";

const R_BITRATE = "Битрейт";

const R_DATEADDED = "Дата добавления";

const R_BPM = "BPM";

const R_RATING = "Рейтинг";

const R_LANGUAGE = "Язык";

const R_GENDER = "Пол";

// переменные для GET запроса на случай изменений

 

        public $config = array("host" => NULL, "pass" => NULL);

        function __construct($host, $pass)

        {

                $this -> config['host'] = $host;

                $this -> config['pass'] = $pass;

        }

        function ms2time ($seconds) {

                $hours = floor($seconds / 3600);

                $mins = floor(($seconds - $hours*3600) / 60);

                $s = $seconds - ($hours*3600 + $mins*60);

                $mins = ($mins<10?"0".$mins:"".$mins);

                $s = ($s<10?"0".$s:"".$s);

                $time = ($hours>0?$hours.":":"").$mins.":".$s;

                return $time;

        }

        function cmd ($cmd) {

                $r_command = $this -> config['host'] . "pass=" . $this -> config['pass'] . "&cmd=" . $cmd;

                $res = file_get_contents($r_command);

                $result = "OK";

                header("Location: http://life-fm.ru/index.php");

        }

        

        function playinfo ($r_actions, $r_value = "") {

                // стрроку собирем

                $r_act = $this -> config['host'] . "pass=" . $this -> config['pass'] . "&action=playbackinfo";

                // отправляем и забираем

                $xml = simplexml_load_file($r_act);        

                

                echo "<table border=1 cellpadding=0 cellspacing=0 class='playbackinfo'>";

                echo "<tr><th>"

                                        .self::R_ARTIST."</th><th>"

                                        .self::R_TITLE."</th><th>"

                                        .self::R_ALBUM."</th><th>"

                                        .self::R_YEAR."</th><th>"

                                        .self::R_GENRE."</th><th>"

                                        .self::R_COMMENT."</th><th>"

                                        .self::R_FILE."</th><th>"

                                        .self::R_DURATION."</th><th>"

                                        .self::R_PLAYCOUNT."</th></tr>";

                echo "<tr><th colspan=9>Сейчас звучит</th></tr>";

                $current = $xml->CurrentTrack->TRACK;

                foreach($current as $key=>$value) {

                                        echo "<tr>";

                                        echo "<td>" .$value['ARTIST'] . "</td>";

                                        echo "<td>" .$value['TITLE'] . "</td>";

                                        echo "<td>" .$value['ALBUM'] . "</td>";

                                        echo "<td>" .$value['YEAR'] . "</td>";

                                        echo "<td>" .$value['GENRE'] . "</td>";

                                        echo "<td>" .$value['COMMENT'] . "</td>";

                                        echo "<td>" .$value['FILENAME'] . "</td>";

                                        echo "<td>" .$value['DURATION'] . "</td>";

                                        echo "<td>" .$value['PLAYCOUNT'] . "</td>";        

                                        echo "</tr>";                                

                }

                echo "<tr><th colspan=9>Следующий трек</th></tr>";

                $nexttrack = $xml->NextTrack->TRACK;

                foreach($nexttrack as $k=>$val) {

                                        echo "<tr>";

                                        echo "<td>" .$val['ARTIST'] . "</td>";

                                        echo "<td>" .$val['TITLE'] . "</td>";

                                        echo "<td>" .$val['ALBUM'] . "</td>";

                                        echo "<td>" .$val['YEAR'] . "</td>";

                                        echo "<td>" .$val['GENRE'] . "</td>";

                                        echo "<td>" .$val['COMMENT'] . "</td>";

                                        echo "<td>" .$val['FILENAME'] . "</td>";

                                        echo "<td>" .$val['DURATION'] . "</td>";

                                        echo "<td>" .$val['PLAYCOUNT'] . "</td>";        

                                        echo "</tr>";                                

                }

                $pos = floor($xml->Playback['pos']/1000);

                $postime = $this->ms2time($pos);

                $len = floor($xml->Playback['len']/1000);

                $lentime = $this->ms2time($len);

                echo "<tr><th colspan=9>Статус</th></tr>";

                echo "<tr><td>Позиция: " . $postime . "</td>";

                echo "<td>Позиция: " . $lentime . "</td>";

                echo "<td colspan=7>Состояние: " . $xml->Playback['state'] . "</td>";

                echo "</tr>";

                echo "</table>";                

        }

        

        function insertfile ($file, $pos = "-1") {

                if($file == "") {

                        echo self::R_ERROR_FILE;        

                } else {

                echo "<p>Вставлять будем:</p>";

                echo $file."<br />";

                echo $pos;

                }

        }

        

        

        function getlibrary ($libraryname = "Base") {

                $r_command = $this -> config['host'] . "pass=" . $this -> config['pass'] . "&action=library&filename=".$libraryname;

                $xml = file_get_contents($r_command) or die("Ошибка загрузки URL");

                $iskomoe = " xmlns=\"tracks\"";

                $iskomoe2 = "<Version version=\"1\"/>";

//                $iskomoe .= "<Version version=\"1\"/>";

                $xmll = str_replace($iskomoe,"",$xml);

                $xmll = str_replace($iskomoe2,"",$xmll);

                $library = simplexml_load_string($xmll);

                echo "<table border=1 id='myTable' cellpadding=0 cellspacing=1 class='tablesorter'>";

                echo "<thead>";

                echo "<tr><th>"

                                        .self::R_TITLE."</th><th>"

                                        .self::R_ARTIST."</th><th>"

//                                        .self::R_ALBUM."</th><th>"

                                        .self::R_YEAR."</th><th>"

//                                        .self::R_COMMENT."</th><th>"

                                        .self::R_GENRE."</th><th>"

                                        .self::R_FILE."</th><th>"

                                        .self::R_DURATION."</th><th>"

//                                        .self::R_FILESIZE."</th><th>"

//                                        .self::R_BITRATE."</th><th>"

//                                        .self::R_DATEADDED."</th><th>"

//                                        .self::R_BPM."</th><th>"

//                                        .self::R_RATING."</th><th>"

//                                        .self::R_LANGUAGE."</th><th>"

//                                        .self::R_GENDER."</th><th>"

                                        .self::R_PLAYCOUNT."</th></tr>";

                echo "</thead><tbody>";

                foreach($library as $key=>$val) {

                        echo "<tr>";

                                echo "<td>" .$val['title']. "</td>";

                                echo "<td>" .$val['artist']. "</td>";

//                                echo "<td>" .$val['album']. "</td>";

                                echo "<td>" .$val['year']. "</td>";

//                                echo "<td>" .$val['comment']. "</td>";

                                echo "<td>" .$val['genre']. "</td>";

                                echo "<td>" .$val['filename']. "</td>";

                                echo "<td>" .$this->ms2time(floor($val['duration']/1000)). "</td>";

//                        $filesize = round($val['filesize']/1024/1024, 2);

//                                echo "<td>" .$filesize. "</td>";

//                                echo "<td>" .$val['bitrate']. "</td>";

//                                echo "<td>" .$val['DateAdded']. "</td>";

//                                echo "<td>" .$val['BPM']. "</td>";

//                                echo "<td>" .$val['Rating']. "</td>";

//                                echo "<td>" .$val['Language']. "</td>";

//                                echo "<td>" .$val['Gender']. "</td>";

                                echo "<td>" .$val['PlayCount']. "</td>";

                        echo "</tr>";

                

                }

                echo "</tbody></table>";

                echo '<div id="pager" class="pager" style="top: 652px; position: absolute; ">

<div id="pager" class="pager">

        <form>

                <img src="/templates/life/style/table/first.png" class="first"/>

                <img src="/templates/life/style/table/prev.png" class="prev"/>

                <input type="text" class="pagedisplay"/>

                <img src="/templates/life/style/table/next.png" class="next"/>

                <img src="/templates/life/style/table/last.png" class="last"/>

                <select class="pagesize">

                        <option selected="selected"  value="10">10</option>

                        <option value="20">20</option>

                        <option value="30">30</option>

                        <option  value="40">40</option>

                        <option  value="500">500</option>

                </select>

        </form>

</div>';

        }

} // конец класса

// Массив для построения интерфейса команд

$r_actions = array();

$r_result = "";

$r_actions = array(

        "info"=>radioboss::C_VNIMANIE,

        "play"=>radioboss::C_PLAY,

        "stop"=>radioboss::C_STOP,

        "next"=>radioboss::C_NEXT,

        "prev"=>radioboss::C_PREV,

        "playbackinfo"=>radioboss::A_PLAYBACKINFO,

        "inserttoend"=>radioboss::A_INSERT_END,

        "insertpostcurrent"=>radioboss::A_INSERT_CURRENT,

        "inserttopos"=>radioboss::A_INSERT_TO_POS,

        "getlibrary"=>radioboss::A_GETLIBRARY

        );

?>