function search($query) { require_once 'lib_collection.php'; $l = OC_L10N::get('media'); $app_name = (string) $l->t('Music'); $artists = OC_MEDIA_COLLECTION::getArtists($query); $albums = OC_MEDIA_COLLECTION::getAlbums(0, $query); $songs = OC_MEDIA_COLLECTION::getSongs(0, 0, $query); $results = array(); foreach ($artists as $artist) { $results[] = new OC_Search_Result($artist['artist_name'], '', OCP\Util::linkTo('media', 'index.php') . '#artist=' . urlencode($artist['artist_name']), $app_name); } foreach ($albums as $album) { $artist = OC_MEDIA_COLLECTION::getArtistName($album['album_artist']); $results[] = new OC_Search_Result($album['album_name'], 'by ' . $artist, OCP\Util::linkTo('media', 'index.php') . '#artist=' . urlencode($artist) . '&album=' . urlencode($album['album_name']), $app_name); } foreach ($songs as $song) { $minutes = floor($song['song_length'] / 60); $secconds = $song['song_length'] % 60; $artist = OC_MEDIA_COLLECTION::getArtistName($song['song_artist']); $album = OC_MEDIA_COLLECTION::getalbumName($song['song_album']); $results[] = new OC_Search_Result($song['song_name'], "by {$artist}, in {$album} {$minutes}:{$secconds}", OCP\Util::linkTo('media', 'index.php') . '#artist=' . urlencode($artist) . '&album=' . urlencode($album) . '&song=' . urlencode($song['song_name']), $app_name); } return $results; }
public static function search_songs($params) { if (!self::checkAuth($params)) { echo "<root>\n\t<error code='400'>Invalid login</error>\n</root>"; return; } $filter = $params['filter']; $artists = OC_MEDIA_COLLECTION::getArtists($filter); $albums = OC_MEDIA_COLLECTION::getAlbums(0, $filter); $songs = OC_MEDIA_COLLECTION::getSongs(0, 0, $filter); foreach ($artists as $artist) { $songs = array_merge($songs, OC_MEDIA_COLLECTION::getSongs($artist['artist_id'])); } foreach ($albums as $album) { $songs = array_merge($songs, OC_MEDIA_COLLECTION::getSongs($album['album_artist'], $album['album_id'])); } echo '<root>'; foreach ($songs as $song) { self::printSong($song); } echo '</root>'; }
OC_DB::beginTransaction(); set_time_limit(0); //recursive scan can take a while $path = $arguments['path']; echo OC_MEDIA_SCANNER::scanFolder($path); OC_DB::commit(); flush(); break; case 'scanFile': echo OC_MEDIA_SCANNER::scanFile($arguments['path']) ? 'true' : 'false'; break; case 'get_artists': OC_JSON::encodedPrint(OC_MEDIA_COLLECTION::getArtists($arguments['search'])); break; case 'get_albums': 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']);