diff --git a/src/background.js b/src/background.js index 4b85457..a24db33 100644 --- a/src/background.js +++ b/src/background.js @@ -13,7 +13,7 @@ chrome.runtime.onInstalled.addListener(function () { }); }); -function sendVideoUrlToMetube(videoUrl, metubeUrl, format, callback) { +function sendVideoUrlToMetube(videoUrl, metubeUrl, format, advancedSettings, callback) { console.log("Sending videoUrl=" + videoUrl + " to metubeUrl=" + metubeUrl); if (typeof callback !== 'function') { @@ -21,17 +21,30 @@ function sendVideoUrlToMetube(videoUrl, metubeUrl, format, callback) { }; } + let {hostname} = new URL(videoUrl) + + let postData = { + "quality": "best", + "format": format, + "url": videoUrl, + 'auto_start': !advancedSettings['disable_auto_start'] ?? true + } + + + Object.keys(advancedSettings).forEach((key) => { + if (advancedSettings[key] && !['disable_auto_start'].includes(key) ) { + postData[key] = hostname.startsWith('www.') ? hostname.replace('www.', '') : hostname + } + }) + + console.log(postData) fetch(metubeUrl + "/add", { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, - body: JSON.stringify({ - "quality": "best", - "format": format, - "url": videoUrl - }) + body: JSON.stringify(postData) }) .then(response => response.json()) .then(function (response) { @@ -43,7 +56,7 @@ function sendVideoUrlToMetube(videoUrl, metubeUrl, format, callback) { } chrome.contextMenus.onClicked.addListener(function (item, tab) { - chrome.storage.sync.get(['metube', 'contextMenuClickBehavior', 'defaultFormat'], function (data) { + chrome.storage.sync.get(['metube', 'contextMenuClickBehavior', 'defaultFormat', 'advancedSettings'], function (data) { if (data === undefined || !data.hasOwnProperty('metube') || data.metube === "") { openTab(chrome.runtime.getURL('options.html'), tab); return @@ -51,7 +64,7 @@ chrome.contextMenus.onClicked.addListener(function (item, tab) { let needToSwitch = (data.contextMenuClickBehavior === 'context-menu-send-current-url-and-switch'); - sendVideoUrlToMetube(item.linkUrl, data.metube, data.defaultFormat, function () { + sendVideoUrlToMetube(item.linkUrl, data.metube, data.defaultFormat, data.advancedSettings, function () { if (needToSwitch) { openTab(data.metube, tab); } @@ -60,7 +73,7 @@ chrome.contextMenus.onClicked.addListener(function (item, tab) { }); chrome.action.onClicked.addListener(function (tab) { - chrome.storage.sync.get(['metube', 'clickBehavior', 'defaultFormat'], function (data) { + chrome.storage.sync.get(['metube', 'clickBehavior', 'defaultFormat', 'advancedSettings'], function (data) { if (data === undefined || !data.hasOwnProperty('metube') || data.metube === "") { openTab(chrome.runtime.getURL('options.html'), tab); return @@ -79,7 +92,7 @@ chrome.action.onClicked.addListener(function (tab) { }, function (tabs) { // use this tab to get the youtube video URL let videoUrl = tabs[0].url; - sendVideoUrlToMetube(videoUrl, data.metube, data.defaultFormat, function () { + sendVideoUrlToMetube(videoUrl, data.metube, data.defaultFormat, data.advancedSettings, function () { if (needToSwitch) { openTab(data.metube, tab); } diff --git a/src/options.html b/src/options.html index 5a2e70d..3d3c06b 100644 --- a/src/options.html +++ b/src/options.html @@ -54,6 +54,13 @@

+

Advanced Settings:

+
+
+
+
+
+

Additional sites

Youtube-dl support many another sites 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