/* * youtube * https://github.com/savetheinternet/Tinyboard/blob/master/js/youtube.js * * Don't load the YouTube player unless the video image is clicked. * This increases performance issues when many videos are embedded on the same page. * Currently only compatiable with YouTube. * * Proof of concept. * * Released under the MIT license * Copyright (c) 2013 Michael Save <savetheinternet@tinyboard.org> * Copyright (c) 2013-2014 Marcin Ćabanowski <marcin@6irc.net> * * Usage: * $config['embedding'] = array(); * $config['embedding'][0] = array( * '/^https?:\/\/(\w+\.)?(?:youtube\.com\/watch\?v=|youtu\.be\/)([a-zA-Z0-9\-_]{10,11})(&.+)?$/i', * $config['youtube_js_html']); * $config['additional_javascript'][] = 'js/jquery.min.js'; * $config['additional_javascript'][] = 'js/youtube.js'; * */ $(document).ready(function(){ const ON = "[Remove]"; const OFF = "[Embed]"; const YOUTUBE = 'www.youtube.com'; const ONION = 'tuberyps2pn6dor6h47brof3w2asmauahhk4ei42krugybzzzo55klad.onion'; const PROXY = 'incogtube.com' function addEmbedButton(index, videoNode) { videoNode = $(videoNode); var contents = videoNode.contents(); var videoId = videoNode.data('video'); var span = $("<span>[Embed]</span>"); var spanProxy = $("<span>[Proxy]</span>"); var makeEmbedNode = function(embedHost) { return $('<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"/>'); } var defaultEmbed = makeEmbedNode(location.hostname.includes("onion") ? ONION : YOUTUBE); var proxyEmbed = makeEmbedNode(PROXY); videoNode.click(function(e) { e.preventDefault(); if (span.text() == ON){ videoNode.append(spanProxy); videoNode.append(contents); defaultEmbed.remove(); proxyEmbed.remove(); span.text(OFF); } else { contents.detach(); span.text(ON); spanProxy.remove(); videoNode.append(e.target == spanProxy[0] ? proxyEmbed : defaultEmbed); } }); videoNode.append(span); videoNode.append(spanProxy); } $('div.video-container', document).each(addEmbedButton); // allow to work with auto-reload.js, etc. $(document).on('new_post', function(e, post) { $('div.video-container', post).each(addEmbedButton); }); });