diff --git a/chrome/content/groove-shredder.js b/chrome/content/groove-shredder.js index e54ee77..ec6c10d 100644 --- a/chrome/content/groove-shredder.js +++ b/chrome/content/groove-shredder.js @@ -5,11 +5,14 @@ var orgArgeeCodeGrooveShredder = {}; orgArgeeCodeGrooveShredder.$ = jQuery.noConflict(); /* Global Variables contained in the namespace */ -// orgArgeeCodeGrooveShredder.console = Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService); +orgArgeeCodeGrooveShredder.console = Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService); orgArgeeCodeGrooveShredder.download_manager = Components.classes["@mozilla.org/download-manager;1"].getService(Components.interfaces.nsIDownloadManager); orgArgeeCodeGrooveShredder.pref_service = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService); orgArgeeCodeGrooveShredder.gpreferences = orgArgeeCodeGrooveShredder.pref_service.getBranch("extensions.grooveshredder"); +/* Debug flag in case of emergency */ +orgArgeeCodeGrooveShredder.debug = true; + /** * grooveshredder * @@ -553,21 +556,33 @@ orgArgeeCodeGrooveShredder.utility = var theApp = orgArgeeCodeGrooveShredder; // Store the POST data for re-use theApp.streamKeyData = postdata; + // Extract this song's ID + var songId = postdata.match(/"songID":([0-9]+)/)[1]; // Add a button to grooveshark var element = theApp.browser.contentDocument.getElementById("playerDetails_nowPlaying"); theApp.$(element).children('b').remove(); theApp.$(element).append(' \ Download Song'); + // Obtain the file name + var songFile = theApp.fileUtilities.getFileName(); + // Attach a click handler theApp.$(element).children('b').click(function(){ - theApp.grooveDownloader.getStreamKeyAndSave(0, "", 5); + theApp.grooveDownloader.addDownload(songId, songFile, 5); }); - // Autodownload if preferred - if(theApp.gpreferences.getBoolPref(".autoget")){ + // Autodownload if preferred (make sure it's not the same song) + if(theApp.gpreferences.getBoolPref(".autoget") + && this.songId != songId){ + // This is now our song + this.songId = songId; // Download the song automagically - theApp.grooveDownloader.getStreamKeyAndSave(0, "", 5); + theApp.grooveDownloader.addDownload(songId, songFile, 5); // Skip to next song if preferred if(theApp.gpreferences.getBoolPref(".autonext")){ - theApp.browser.contentDocument.getElementById("player_next").click(); + setTimeout(function(){ + theApp.browser.contentDocument + .getElementById("player_next") + .click(); + }, 1000); } } }, @@ -690,4 +705,11 @@ orgArgeeCodeGrooveShredder.utility = theApp : orgArgeeCodeGrooveShredder } +orgArgeeCodeGrooveShredder.debugMessage = +function(logMessage){ + var theApp = orgArgeeCodeGrooveShredder; + if(theApp.debug) + theApp.console.logStringMessage(logMessage); +} + window.addEventListener("load", function () { orgArgeeCodeGrooveShredder.grooveshredder.onLoad(); }, false); diff --git a/chrome/content/options.js b/chrome/content/options.js index 9351f9f..989441f 100644 --- a/chrome/content/options.js +++ b/chrome/content/options.js @@ -48,7 +48,7 @@ $grooveShredderQuery(function(){ $grooveShredderQuery.get('https://addons.mozilla.org/en-US/firefox/addon/grooveshredder/', function(data){ var re = /([0-9.]+)<\/span>/i var version = re.exec(data)[1]; - var my_version = '1.14.3'; + var my_version = '1.14.5'; if(version > my_version){ $grooveShredderQuery('#abovecontainer .orange').css('display', 'block'); } else if(version < my_version) { diff --git a/chrome/locale/en-US/grooveshredder.properties b/chrome/locale/en-US/grooveshredder.properties index 4ced819..77d3bbb 100644 --- a/chrome/locale/en-US/grooveshredder.properties +++ b/chrome/locale/en-US/grooveshredder.properties @@ -8,4 +8,4 @@ multiWarn=It is HIGHLY recommended to turn off duplicate file prompts,\r\nas wel prefsTitle=Groove Shredder preferences onlyNewTab=Groove Shredder has acquired a new token, it won't work with older tabs. willDownload=songs will be downloaded. -scanningSongs=Scanning songs. Please wait... \ No newline at end of file +scanningSongs=Scanning songs. Please wait... diff --git a/chrome/locale/en-US/options.dtd b/chrome/locale/en-US/options.dtd index e23e034..5d39951 100644 --- a/chrome/locale/en-US/options.dtd +++ b/chrome/locale/en-US/options.dtd @@ -29,4 +29,4 @@ - + diff --git a/chrome/locale/ja-JP/grooveshredder.properties b/chrome/locale/ja-JP/grooveshredder.properties index e4e99e6..3759dfd 100644 --- a/chrome/locale/ja-JP/grooveshredder.properties +++ b/chrome/locale/ja-JP/grooveshredder.properties @@ -6,4 +6,6 @@ overPrompt=保存先でもう一つがあります。 書き換えればいい playFirst=このボタンを使うまえに、一つ歌を遣らなくちゃいけません。 multiWarn=It is HIGHLY recommended to turn off duplicate file prompts,\r\nas well as skipping the file select dialog.\r\nDo you still want to Continue? prefsTitle=グルブシュレッダ設定 -onlyNewTab= \ No newline at end of file +onlyNewTab=Groove Shredder has acquired a new token, it won't work with older tabs. +willDownload=songs will be downloaded. +scanningSongs=Scanning songs. Please wait... diff --git a/chrome/locale/ja-JP/options.dtd b/chrome/locale/ja-JP/options.dtd index 8e0dcf6..6ccf56a 100644 --- a/chrome/locale/ja-JP/options.dtd +++ b/chrome/locale/ja-JP/options.dtd @@ -29,4 +29,4 @@ - + diff --git a/install.rdf b/install.rdf index c81df12..8b16385 100644 --- a/install.rdf +++ b/install.rdf @@ -1,14 +1,14 @@ - grooveshredder@code.argee.org - 2 - Groove Shredder - 1.14.3 - Rohit Garg - - An extension to download mp3 files from Grooveshark. - chrome://grooveshredder/content/options.xul + grooveshredder@code.argee.org + 2 + Groove Shredder + 1.14.5 + Rohit Garg + + An extension to download mp3 files from Grooveshark + chrome://grooveshredder/content/options.xul chrome://grooveshredder/skin/shark.png