-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathPandora.bsstrategy
92 lines (92 loc) · 3.33 KB
/
Pandora.bsstrategy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
//
// Pandora.js
// BeardedSpice
//
// Created by Jose Falcon on 2013-12-16
// Updated by Anthony Whitaker on 2016-12-13
// Support for new UI added by Bret Martin on 2017-01-01
// Fix pause function in new UI by Andrew Ray on 2017-04-28
// Fix Tuner__Controls query by Paul Hoisington on 2017-06-23
// Copyright (c) 2013-2017 GPL v3 http://www.gnu.org/licenses/gpl.html
//
BSStrategy = {
version: 5,
displayName: "Pandora",
accepts: {
method: "predicateOnTab",
format: "%K LIKE[c] '*pandora.com*'",
args: ["URL"]
},
isPlaying: function () {
if (document.querySelector('.Tuner__Controls') !== null) {
return
document
.querySelector('.Tuner__Control__Play__Button')
.attributes['data-qa']
.value === 'pause_button';
} else {
return document.querySelector('.pauseButton').style.display === 'block';
}
},
toggle: function () {
if (document.querySelector('.Tuner__Controls') !== null) {
document.querySelector('.Tuner__Control__Play__Button').click();
} else {
var playButton = document.querySelector('.playButton');
var pauseButton = document.querySelector('.pauseButton');
if (playButton.style.display==='block') { playButton.click() }
else { pauseButton.click() }
}
},
next: function () {
document.querySelector('.Tuner__Controls') !== null ?
document.querySelector('.Tuner__Control__Skip__Button').click() :
document.querySelector('.skipButton').click();
},
pause: function () {
if(document.querySelector('.Tuner__Controls') !== null) {
var playPauseButton = document.querySelector('.Tuner__Control__Play__Button');
if (playPauseButton.attributes['data-qa'].value === 'pause_button') {
playPauseButton.click()
}
} else {
document.querySelector('.pauseButton').click();}
},
favorite: function () {
document.querySelector('.Tuner__Controls') !== null ?
document.querySelector('.Tuner__Control__ThumbUp__Button').click() :
document.querySelector('.thumbUpButton').click();
},
trackInfo: function () {
if (document.querySelector('.Tuner__Controls') !== null) {
return {
'track': document
.querySelector('div.Tuner__Audio__TrackDetail__title')
.innerText,
'artist': document
.querySelector('div.Tuner__Audio__TrackDetail__artist')
.innerText,
'album': document
.querySelector('.nowPlayingTopInfo__current__albumName')
.innerText,
'image': document
.querySelector('[data-qa=album_active_image]')
.style['background-image']
.slice(5, -2),
'favorited': document
.querySelector('[data-qa=thumbs_up_button]')
.classList.contains('ThumbUpButton--active')
};
} else {
return {
'track': document.querySelector('.playerBarSong').innerText,
'artist': document.querySelector('.playerBarArtist').innerText,
'album': document.querySelector('.playerBarAlbum').innerText,
'image': document.querySelector('.playerBarArt').src,
'favorited': document
.querySelector('div.thumbUpButton')
.classList.contains('indicator')
};
};
}
}