Bookmarklet Template
Bookmarklet for YouTube Infinite Repeater
by lchau
HTML
<div>
<span class='bold'>Source</span>: <a id='source_url' target='_blank'></a>
</div>
<div>
<span class='bold'>Drag to bookmarks</span>: <a id='bookmarklet'>Generating…</a>
</div>
CSS
.hidden {
display: none;
}
body {
font-family: sans-serif;
font-size: 13px;
}
div {
padding: 7px;
}
.bold {
font-weight: bold;
}
JavaScript
$.ajaxSetup({
dataType: 'text'
});
function getDisplayName(url) {
var matcher = url.match(/https?:\/\/.+\/([^\/]+.)$/);
if (matcher) {
url = matcher[1].replace('/', '');
url = url.slice(0, url.indexOf('.'));
}
return url;
}
function minify(source) {
return $.post('https://closure-compiler.appspot.com/compile', {
output_info: 'compiled_code',
compilation_level: 'ADVANCED_OPTIMIZATIONS',
warning_level: 'quiet',
js_code: source
});
}
function update(id, text, href) {
$(id)
.text(text)
.attr('href', href);
}
var SOURCE_URL = 'https://gist.github.com/lamchau/b02c6c8a64d0a384ae18';
var SOURCE_CDN_URL = 'https://cdn.rawgit.com/lamchau/b02c6c8a64d0a384ae18/raw/63a758032e30c6f4b9c1a720f5be406ae6b54702/youtube-repeat.js';
update('#source_url', SOURCE_URL, SOURCE_URL);
$.get(SOURCE_CDN_URL)
.then(minify)
.then(function(source) {
var text = getDisplayName(SOURCE_CDN_URL);
update('#bookmarklet', text, source);
});