Merge lp:~mims-michael/nuvola-player/rdio-fix into lp:nuvola-player/2.5.x

Proposed by Michael Mims
Status: Merged
Approved by: Jiří Janoušek
Approved revision: 366
Merged at revision: 499
Proposed branch: lp:~mims-michael/nuvola-player/rdio-fix
Merge into: lp:nuvola-player/2.5.x
Diff against target: 144 lines (+12/-80)
2 files modified
data/nuvolaplayer/services/rdio/integration.js (+11/-79)
data/nuvolaplayer/services/rdio/metadata.conf (+1/-1)
To merge this branch: bzr merge lp:~mims-michael/nuvola-player/rdio-fix
Reviewer Review Type Date Requested Status
Jiří Janoušek Approve
StefanL Pending
Review via email: mp+114234@code.launchpad.net

Description of the change

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.

To post a comment you must log in.
Revision history for this message
Jiří Janoušek (fenryxo) wrote :

Looks good for me. Waiting for a result of a Stefan's review.

review: Approve
Revision history for this message
Michael Mims (mims-michael) wrote :

I don't think this will address the issue in the attached bug. This is mainly a fix for the art, artist, song, album data binding.

Revision history for this message
Jiří Janoušek (fenryxo) wrote :

You're right, thanks.

Revision history for this message
Jiří Janoušek (fenryxo) wrote :

More than 30 days without response from the maintainer, so I'm considering it approved.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'data/nuvolaplayer/services/rdio/integration.js'
2--- data/nuvolaplayer/services/rdio/integration.js 2012-03-28 22:13:54 +0000
3+++ data/nuvolaplayer/services/rdio/integration.js 2012-07-10 17:01:21 +0000
4@@ -41,23 +41,6 @@
5
6
7 /**
8- * Determine, which version of the ui is currently being used.
9- * @returns 0 for the old ui and 1 for the new ui
10- */
11- Integration.prototype.getUiVersion = function(){
12- var uiVersion;
13- try {
14- if (playbackControls == undefined) {
15- uiVersion = 0;
16- }
17- }
18- catch (e) {
19- uiVersion = 1;
20- }
21- return uiVersion;
22- }
23-
24- /**
25 * Updates current playback state
26 */
27 Integration.prototype.update = function(){
28@@ -72,26 +55,13 @@
29 var can_thumbs_up = false;
30 var can_thumbs_down = false;
31 var can_favorite = false;
32- var uiVersion = this.getUiVersion();
33
34 try{
35- var album_art;
36- var album;
37- var artist;
38- var song;
39-
40- if(uiVersion == 1){
41- album_art = document.getElementsByClassName("album_link")[0].getElementsByClassName("image")[0].src;
42- album = null;
43- artist = document.getElementsByClassName("artist truncated_line")[0].innerText;
44- song = document.getElementsByClassName("name truncated_line")[0].innerText;
45- }
46- else {
47- album_art = document.getElementById('playerNowPlayingImage').src;
48- album = document.getElementById('playerNowPlayingAlbum').firstChild.innerText;
49- artist = document.getElementById('playerNowPlayingArtist').firstChild.innerText;
50- song = document.getElementById('playerNowPlayingTitle').firstChild.innerText;
51- }
52+ var playingTrack = R.Services.Player.model.get("playingTrack").attributes;
53+ album_art = playingTrack.icon;
54+ album = playingTrack.album;
55+ artist = playingTrack.artist;
56+ song = playingTrack.name;
57 }
58 catch(e){
59 //~ console.debug("Unable to obtain song info: " + e.message);
60@@ -100,14 +70,7 @@
61 try{
62 var state = Nuvola.STATE_NONE;
63
64- var rdiostate;
65- if(uiVersion == 1){
66- rdiostate = R.Services.Player.model.attributes.playState;//new
67- }
68- else {
69- rdiostate = player_model.playState;//old
70- }
71-
72+ var rdiostate = R.Services.Player.model.attributes.playState;//new
73
74 switch (rdiostate){
75 case 0: state = Nuvola.STATE_PAUSED; break;
76@@ -140,53 +103,22 @@
77 * @param cmd command to execute
78 */
79 Integration.prototype.command = function(cmd){
80- uiVersion = this.getUiVersion();
81-
82 try{
83 switch(cmd){
84 case Nuvola.CMD_PLAY:
85- if(this.state != Nuvola.STATE_PLAYING){
86- if(uiVersion == 1){
87- document.getElementsByClassName("play_pause")[0].click();
88- }
89- else{
90- playbackControls.playPause();
91- }
92- }
93+ if(this.state != Nuvola.STATE_PLAYING) R.Services.Player.playPause();
94 break;
95 case Nuvola.CMD_PAUSE:
96- if(this.state == Nuvola.STATE_PLAYING){
97- if(uiVersion == 1){
98- document.getElementsByClassName("play_pause")[0].click();
99- }
100- else{
101- playbackControls.playPause();
102- }
103- }
104+ if(this.state == Nuvola.STATE_PLAYING) R.Services.Player.playPause();
105 break;
106 case Nuvola.CMD_TOGGLE:
107- if(uiVersion == 1){
108- document.getElementsByClassName("play_pause")[0].click();
109- }
110- else{
111- playbackControls.playPause();
112- }
113+ R.Services.Player.playPause();
114 break;
115 case Nuvola.CMD_PREV_SONG:
116- if(uiVersion == 1){
117- document.getElementsByClassName("prev")[0].click();
118- }
119- else{
120- getPlayer()._previous();
121- }
122+ R.Services.Player.previous();
123 break;
124 case Nuvola.CMD_NEXT_SONG:
125- if(uiVersion == 1){
126- document.getElementsByClassName("next")[0].click();
127- }
128- else{
129- getPlayer()._next();
130- }
131+ R.Services.Player.next();
132 break;
133 default:
134 // Other commands are not supported
135
136=== modified file 'data/nuvolaplayer/services/rdio/metadata.conf'
137--- data/nuvolaplayer/services/rdio/metadata.conf 2012-03-14 13:21:00 +0000
138+++ data/nuvolaplayer/services/rdio/metadata.conf 2012-07-10 17:01:21 +0000
139@@ -3,4 +3,4 @@
140 sandbox_pattern = https?://((www\.)?rdio\.com/|ak.rdio\.com|)
141 maintainer_name = Stefan Lohmaier
142 maintainer_link = https://launchpad.net/~stefan-lohmaier
143-version = 1
144+version = 2

Subscribers

People subscribed via source and target branches