summaryrefslogtreecommitdiffstats
path: root/apps/media/js/scanner.js
diff options
context:
space:
mode:
authorRobin Appelman <icewind1991@gmail.com>2011-08-01 23:53:01 +0200
committerRobin Appelman <icewind1991@gmail.com>2011-08-01 23:55:47 +0200
commit9f981de85437930ec89ecc85c2e79f096f65b5bb (patch)
tree49a313889f8aefdc131af360d539a4840d7422d5 /apps/media/js/scanner.js
parentad45c78b44f887be547329501cba7c84c3a3c331 (diff)
downloadnextcloud-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.js72
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');
+ }
+ }
+
+}