73 lines
2.2 KiB
JavaScript
73 lines
2.2 KiB
JavaScript
'use strict';
|
|
|
|
chrome.runtime.onInstalled.addListener(function () {
|
|
// https://stackoverflow.com/questions/19377262/regex-for-youtube-url
|
|
chrome.contextMenus.create({
|
|
id: 'metube',
|
|
title: "Send to MeTube",
|
|
documentUrlPatterns: [
|
|
'https://www.youtube.com/*',
|
|
'https://m.youtube.com/*',
|
|
'https://youtu.be/*'
|
|
],
|
|
contexts: ['link'],
|
|
});
|
|
});
|
|
|
|
chrome.contextMenus.onClicked.addListener(function (item, tab) {
|
|
chrome.storage.sync.get(['metube'], function (data) {
|
|
if (data === undefined || !data.hasOwnProperty('metube') || data.metube === "") {
|
|
openTab(chrome.extension.getURL('options.html'), tab);
|
|
return
|
|
}
|
|
|
|
let url = data.metube;
|
|
|
|
fetch(url + "/add", {
|
|
method: 'POST',
|
|
headers: {
|
|
'Accept': 'application/json',
|
|
'Content-Type': 'application/json'
|
|
},
|
|
body: JSON.stringify({"quality": "best", "url": item.linkUrl})
|
|
})
|
|
.then(function (res) {
|
|
if (res.ok === true && res.status === 200) {
|
|
return res.json();
|
|
}
|
|
alert("error :: code " + res.status);
|
|
})
|
|
.then(function (result) {
|
|
if (result.status === "ok") {
|
|
openTab(data.metube, tab);
|
|
} else {
|
|
alert("error :: " + json);
|
|
}
|
|
})
|
|
.catch(function (res) {
|
|
alert("error :: " + res);
|
|
})
|
|
});
|
|
});
|
|
|
|
chrome.action.onClicked.addListener(function (tab) {
|
|
chrome.storage.sync.get(['metube'], function (data) {
|
|
if (data === undefined || !data.hasOwnProperty('metube') || data.metube === "") {
|
|
openTab(chrome.extension.getURL('options.html'), tab);
|
|
return
|
|
}
|
|
|
|
openTab(data.metube, tab);
|
|
});
|
|
});
|
|
|
|
function openTab(url, currentTab) {
|
|
chrome.tabs.query({url: url + "/*"}, function (tabs) {
|
|
if (tabs.length !== 0) {
|
|
chrome.tabs.update(tabs[0].id, {'active': true}, () => {
|
|
});
|
|
} else {
|
|
chrome.tabs.create({url: url, index: currentTab.index + 1});
|
|
}
|
|
});
|
|
} |