// ==UserScript== // @name Ninegag // @namespace de.onenterframe.ninegag // @description 9gag-link-helper on front-pages // @include *9gag.com/* // @version 1.0.0 // @grant none // @downloadURL https://update.greasyfork.icu/scripts/29971/Ninegag.user.js // @updateURL https://update.greasyfork.icu/scripts/29971/Ninegag.meta.js // ==/UserScript== var trace = function(o){ console.log(o); }; function insertCSS(){ var css = ''; css += ''; $('head').append(css); } // function insertVendors() { var scr = document.createElement('script'); scr.src = 'https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.6.1/clipboard.min.js'; scr.onload = function() { applyClippy(); }; document.body.appendChild(scr); } // function insertBtnTemplates() { var tpl = ''; $('body').append(tpl); } // function applyClippy() { var clippy = new Clipboard('#Clippy', { text: function(trigger) { return $(trigger).data('clipboard-text'); // source should somehow be copied from scope above it } }); clippy.on('success', function(e) { /* console.info('Action:', e.action); console.info('Text:', e.text); console.info('Trigger:', e.trigger); //*/ e.clearSelection(); }); clippy.on('error', function(e) { console.error('Action:', e.action); console.error('Trigger:', e.trigger); }); $('#Clippy') .on('mouseenter', function(ev){ ev.preventDefault(); ev.stopImmediatePropagation(); ev.stopPropagation(); return false; }) ; $('.post-container') .on('mouseover', 'a.badge-track', function(ev){ if( !$(this).hasClass('badge-animated-cover') ) { // pictures: try { var src = $(this).find('img.badge-item-img').prop('src'); var viewportOffset = $(this).parent()[0].getBoundingClientRect(); var top = viewportOffset.top; $('#Clippy') .addClass('picture') .data('clipboard-text', src) .addClass('active').css({ top: top + 60 }) ; } catch(err) { trace(err) } } if( $(this).hasClass('badge-animated-cover') ) { // videos: try { var poster = $(this).find('video').prop('poster'); var video = $(this).find('video source[type="video/mp4"]').prop('src'); var viewportOffset = $(this).parent()[0].getBoundingClientRect(); var top = viewportOffset.top; var clip = '**click** ' + video + '\r\n' + poster; $('#Clippy') .addClass('film') .data('clipboard-text', clip) .addClass('active').css({ top: top + 60 }) ; } catch(err) { trace(err) } } }) //* .on('mouseleave', 'a.badge-track', function(ev){ if($(ev.relatedTarget).prop('id') != 'Clippy') { $('#Clippy').delay(1500).data('clipboard-text', '').removeClass('active film picture'); } }) //*/ ; } // $(function() { // !order insertBtnTemplates(); insertCSS(); insertVendors(); });