Browse Source

Automatically embeds with Tor if on the hidden site. Adds clearnet and onion invidious embed.

main
Your Name 3 years ago
committed by discomrade
parent
commit
74ecc4fe17
  1. 42
      js/youtube.js

42
js/youtube.js

@ -24,31 +24,67 @@
onready(function(){
// Adds Options panel item
if (typeof localStorage.youtube_embed_proxy === 'undefined') {
if (location.hostname.includes(".onion")){
localStorage.youtube_embed_proxy = 'tuberyps2pn6dor6h47brof3w2asmauahhk4ei42krugybzzzo55klad.onion';
} else {
localStorage.youtube_embed_proxy = 'incogtube.com'; //default value
}
}
if (window.Options && Options.get_tab('general')) {
Options.extend_tab("general", "<fieldset id='media-proxy-fs'><legend>"+_("Media Proxy (requires refresh)")+"</legend>"
+ ('<label id="youtube-embed-proxy-url">' + _('YouTube embed proxy url&nbsp;&nbsp;')+'<input type="text" size=30></label>')
+ '</fieldset>');
$('#youtube-embed-proxy-url>input').val(localStorage.youtube_embed_proxy);
$('#youtube-embed-proxy-url>input').on('input', function() {
localStorage.youtube_embed_proxy = $('#youtube-embed-proxy-url>input').val();
});
}
const ON = "[Remove]";
const OFF = "[Embed]";
const YOUTUBE = 'www.youtube.com';
const PROXY = localStorage.youtube_embed_proxy;
function addEmbedButton(index, videoNode) {
videoNode = $(videoNode);
var contents = videoNode.contents();
var videoId = videoNode.data('video');
var span = $("<span>[Embed]</span>");
var embedNode = $('<iframe style="float:left;margin: 10px 20px" type="text/html" '+
'width="360" height="270" src="//www.youtube.com/embed/' + videoId +
var spanProxy = $("<span>[Proxy]</span>");
var defaultEmbed = location.hostname.includes(".onion") ? PROXY : YOUTUBE;
var embedNode = function(embedHost) {
$('<iframe style="float:left;margin: 10px 20px" type="text/html" '+
'width="360" height="270" src="//' + embedHost + '/embed/' + videoId +
'?autoplay=1&html5=1" allowfullscreen frameborder="0"/>');
}
videoNode.click(function(e) {
e.preventDefault();
if (span.text() == ON){
videoNode.append(contents);
embedNode.remove();
span.text(OFF);
spanProxy.hidden = false;
} else{
contents.detach();
videoNode.append(embedNode);
videoNode.append(embedNode(defaultEmbed));
span.text(ON);
}
});
spanProxy.click(function(e) {
e.preventDefault();
contents.detach();
videoNode.append(embedNode(PROXY));
span.text(ON);
spanProxy.hidden = true;
});
videoNode.append(span);
videoNode.append(spanProxy);
}
$('div.video-container', document).each(addEmbedButton);

Loading…
Cancel
Save