Неофициальный клуб пользователей HD видео плеера WD TV


»Юзер: »Пароль:   Запомнить? 
WDTV Forum / Форум про WD TV Live / Полезная информация / UMSP Plugin: echo.msk.ru (Радио "Эхо Москвы")
Написано:  31 Мар 2011 21:15
Небольшой UMSP-плагин для прослушивания подкастов радиостанции "Эхо Москвы".
Сделан на базе плагина bbc.

/conf/umsp.php
Код:

<?php

global $myMediaItems;

$myMediaItems[] = array
(
  'id'             => 'umsp://plugins/echo',
  'parentID'       => '0',
  'dc:creator'     => 'kapitan Nemo',
  'dc:title'       => 'echo',
  'dc:date'        => '2011-03-15',
  'upnp:author'    => 'myAuthor',
  'upnp:artist'    => 'myArtist',
  'upnp:album'     => 'myAlbum',
  'upnp:genre'     => 'myGenre',
  'upnp:length'    => '2:10:20',
  'desc'           => 'myDesc',
  'upnp:class'     => 'object.container',
  'upnp:album_art' => '',
  'duration'       => 'myDur3',
  'size'           => 'mySize3',
  'bitrate'        => 'myBitr',
  'protocolInfo'   => '*:*:*:*',
  'resolution'     => 'myReso',
  'colorDepth'     => 'myColor',
);

?>


echo.php
Код:

<?php

function _pluginMain($prmQuery) {
        $queryData = array();
        parse_str($prmQuery, $queryData);
        if ($queryData['feed'] !='') {
                $items = _pluginCreateVideoItems($queryData['feed']);
                return $items;
        }
        else {
         $items = _pluginCreateFeedList();

         return $items;
        }
}

function _pluginCreateFeedList(){

$channels = array(  "code",
            "sut",
            "personalno",
            "bountman",
            "bigechonet",
            "klinch",
            "interception",
//            "radiodetaly",
            "repl",
            "razvorot",
            "sportchanel",
            "footbal",
);

foreach ($channels as $key => $value)
        {
        $baseurl = 'http://www.echo.msk.ru/programs/';
        $feedrss = '/rss-audio.xml';
        $feedurl = $baseurl . $value . $feedrss;
        $reader = new XMLReader();
        $episodelistXML = file_get_contents($feedurl);
        $reader->XML($episodelistXML);
        while ($reader->read()) {
                if ($reader->nodeType == XMLReader::ELEMENT) {
                        if ($reader->localName == 'channel') {
                                $title = ($reader->readString ('title'));
                                $showname = explode("http", $title);
                            } # end if
                } # end if
        } # end while
    # Build the reply array
        $retMediaItems[] = array (
                            'id'            => 'umsp://plugins/echo?feed=' . $feedurl,
                            'dc:title'      => $showname[0],
                            'res'           => 'umsp://plugins/echo?feed=' . $feedurl,
                        'upnp:class'    => 'object.container',
                            ); // end array building
        } // end foreach
return $retMediaItems;

}

function _pluginCreateVideoItems($feed) {
$reader = new XMLReader();
$episodelistXML = file_get_contents($feed);
$reader->XML($episodelistXML);
while ($reader->read()) {
  if ($reader->nodeType == XMLReader::ELEMENT) {
   if ($reader->localName == 'title') {
    $time = $reader->readString ('title');
   }
   if ($reader->localName == 'description'){
    $guests = $reader->readString('descripton');
    $guests1 = strstr($guests, 'guests');

    if(strlen($guests1)==0)$guests1 = strstr($guests, 'contributors');
   
    $guests = strstr($guests1, 'name');
    $end = strpos($guests, "</a>");
    $guests = substr($guests, 6, $end-6);

   }
   if(strlen($guests)!=0){
    if ($reader->localName == 'enclosure') {
     $location = $reader->getAttribute('url');
     if (strpos($location, '.mp3') !== false || strpos($location, '.wav') !== false) {
      $data = array(
                    'url'         => $location,
                   );
      $dataString = http_build_query($data, 'pluginvar_');
      $retMediaItems[] = array (
                                'id'            => 'umsp://plugins/echo?' . $dataString,
                                'dc:title'      => $time." ".$guests,
                                'res'           => $location,
                                'upnp:class'    => 'object.item.audioitem',
                                'protocolInfo'  => 'http-get:*:audio/mpeg:*',
                               );
     }
    }
   }
  }
}
return $retMediaItems;
}
?>

Поделитесь со своими друзьями в соцсетях:

WDTV Forum / Форум про WD TV Live / Полезная информация / UMSP Plugin: echo.msk.ru (Радио "Эхо Москвы")