Added capability for clicking on extension icon to trigger video download
Added an option to allow left-clicking on extension icon to allow the current tab URL to be sent to MeTube. This new behaviour is available by opting in via a checkbox from the extension's options page.
This commit is contained in:
parent
21cfe5e127
commit
b48b682c2e
|
|
@ -54,13 +54,25 @@ chrome.contextMenus.onClicked.addListener(function(item, tab) {
|
|||
});
|
||||
|
||||
chrome.action.onClicked.addListener(function(tab) {
|
||||
chrome.storage.sync.get(['metube'], function(data) {
|
||||
chrome.storage.sync.get(['metube', 'sendOnClick'], function(data) {
|
||||
if (data === undefined || !data.hasOwnProperty('metube') || data.metube === "") {
|
||||
openTab(chrome.runtime.getURL('options.html'), tab);
|
||||
return
|
||||
}
|
||||
|
||||
openTab(data.metube, tab);
|
||||
chrome.tabs.query({
|
||||
active: true,
|
||||
lastFocusedWindow: true
|
||||
}, function(tabs) {
|
||||
// use this tab to get the youtube video URL
|
||||
let videoUrl = tabs[0].url;
|
||||
if (data.sendOnClick) {
|
||||
sendVideoUrlToMetubeAndSwitchTab(videoUrl, data.metube, tab);
|
||||
}
|
||||
else {
|
||||
console.log("Going to Metube URL...");
|
||||
openTab(data.metube, tab);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@
|
|||
<form id="form">
|
||||
<h3>Settings</h3>
|
||||
<label for="metube">Url of MeTube</label><input type="url" placeholder="http://0.0.0.0:8081/" name="metube" id="metube">
|
||||
<br>
|
||||
<label for="send-on-click">Enable left-click on extension icon to send current page URL to Metube</label><input type="checkbox" name="send-on-click" id="send-on-click">
|
||||
<h3>Additional sites</h3>
|
||||
<p>Youtube-dl support <a href="https://github.com/ytdl-org/youtube-dl/blob/master/docs/supportedsites.md" target="_blank">many another sites</a> except youtube. You can add mask url's of this sites in textfield bellow but it can affect performance and we have not tested them support</p>
|
||||
<p><textarea name="additional" id="additional" placeholder="https://vimeo.com/*
|
||||
|
|
|
|||
|
|
@ -7,7 +7,9 @@ async function saveOptions() {
|
|||
|
||||
let sites = document.getElementById("additional").value;
|
||||
|
||||
chrome.storage.sync.set({ "metube": url, "sites": sites }, function () {
|
||||
let sendOnClick = document.getElementById("send-on-click").checked;
|
||||
|
||||
chrome.storage.sync.set({ "metube": url, "sites": sites, "sendOnClick": sendOnClick}, function () {
|
||||
document.getElementById("saved").classList.remove('hidden');
|
||||
|
||||
setTimeout(function () {
|
||||
|
|
@ -18,7 +20,7 @@ async function saveOptions() {
|
|||
sites = splitLines(sites);
|
||||
|
||||
// todo: fix it
|
||||
// also need make function for check string
|
||||
// also need make function for check string
|
||||
// https://developer.chrome.com/docs/extensions/mv3/match_patterns/
|
||||
if(sites.length <= 1){
|
||||
return;
|
||||
|
|
@ -39,15 +41,18 @@ async function saveOptions() {
|
|||
}
|
||||
|
||||
async function restoreOptions() {
|
||||
chrome.storage.sync.get(['metube', 'sites'], function (data) {
|
||||
chrome.storage.sync.get(['metube', 'sites', 'sendOnClick'], function (data) {
|
||||
if (data.metube != undefined) {
|
||||
document.getElementById("metube").value = data.metube;
|
||||
document.getElementById("metube").value = data.metube;
|
||||
}
|
||||
|
||||
if (data.sites != undefined) {
|
||||
document.getElementById("additional").value = data.sites;
|
||||
document.getElementById("additional").value = data.sites;
|
||||
}
|
||||
// document.getElementById("send-on-click").checked = true;
|
||||
if (data.sendOnClick) {
|
||||
document.getElementById("send-on-click").checked = true;
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue