88 lines
2.5 KiB
JavaScript
88 lines
2.5 KiB
JavaScript
async function saveOptions() {
|
|
let url = document.getElementById("metube").value;
|
|
|
|
if (url.endsWith('/')) {
|
|
url = url.slice(0, -1)
|
|
}
|
|
|
|
let sites = document.getElementById("additional").value;
|
|
let clickBehavior = document.querySelector('input[name="click-behavior"]:checked').value;
|
|
let contextMenuClickBehavior = document.querySelector('input[name="context-menu-click-behavior"]:checked').value;
|
|
let defaultFormat = document.getElementById('default_format').value
|
|
|
|
chrome.storage.sync.set({
|
|
"metube": url,
|
|
"sites": sites,
|
|
"clickBehavior": clickBehavior,
|
|
"contextMenuClickBehavior": contextMenuClickBehavior,
|
|
"defaultFormat": defaultFormat,
|
|
}, function () {
|
|
document.getElementById("saved").classList.remove('hidden');
|
|
|
|
setTimeout(function () {
|
|
document.getElementById("saved").classList.add('hidden');
|
|
}, 1000 * 10)
|
|
});
|
|
|
|
sites = splitLines(sites);
|
|
|
|
// todo: fix it
|
|
// also need make function for check string
|
|
// https://developer.chrome.com/docs/extensions/mv3/match_patterns/
|
|
if(sites.length <= 1){
|
|
return;
|
|
}
|
|
|
|
chrome.contextMenus.update(
|
|
'metube',
|
|
{
|
|
targetUrlPatterns: [
|
|
'https://www.youtube.com/*',
|
|
'https://m.youtube.com/*',
|
|
'https://youtu.be/*',
|
|
...sites
|
|
]
|
|
}
|
|
);
|
|
|
|
}
|
|
|
|
async function restoreOptions() {
|
|
chrome.storage.sync.get([
|
|
'metube',
|
|
'sites',
|
|
'clickBehavior',
|
|
'contextMenuClickBehavior',
|
|
'defaultFormat'
|
|
], function (data) {
|
|
if (data.metube !== undefined) {
|
|
document.getElementById("metube").value = data.metube;
|
|
}
|
|
|
|
if (data.sites !== undefined) {
|
|
document.getElementById("additional").value = data.sites;
|
|
}
|
|
|
|
if (data.clickBehavior !== undefined) {
|
|
document.getElementById(data.clickBehavior).checked = true;
|
|
}
|
|
|
|
if (data.contextMenuClickBehavior !== undefined) {
|
|
document.getElementById(data.contextMenuClickBehavior).checked = true;
|
|
}
|
|
|
|
if (data.defaultFormat !== undefined) {
|
|
document.getElementById('default_format').value = data.defaultFormat;
|
|
}
|
|
})
|
|
}
|
|
|
|
function splitLines(t) { return t.split(/\r\n|\r|\n/); }
|
|
|
|
window.addEventListener("DOMContentLoaded", restoreOptions, { passive: true });
|
|
|
|
document.querySelector("form").addEventListener("submit", (e) => {
|
|
e.preventDefault();
|
|
saveOptions();
|
|
}, { passive: false });
|