additional sites

This commit is contained in:
Rpsl 2021-10-09 22:21:24 +03:00
parent a2213104f9
commit ad9a76b7fd
3 changed files with 53 additions and 12 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
.idea/ .idea/
.vscode/
metube-browser-extension.pem metube-browser-extension.pem

View File

@ -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>&nbsp;</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>&nbsp;</p>
</form> </form>
</body> </body>
<script src="options.js"></script> <script src="options.js"></script>

View File

@ -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) => {