-
Notifications
You must be signed in to change notification settings - Fork 0
/
ext.js
85 lines (75 loc) · 2.12 KB
/
ext.js
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
/*
When the popup is loaded, get the references for the form on the popup
and add an event listener for the submit button
Once the button is clicked, send the input values as a message to the
background script
*/
document.addEventListener("DOMContentLoaded", () => {
var myForm = document.getElementById("playlist-song");
var playlist = document.getElementById("playlist");
var song = document.getElementById("song");
console.log(playlist);
console.log(song);
myForm.addEventListener("submit", (e) => {
e.preventDefault();
//check for valid URL
let re = /https\:\/\/www\.youtube\.com\/playlist\?list\=(.*)/i;
let re2 = /https\:\/\/www\.youtube\.com\/watch\?v\=.*\&list\=(.*)/i;
playlist = String(playlist.value);
//playlist ID
let plID = getPLID(playlist, re);
if (!plID) {
plID = getPLID(playlist, re2);
}
if (!plID) {
createError();
return;
}
console.log(plID);
execute(plID, String(song.value));
});
});
/*
When the popup receives a response from the background script containing an
error statement, it will display the error to the user
*/
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
if (!request.error) {
return;
}
createError();
});
function createError() {
if (document.getElementById("error")) {
return;
}
let div = document.createElement("div");
div.innerHTML =
"A valid youtube playlist starts with 'https://www.youtube.com/playlist?list='. Please check your URL and try again.";
div.id = "error";
console.log(div);
document.body.appendChild(div);
setTimeout(() => {
document.getElementById("error").remove();
}, 8000);
}
function getPLID(url, regex) {
let match = url.match(regex);
return match ? match[1] : null;
}
function execute(listId, vid) {
var key = "AIzaSyAHWcI3VyLBUnMqetk7XZxK6KybC21ZzaI";
var URL = "https://www.googleapis.com/youtube/v3/playlistItems?";
var options = {
part: ["snippet"],
key: key,
playlistId: listId,
maxResults: 100,
};
chrome.runtime.sendMessage({
URL: URL,
key: key,
options: options,
vid: vid,
});
}