-
Notifications
You must be signed in to change notification settings - Fork 0
/
background.html
131 lines (122 loc) · 3.43 KB
/
background.html
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<html>
<head>
<script type="text/javascript" src="jquery-1.5.min.js"></script>
<script type="text/javascript">
var songURLs = new Array(11);
songURLs[0] = "http://music.incompetech.com/royalty-free/Windswept.mp3";
songURLs[1] = "http://music.incompetech.com/royalty-free/Cattails.mp3";
songURLs[2] = "http://music.incompetech.com/royalty-free/New%20Friendly.mp3";
songURLs[3] = "http://music.incompetech.com/royalty-free/Somewhere%20Sunny%20(ver%202).mp3";
songURLs[4] = "http://music.incompetech.com/royalty-free/Sunshine%20A.mp3";
songURLs[5] = "http://music.incompetech.com/royalty-free/Deliberate%20Thought.mp3";
songURLs[6] = "http://music.incompetech.com/royalty-free/Somewhere%20Sunny.mp3";
songURLs[7] = "http://music.incompetech.com/royalty-free/Happy%20Alley.mp3";
songURLs[8] = "http://music.incompetech.com/royalty-free/Revival.mp3";
songURLs[9] = "http://music.incompetech.com/royalty-free/Aretes.mp3";
songURLs[10] = "http://music.incompetech.com/royalty-free/How%20it%20Begins.mp3";
var audioURL;
var audioObject;
var audioPlaying = false;
var wasPlaying = false;
var wasPlayingIsCurrent = false;
function chooseAudio() {
audioURL = undefined;
audioObject = undefined;
/* $.get("http://incompetech.com/m/c/royalty-free/index.html?keywords=017&Search=Search", function(data, textStatus, jqXHR) {
var dat = $(data);
var linklist = dat.filter(".music");
var linklistlength = linklist.length;
var randidx = Math.floor(Math.random() * linklistlength);
var chosen = linklist.slice(randidx).first;
var chosenURL = chosen.attr("href");
audioURL = chosenURL;
});*/ // ajax doesn't work for me
var randidx = Math.floor(Math.random() * songURLs.length);
audioURL = songURLs[randidx];
}
function pauseAudio() {
if (audioObject != undefined) {
audioObject.pause();
}
audioPlaying = false;
}
function playAudio() {
if (audioObject == undefined) {
chooseAudio();
while (audioURL == undefined) {
// busy wait
}
loadAudio(false);
}
audioObject.play();
audioPlaying = true;
}
function loadAudio(autoplay) {
audioObject = new Audio();
audioObject.src = audioURL;
if (autoplay) {
audioObject.onload = playAudio;
}
audioObject.onend = nextAudio;
audioObject.load();
}
function checkChosen(autoplay) {
if (audioURL == undefined) {
loadAudio(autoplay);
} else {
setTimeout("checkChosen(" + autoplay + ")", 100);
}
}
function nextAudio(autoplay) {
var ap;
if (autoplay == undefined) {
ap = audioPlaying;
} else {
ap = autoplay;
}
if (audioPlaying) {
pauseAudio();
}
chooseAudio();
checkChosen(ap);
}
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
console.log(sender.tab ?
"from a content script:" + sender.tab.url :
"from the extension");
if (request.command == "play") {
playAudio();
sendResponse({farewell: "goodbye"});
} else if (request.command == "pause") {
pauseAudio();
sendResponse({});
} else if (request.command == "next") {
nextAudio();
sendResponse({});
}
}
);
chrome.tabs.onSelectionChanged.addListener(function(tabId, selectInfo) {
chrome.tabs.get(tabId, function(tab) {
if (tab.url.indexOf("canvasrider.com") == -1) {
if (!wasPlayingIsCurrent) {
wasPlaying = audioPlaying;
wasPlayingIsCurrent = true;
pauseAudio();
}
} else {
if (wasPlaying) {
playAudio();
}
wasPlayingIsCurrent = false;
}
});
});
</script>
</head>
<body>
Hey, man.
<a href="javascript:nextAudio(true);">Choose and play audio</a><br />
</body>
</html>