private function printSongs($songs, $artistName = false, $albumName = false) { header('Content-Type: text/xml'); $tmpl = new \OC_Template('media', 'ampache/songs'); foreach ($songs as $song) { $songData = array(); if ($artistName) { $songData['artist_name'] = xmlentities($artistName); } else { $songData['artist_name'] = xmlentities($this->collection->getArtistName($song['song_artist'])); } if ($albumName) { $songData['album_name'] = xmlentities($albumName); } else { $songData['album_name'] = xmlentities($this->collection->getAlbumName($song['song_album'])); } $songData['id'] = $song['song_id']; $songData['name'] = xmlentities($song['song_name']); $songData['artist'] = $song['song_artist']; $songData['album'] = $song['song_album']; $songData['length'] = $song['song_length']; $songData['track'] = $song['song_track']; $songData['size'] = $song['song_size']; $url = \OCP\Util::linkToRemote('ampache') . 'server/xml.server.php/?action=play&song=' . $songData['id'] . '&auth=' . $_GET['auth']; $songData['url'] = xmlentities($url); $tmpl->append('songs', $songData); } $tmpl->printPage(); }
break; case 'get_songs': \OCP\JSON::encodedPrint($collection->getSongs($arguments['artist'], $arguments['album'], $arguments['search'])); break; case 'get_path_info': if (\OC\Files\Filesystem::file_exists($arguments['path'])) { $songId = $collection->getSongByPath($arguments['path']); if ($songId == 0) { unset($_SESSION['collection']); $scanner = new Scanner($collection); $songId = $scanner->scanFile($arguments['path']); } if ($songId > 0) { $song = $collection->getSong($songId); $song['artist'] = $collection->getArtistName($song['song_artist']); $song['album'] = $collection->getAlbumName($song['song_album']); \OCP\JSON::encodedPrint($song); } } break; case 'play': $ftype = \OC\Files\Filesystem::getMimeType($arguments['path']); if (substr($ftype, 0, 5) != 'audio' and $ftype != 'application/ogg') { echo 'Not an audio file'; exit; } $songId = $collection->getSongByPath($arguments['path']); $collection->registerPlay($songId); header('Content-Type:' . $ftype); \OCP\Response::enableCaching(3600 * 24); // 24 hour