additional sites
This commit is contained in:
parent
a2213104f9
commit
ad9a76b7fd
|
|
@ -1,2 +1,3 @@
|
||||||
.idea/
|
.idea/
|
||||||
|
.vscode/
|
||||||
metube-browser-extension.pem
|
metube-browser-extension.pem
|
||||||
|
|
@ -12,23 +12,33 @@
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
outline: none;
|
outline: none;
|
||||||
}
|
}
|
||||||
|
textarea {
|
||||||
|
width: 100%;
|
||||||
|
height: 100px;
|
||||||
|
}
|
||||||
.hidden {
|
.hidden {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
#saved {
|
||||||
|
color: green;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<h3>About</h3>
|
|
||||||
<p>This extension is context menu button for sending links of youtube videos into you own instance of MeTube</p>
|
<p>This extension is context menu button for sending links of youtube videos into you own instance of MeTube</p>
|
||||||
<p>This extension won't work without installed MeTube. For additional instructions see <a href="https://github.com/alexta69/metube" target="_blank">github page of MeTube</a>.</p>
|
<p>This extension won't work without installed MeTube. For additional instructions see <a href="https://github.com/alexta69/metube" target="_blank">github page of MeTube</a>.</p>
|
||||||
<p>If you have some throubles with extension you can open issue on github page of extension.</p>
|
<p>If you have some troubles with extension you can open issue on github page of extension.</p>
|
||||||
<p> </p>
|
|
||||||
<h3>Settings</h3>
|
|
||||||
<form id="form">
|
<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">
|
<label for="metube">Url of MeTube</label><input type="url" placeholder="http://0.0.0.0:8081/" name="metube" id="metube">
|
||||||
<button type='submit'>Save</button>
|
<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/*
|
||||||
|
https://video.disney.com/*"></textarea></p>
|
||||||
|
<button type='submit'>Save settings</button>
|
||||||
<p id="saved" class="hidden">Settings saved!</p>
|
<p id="saved" class="hidden">Settings saved!</p>
|
||||||
|
<p> </p>
|
||||||
</form>
|
</form>
|
||||||
</body>
|
</body>
|
||||||
<script src="options.js"></script>
|
<script src="options.js"></script>
|
||||||
|
|
|
||||||
|
|
@ -5,24 +5,54 @@ async function saveOptions() {
|
||||||
url = url.slice(0, -1)
|
url = url.slice(0, -1)
|
||||||
}
|
}
|
||||||
|
|
||||||
chrome.storage.sync.set({"metube": url}, function () {
|
let sites = document.getElementById("additional").value;
|
||||||
|
|
||||||
|
chrome.storage.sync.set({ "metube": url, "sites": sites }, function () {
|
||||||
document.getElementById("saved").classList.remove('hidden');
|
document.getElementById("saved").classList.remove('hidden');
|
||||||
|
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
document.getElementById("saved").classList.add('hidden');
|
document.getElementById("saved").classList.add('hidden');
|
||||||
}, 1000 * 10)
|
}, 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() {
|
async function restoreOptions() {
|
||||||
chrome.storage.sync.get(['metube'], function (data) {
|
chrome.storage.sync.get(['metube', 'sites'], function (data) {
|
||||||
if (data.metube === undefined) {
|
if (data.metube != undefined) {
|
||||||
return
|
|
||||||
}
|
|
||||||
document.getElementById("metube").value = data.metube;
|
document.getElementById("metube").value = data.metube;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (data.sites != undefined) {
|
||||||
|
document.getElementById("additional").value = data.sites;
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function splitLines(t) { return t.split(/\r\n|\r|\n/); }
|
||||||
|
|
||||||
window.addEventListener("DOMContentLoaded", restoreOptions, { passive: true });
|
window.addEventListener("DOMContentLoaded", restoreOptions, { passive: true });
|
||||||
|
|
||||||
document.querySelector("form").addEventListener("submit", (e) => {
|
document.querySelector("form").addEventListener("submit", (e) => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue