2022-04-01 01:40:39 +00:00
|
|
|
/*
|
|
|
|
Loaded into popup index.html
|
|
|
|
*/
|
|
|
|
|
|
|
|
let browserType = getBrowser();
|
|
|
|
|
|
|
|
// boilerplate to dedect browser type api
|
|
|
|
function getBrowser() {
|
|
|
|
if (typeof chrome !== "undefined") {
|
|
|
|
if (typeof browser !== "undefined") {
|
|
|
|
console.log("detected firefox");
|
|
|
|
return browser;
|
|
|
|
} else {
|
|
|
|
console.log("detected chrome");
|
|
|
|
return chrome;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
console.log("failed to dedect browser");
|
|
|
|
throw "browser detection error"
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
// store access details
|
|
|
|
document.getElementById("save-login").addEventListener("click", function () {
|
|
|
|
console.log("save form");
|
|
|
|
let toStore = {
|
|
|
|
"access": {
|
|
|
|
"url": document.getElementById("url").value,
|
|
|
|
"port": document.getElementById("port").value,
|
|
|
|
"apiKey": document.getElementById("api-key").value
|
|
|
|
}
|
|
|
|
};
|
|
|
|
console.log(toStore);
|
|
|
|
browserType.storage.local.set(toStore, function() {
|
|
|
|
console.log("Stored connection details: " + JSON.stringify(toStore));
|
|
|
|
});
|
|
|
|
})
|
|
|
|
|
2022-04-01 08:30:49 +00:00
|
|
|
|
|
|
|
function setStatusIcon(connected) {
|
|
|
|
|
|
|
|
let statusIcon = document.getElementById("status-icon")
|
|
|
|
if (connected == true) {
|
|
|
|
console.log("connected");
|
|
|
|
} else {
|
|
|
|
console.log("not connected");
|
|
|
|
statusIcon.innerHTML = "☒";
|
|
|
|
statusIcon.style.color = "red";
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2022-04-01 01:40:39 +00:00
|
|
|
// fill in form
|
|
|
|
document.addEventListener("DOMContentLoaded", async () => {
|
|
|
|
|
|
|
|
console.log("executing dom loader");
|
|
|
|
|
|
|
|
function onGot(item) {
|
|
|
|
if (!item.access) {
|
|
|
|
console.log("no access details found");
|
2022-04-01 08:30:49 +00:00
|
|
|
setStatusIcon(false);
|
2022-04-01 01:40:39 +00:00
|
|
|
return
|
|
|
|
}
|
|
|
|
console.log(item.access);
|
|
|
|
document.getElementById("url").value = item.access.url;
|
|
|
|
document.getElementById("port").value = item.access.port;
|
|
|
|
document.getElementById("api-key").value = item.access.apiKey;
|
|
|
|
};
|
|
|
|
|
|
|
|
function onError(error) {
|
|
|
|
console.log(`Error: ${error}`);
|
|
|
|
};
|
|
|
|
|
|
|
|
browserType.storage.local.get("access", function(result) {
|
|
|
|
onGot(result)
|
|
|
|
});
|
|
|
|
|
|
|
|
browserType.storage.local.get("youtube", function(result) {
|
|
|
|
downlodButton(result);
|
|
|
|
})
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
function downlodButton(result) {
|
|
|
|
console.log("running build dl button");
|
|
|
|
let download = document.getElementById("download");
|
|
|
|
let title = document.createElement("p");
|
|
|
|
title.innerText = result.youtube.title;
|
|
|
|
|
|
|
|
let button = document.createElement("button");
|
|
|
|
button.innerText = "download";
|
|
|
|
button.id = "downloadButton";
|
|
|
|
button.setAttribute("data-id", result.youtube.url);
|
|
|
|
|
|
|
|
button.addEventListener("click", function () {
|
|
|
|
console.log("send download message");
|
|
|
|
let payload = {
|
|
|
|
"download": {
|
|
|
|
"url": result.youtube.url
|
|
|
|
}
|
|
|
|
};
|
|
|
|
browserType.runtime.sendMessage(payload);
|
|
|
|
});
|
|
|
|
|
|
|
|
download.appendChild(title);
|
|
|
|
download.appendChild(button);
|
|
|
|
download.appendChild(document.createElement("hr"));
|
|
|
|
}
|