private static function printSong($song, $artistName = false, $albumName = false)
 {
     if (!$artistName) {
         $artistName = OC_MEDIA_COLLECTION::getArtistName($song['song_artist']);
     }
     if (!$albumName) {
         $albumName = OC_MEDIA_COLLECTION::getAlbumName($song['song_album']);
     }
     $artistName = utf8_decode(htmlentities($artistName));
     $albumName = utf8_decode(htmlentities($albumName));
     $id = $song['song_id'];
     $name = utf8_decode(htmlentities($song['song_name']));
     $artist = $song['song_artist'];
     $album = $song['song_album'];
     echo "\t<song id='{$id}'>\n";
     echo "\t\t<title>{$name}</title>\n";
     echo "\t\t<artist id='{$artist}'>{$artistName}</artist>\n";
     echo "\t\t<album id='{$album}'>{$albumName}</album>\n";
     $url = OC_Helper::linkTo('media', 'server/xml.server.php', null, true) . "?action=play&song={$id}&auth={$_GET['auth']}";
     $url = htmlentities($url);
     echo "\t\t<url>{$url}</url>\n";
     echo "\t\t<time>{$song['song_length']}</time>\n";
     echo "\t\t<track>{$song['song_track']}</track>\n";
     echo "\t\t<size>{$song['song_size']}</size>\n";
     echo "\t\t<art></art>\n";
     echo "\t\t<rating>0</rating>\n";
     echo "\t\t<preciserating>0</preciserating>\n";
     echo "\t</song>\n";
 }
if (OC_User::checkPassword($user, $pass)) {
    OC_Util::setupFS($user);
    OC_MEDIA_COLLECTION::$uid = $user;
} else {
    exit;
}
if (isset($_POST['play']) and $_POST['play'] == 'true') {
    if (!isset($_POST['song'])) {
        exit;
    }
    $song = OC_MEDIA_COLLECTION::getSong($_POST['song']);
    $ftype = OC_Filesystem::getMimeType($song['song_path']);
    header('Content-Type:' . $ftype);
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . OC_Filesystem::filesize($song['song_path']));
    OC_Filesystem::readfile($song['song_path']);
}
$artist = isset($_POST['artist']) ? '%' . $_POST['artist'] . '%' : '';
$album = isset($_POST['album']) ? '%' . $_POST['album'] . '%' : '';
$song = isset($_POST['song']) ? $_POST['song'] : '';
$artist = OC_MEDIA_COLLECTION::getArtistId($artist);
$album = OC_MEDIA_COLLECTION::getAlbumId($album, $artist);
$songs = OC_MEDIA_COLLECTION::getSongs($artist, $album, $song);
$baseUrl = OC_Util::getServerURL() . OC_Helper::linkTo('media', 'tomahawk.php');
$results = array();
foreach ($songs as $song) {
    $results[] = (object) array('artist' => OC_MEDIA_COLLECTION::getArtistName($song['song_artist']), 'album' => OC_MEDIA_COLLECTION::getAlbumName($song['song_album']), 'track' => $song['song_name'], 'source' => 'ownCloud', 'mimetype' => OC_Filesystem::getMimeType($song['song_path']), 'extension' => substr($song['song_path'], strrpos($song['song_path'], '.')), 'url' => $baseUrl . '?play=true&song=' . $song['song_id'], 'bitrate' => round($song['song_id'] / $song['song_length'], 0), 'duration' => round($song['song_length'], 0), 'size' => $song['song_size'], 'score' => (double) 1.0);
}
OC_JSON::encodedPrint($results);
     OC_JSON::encodedPrint(OC_MEDIA_COLLECTION::getAlbums($arguments['artist'], $arguments['search']));
     break;
 case 'get_songs':
     OC_JSON::encodedPrint(OC_MEDIA_COLLECTION::getSongs($arguments['artist'], $arguments['album'], $arguments['search']));
     break;
 case 'get_path_info':
     if (OC_Filesystem::file_exists($arguments['path'])) {
         $songId = OC_MEDIA_COLLECTION::getSongByPath($arguments['path']);
         if ($songId == 0) {
             unset($_SESSION['collection']);
             $songId = OC_MEDIA_SCANNER::scanFile($arguments['path']);
         }
         if ($songId > 0) {
             $song = OC_MEDIA_COLLECTION::getSong($songId);
             $song['artist'] = OC_MEDIA_COLLECTION::getArtistName($song['song_artist']);
             $song['album'] = OC_MEDIA_COLLECTION::getAlbumName($song['song_album']);
             OC_JSON::encodedPrint($song);
         }
     }
     break;
 case 'play':
     ob_end_clean();
     $ftype = OC_Filesystem::getMimeType($arguments['path']);
     $songId = OC_MEDIA_COLLECTION::getSongByPath($arguments['path']);
     OC_MEDIA_COLLECTION::registerPlay($songId);
     header('Content-Type:' . $ftype);
     // calc an offset of 24 hours
     $offset = 3600 * 24;
     // calc the string in GMT not localtime and add the offset
     $expire = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
     //output the HTTP header
Exemplo n.º 4
0
 private static function printSong($song, $artistName = false, $albumName = false)
 {
     if (!$artistName) {
         $artistName = OC_MEDIA_COLLECTION::getArtistName($song['song_artist']);
     }
     if (!$albumName) {
         $albumName = OC_MEDIA_COLLECTION::getAlbumName($song['song_album']);
     }
     $artistName = self::fixXmlString($artistName);
     $albumName = self::fixXmlString($albumName);
     $id = $song['song_id'];
     $name = self::fixXmlString($song['song_name']);
     $artist = $song['song_artist'];
     $album = $song['song_album'];
     echo "\t<song id='{$id}'>\n";
     echo "\t\t<title>{$name}</title>\n";
     echo "\t\t<artist id='{$artist}'>{$artistName}</artist>\n";
     echo "\t\t<album id='{$album}'>{$albumName}</album>\n";
     $url = OCP\Util::linkToRemote('ampache') . "server/xml.server.php/?action=play&song={$id}&auth={$_GET['auth']}";
     $url = self::fixXmlString($url);
     echo "\t\t<url>{$url}</url>\n";
     echo "\t\t<time>{$song['song_length']}</time>\n";
     echo "\t\t<track>{$song['song_track']}</track>\n";
     echo "\t\t<size>{$song['song_size']}</size>\n";
     echo "\t\t<art> </art>\n";
     /* single space to make Viridian happy enough */
     echo "\t\t<rating>0</rating>\n";
     echo "\t\t<preciserating>0</preciserating>\n";
     echo "\t</song>\n";
 }