← Back to team overview

nuvola-player-devel team mailing list archive

[Merge] lp:~mims-michael/nuvola-player/rdio-fix into lp:nuvola-player

 

Michael Mims has proposed merging lp:~mims-michael/nuvola-player/rdio-fix into lp:nuvola-player.

Requested reviews:
  Jiří Janoušek (fenryxo)

For more details, see:
https://code.launchpad.net/~mims-michael/nuvola-player/rdio-fix/+merge/114234

The latest update to the rdio web interface (which occurred ~2 weeks ago) broke the metadata portion of the service integration for nuvola. Additionally, rdio only supports the newest interface now so there is no need for the implementation of two versions of interfaces in the integration. I also added support for ablum titles in the new interface, as they were not captured in the previous implmentation. Not sure if this should be pushed to the service maintainer or to Nuvola, but I'm trying here first.
-- 
https://code.launchpad.net/~mims-michael/nuvola-player/rdio-fix/+merge/114234
Your team Nuvola Player Development is subscribed to branch lp:nuvola-player.
=== modified file 'data/nuvolaplayer/services/rdio/integration.js'
--- data/nuvolaplayer/services/rdio/integration.js	2012-03-28 22:13:54 +0000
+++ data/nuvolaplayer/services/rdio/integration.js	2012-07-10 17:01:21 +0000
@@ -41,23 +41,6 @@
 
 
 	/**
-	 * Determine, which version of the ui is currently being used.
-	 * @returns 0 for the old ui and 1 for the new ui
-	 */
-	Integration.prototype.getUiVersion = function(){
-		var uiVersion;
-		try {
-			if (playbackControls == undefined) {
-				uiVersion = 0;
-			}
-		}
-		catch (e) {
-			uiVersion = 1;
-		}
-		return uiVersion;
-	}
-	
-	/**
 	 * Updates current playback state
 	 */
 	Integration.prototype.update = function(){
@@ -72,26 +55,13 @@
 		var can_thumbs_up = false;
 		var can_thumbs_down = false;
 		var can_favorite = false;
-		var uiVersion = this.getUiVersion();
 			
 		try{
-			var album_art;
-			var album;
-			var artist;
-			var song;
-
-			if(uiVersion == 1){
-				album_art = document.getElementsByClassName("album_link")[0].getElementsByClassName("image")[0].src;
-				album = null;
-				artist = document.getElementsByClassName("artist truncated_line")[0].innerText;
-				song = document.getElementsByClassName("name truncated_line")[0].innerText;
-			}
-			else {
-				album_art = document.getElementById('playerNowPlayingImage').src;
-				album = document.getElementById('playerNowPlayingAlbum').firstChild.innerText;
-				artist = document.getElementById('playerNowPlayingArtist').firstChild.innerText;
-				song = document.getElementById('playerNowPlayingTitle').firstChild.innerText;
-			}
+			var playingTrack = R.Services.Player.model.get("playingTrack").attributes;				
+			album_art = playingTrack.icon;
+			album = playingTrack.album;
+			artist = playingTrack.artist;
+			song = playingTrack.name;
 		}
 		catch(e){
 			//~ console.debug("Unable to obtain song info: " + e.message);
@@ -100,14 +70,7 @@
 		try{
 			var state = Nuvola.STATE_NONE;
 
-			var rdiostate;
-			if(uiVersion == 1){
-				rdiostate = R.Services.Player.model.attributes.playState;//new
-			}
-			else {
-				rdiostate = player_model.playState;//old
-			}
-
+			var rdiostate = R.Services.Player.model.attributes.playState;//new
 
 			switch (rdiostate){
 				case 0: state = Nuvola.STATE_PAUSED; break;
@@ -140,53 +103,22 @@
 	 * @param cmd command to execute
 	 */
 	Integration.prototype.command = function(cmd){
-		uiVersion = this.getUiVersion();
-
 		try{
 			switch(cmd){
 			case Nuvola.CMD_PLAY:
-				if(this.state != Nuvola.STATE_PLAYING){
-					if(uiVersion == 1){
-						document.getElementsByClassName("play_pause")[0].click();
-					}
-					else{
-						playbackControls.playPause();
-					}
-				}
+				if(this.state != Nuvola.STATE_PLAYING) R.Services.Player.playPause();
 				break;
 			case Nuvola.CMD_PAUSE:
-				if(this.state == Nuvola.STATE_PLAYING){
-					if(uiVersion == 1){
-						document.getElementsByClassName("play_pause")[0].click();
-					}
-					else{
-						playbackControls.playPause();
-					}
-				}
+				if(this.state == Nuvola.STATE_PLAYING) R.Services.Player.playPause();
 				break;
 			case Nuvola.CMD_TOGGLE:
-				if(uiVersion == 1){
-					document.getElementsByClassName("play_pause")[0].click();
-				}
-				else{
-					playbackControls.playPause();
-				}
+				R.Services.Player.playPause();
 				break;
 			case Nuvola.CMD_PREV_SONG:
-				if(uiVersion == 1){
-					document.getElementsByClassName("prev")[0].click();
-				}
-				else{
-					getPlayer()._previous();
-				}
+				R.Services.Player.previous();
 				break;
 			case Nuvola.CMD_NEXT_SONG:
-				if(uiVersion == 1){
-					document.getElementsByClassName("next")[0].click();
-				}
-				else{
-					getPlayer()._next();
-				}
+				R.Services.Player.next();
 				break;
 			default:
 				// Other commands are not supported

=== modified file 'data/nuvolaplayer/services/rdio/metadata.conf'
--- data/nuvolaplayer/services/rdio/metadata.conf	2012-03-14 13:21:00 +0000
+++ data/nuvolaplayer/services/rdio/metadata.conf	2012-07-10 17:01:21 +0000
@@ -3,4 +3,4 @@
 sandbox_pattern = https?://((www\.)?rdio\.com/|ak.rdio\.com|)
 maintainer_name = Stefan Lohmaier	
 maintainer_link = https://launchpad.net/~stefan-lohmaier
-version = 1
+version = 2


Follow ups