Skip to content
This repository has been archived by the owner on May 3, 2019. It is now read-only.

Commit

Permalink
Fix Spotify integration script (#258)
Browse files Browse the repository at this point in the history
* Fix Spotify integration script

The Spotify integration script had several errors preventing successful
extraction of metadata:

-	getArtist() and getSongTitle() were attempting to use the non-existent
	.text DOM Node property. Fixed to use .innerText
- getArtUrl() was using an outdated css selector to access the album art
	div
- isFavorite() was failing with an error if
	getButtons().addRemoveToMusic was null, which can be the case shortly
	after page load. Added a check for this.

* Fix Spotify favorite detection regex
  • Loading branch information
b0o authored and ColinDuquesnoy committed Jul 6, 2018
1 parent e1fa232 commit b425593
Showing 1 changed file with 12 additions and 5 deletions.
17 changes: 12 additions & 5 deletions src/plugins/web/spotify/integration.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,15 @@ function getPlaybackStatus() {

function getArtist() {
try {
return document.querySelector("#main > div > div.nowPlayingBar-container > footer > div.now-playing-bar > div.now-playing-bar__left > div > div > div.track-info__artists").children[0].children[0].children[0].text
return document.querySelector("#main > div > div.nowPlayingBar-container > footer > div.now-playing-bar > div.now-playing-bar__left > div > div > div.track-info__artists").children[0].children[0].children[0].innerText;
} catch (e) {
return ""
}
}

function getSongTitle() {
try {
return document.querySelector("#main > div > div.nowPlayingBar-container > footer > div > div.now-playing-bar__left > div > div > div.track-info__name > div").children[0].text;
return document.querySelector("#main > div > div.nowPlayingBar-container > footer > div > div.now-playing-bar__left > div > div > div.track-info__name > div").children[0].innerText;
} catch (e) {
return ""
}
Expand Down Expand Up @@ -107,13 +107,20 @@ function getVolume() {
}

function getArtUrl() {
var artUrlDiv = document.querySelector("#main > div > div.nowPlayingBar-container > footer > div > div.now-playing-bar__left > div > a > div > div > div.cover-art-image.cover-art-image-loaded");
var artUrlDiv = document.querySelector("#main > div > div.nowPlayingBar-container > footer > div > div.now-playing-bar__left > div > span > a > div > div > div > div.cover-art-image.cover-art-image-loaded");
if (artUrlDiv === null) {
return "";
}
var artUrl = artUrlDiv.style.backgroundImage;
return artUrl.replace('url("', "").replace('")', "");
}

function isFavorite() {
return getButtons().addRemoveToMusic.attributes.class.value.match(".*added.*") !== null;
var addRemoveToMusic = getButtons().addRemoveToMusic;
if (addRemoveToMusic === null) {
return false;
}
return addRemoveToMusic.attributes.class.value.match(".*active.*") !== null;
}

function update() {
Expand Down Expand Up @@ -165,4 +172,4 @@ function removeFromFavorites() {

function seekToPosition(position) {
// not supported
}
}

0 comments on commit b425593

Please sign in to comment.