Git commit cbf8f822de35748e079df695dd322ada32d02f69 by Robin Appelman. Committed on 01/08/2011 at 00:32. Pushed by rappelman into branch 'master'. automatically scan songs that are played from the filebrowser M +6 -1 apps/media/js/player.js M +13 -0 apps/media/ajax/api.php M +1 -3 apps/media/lib_scanner.php http://commits.kde.org/owncloud/cbf8f822de35748e079df695dd322ada32d02f69 diff --git a/apps/media/ajax/api.php b/apps/media/ajax/api.php index b888316..e0183ff 100644 --- a/apps/media/ajax/api.php +++ b/apps/media/ajax/api.php @@ -107,6 +107,19 @@ if($arguments['action']){ case 'get_songs': echo json_encode(OC_MEDIA_COLLECTION::getSongs($arguments['artist'],$arguments['album'],$arguments['search'])); break; + case 'get_path_info': + $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']); + echo json_encode($song); + } + break; case 'play': ob_end_clean(); diff --git a/apps/media/js/player.js b/apps/media/js/player.js index ebb8044..1243f20 100644 --- a/apps/media/js/player.js +++ b/apps/media/js/player.js @@ -96,7 +96,12 @@ var PlayList={ }, addFile:function(path){ var type=musicTypeFromFile(path); - var item={name:'unknown',artist:'unknown',album:'unknwon',type:type};//todo get song data + var item={name:'unknown',artist:'unknown',album:'unknwon',type:type}; + $.getJSON(OC.filePath('media','ajax','api.php')+'?action=get_path_info&path='+encodeURIComponent(path),function(song){ + item.name=song.song_name; + item.artist=song.artist; + item.album=song.album; + }); item[type]=PlayList.urlBase+encodeURIComponent(path); PlayList.items.push(item); }, diff --git a/apps/media/lib_scanner.php b/apps/media/lib_scanner.php index 4d0b38f..ab38d76 100644 --- a/apps/media/lib_scanner.php +++ b/apps/media/lib_scanner.php @@ -38,7 +38,6 @@ class OC_MEDIA_SCANNER{ * @return int the number of songs found */ public static function scanFolder($path){ -// OC_DB::beginTransaction(); if (OC_Filesystem::is_dir($path)) { $songs=0; if ($dh = OC_Filesystem::opendir($path)) { @@ -62,7 +61,6 @@ class OC_MEDIA_SCANNER{ }else{ $songs=0; } -// OC_DB::commit(); return $songs; } @@ -141,6 +139,6 @@ class OC_MEDIA_SCANNER{ $albumId=self::$albums[$artist.'/'.$album]; } $songId=OC_MEDIA_COLLECTION::addSong($title,$path,$artistId,$albumId,$length,$track,$size); - return !($title=='unkown' && $artist=='unkown' && $album=='unkown'); + return (!($title=='unkown' && $artist=='unkown' && $album=='unkown'))?$songId:0; } } \ No newline at end of file