diff options
author | Robin Appelman <icewind1991@gmail.com> | 2011-08-01 23:53:01 +0200 |
---|---|---|
committer | Robin Appelman <icewind1991@gmail.com> | 2011-08-01 23:55:47 +0200 |
commit | 9f981de85437930ec89ecc85c2e79f096f65b5bb (patch) | |
tree | 49a313889f8aefdc131af360d539a4840d7422d5 /apps/media/js/scanner.js | |
parent | ad45c78b44f887be547329501cba7c84c3a3c331 (diff) | |
download | nextcloud-server-9f981de85437930ec89ecc85c2e79f096f65b5bb.tar.gz nextcloud-server-9f981de85437930ec89ecc85c2e79f096f65b5bb.zip |
fance collection scanning wip
Diffstat (limited to 'apps/media/js/scanner.js')
-rw-r--r-- | apps/media/js/scanner.js | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/apps/media/js/scanner.js b/apps/media/js/scanner.js new file mode 100644 index 00000000000..e3867580bdb --- /dev/null +++ b/apps/media/js/scanner.js @@ -0,0 +1,72 @@ +Scanner={ + songsFound:0, + songsScanned:0, + startTime:null, + endTime:null, + stopScanning:false, + currentIndex:-1, + songs:[], + findSongs:function(ready){ + $.getJSON(OC.linkTo('media','ajax/api.php')+'?action=find_music',function(songs){ + Scanner.songsFound=songs.length; + Scanner.currentIndex=-1 + if(ready){ + ready(songs) + } + }); + }, + scanFile:function(path,ready){ + path=encodeURIComponent(path); + $.getJSON(OC.linkTo('media','ajax/api.php')+'?action=get_path_info&path='+path,function(song){ + if(ready){ + ready(song); + } + if(song){//do this after the ready call so we dont hold up the next ajax call + var artistId=song.song_artist; + Scanner.songsScanned++; + $('#scan span.songCount').text(Scanner.songsScanned); + var progress=(Scanner.songsScanned/Scanner.songsFound)*100; + $('#scanprogressbar').progressbar('value',progress) + Collection.addSong(song); + } + }); + }, + scanCollection:function(ready){ + $('#scanprogressbar').progressbar({ + value:0, + }); + Scanner.startTime=new Date().getTime()/1000; + Scanner.findSongs(function(songs){ + Scanner.songs=songs; + Scanner.start(); + }); + }, + stop:function(){ + Scanner.stopScanning=true; + }, + start:function(ready){ + Scanner.stopScanning=false; + var scanSong=function(){ + Scanner.currentIndex++; + if(!Scanner.stopScanning && Scanner.currentIndex<Scanner.songs.length){ + Scanner.scanFile(Scanner.songs[Scanner.currentIndex],scanSong) + }else{ + Scanner.endTime=new Date().getTime()/1000; + if(ready){ + ready(); + } + } + } + scanSong(); + }, + toggle:function(){ + if(Scanner.stopScanning){ + Scanner.start(); + $('#scan input.stop').val('Pause'); + }else{ + Scanner.stop(); + $('#scan input.stop').val('Resume'); + } + } + +} |