Advertisement
ircghetto

Untitled

Jan 14th, 2014
1,057
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
J 4.75 KB | None | 0 0
  1. // ==UserScript==
  2. // @name lepro.youtube
  3. // @author PsychodelEKS (11721)
  4. // @description Insert preview-link to youtube video.
  5. // @ujs:category site: enhancements
  6. // @ujs:published 2009-04-16 19:38
  7. // @ujs:modified 2009-04-16 23:56
  8. // @ujs:documentation n/a
  9. // @ujs:download n/a
  10. // @include http://*leprosorium.ru*
  11. // @namespace http://*leprosorium.ru*
  12. // ==/UserScript==
  13.  
  14. // Version 1.0
  15. // - Initial
  16.  
  17. // Version 1.1
  18. // - Big preview image added (first one), thx 2 qexy (5624)
  19.  
  20. function createYoutubeLink(e)
  21. {
  22.     var textarea = false;
  23.     var toolbar = false;
  24.  
  25.     if ( window.location.href.indexOf("comments") != -1 || window.location.href.indexOf("inbox") != -1)
  26.     {
  27.         textarea = document.getElementById('comment_textarea');
  28.         if(textarea)
  29.             toolbar = textarea.parentNode.previousSibling.previousSibling;
  30.     }
  31.  
  32.     if ( window.location.href.indexOf("write") != -1 )
  33.     {
  34.         textarea = document.getElementById('comments-textarea');
  35.         toolbar = document.createElement('div');
  36.         toolbar.style.marginBottom = '5px';
  37.         textarea.parentNode.insertBefore(toolbar, textarea);
  38.     }
  39.  
  40.     if( window.location.href.indexOf("asylum") != -1 )
  41.     {
  42.         textarea = document.getElementById('comment_textarea');
  43.         toolbar = textarea.parentNode.parentNode.parentNode.rows[0].cells[0];
  44.     }
  45.  
  46.     if ( textarea )
  47.     {
  48.         var youtube_button = document.createElement('a');
  49.         youtube_button.href = 'javascript:void(0);';
  50.         youtube_button.innerHTML = '<b>YouTube</b>';
  51.         youtube_button.addEventListener('click', function()
  52.         {
  53.             var youtube_link = '';
  54.             youtube_link = window.prompt('Ссылка на ролик:', '');
  55.             var link_parser = /v=(.+?)(?:&|$)/im;
  56.             var parsed_link = link_parser.exec(youtube_link);
  57.             delete(link_parser);
  58.  
  59.             if(parsed_link != null && parsed_link[1])
  60.             {
  61.                 var video_id = parsed_link[1];
  62.  
  63.                 var preview_block = document.createElement('div');
  64.                 toolbar.appendChild(preview_block);
  65.  
  66.                 for (var i = 0; i < 4; i++)
  67.                 {
  68.                     var tmp_preview_img = document.createElement('img');
  69.                     tmp_preview_img.src = 'http://i.ytimg.com/vi/'+video_id+'/'+i+'.jpg?'+(((new Date()).getTime()%10000000)*100+Math.round(Math.random()*99));
  70.                     tmp_preview_img.style.border = '2px solid white';
  71.                     tmp_preview_img.style.cssFloat = 'left';
  72.                     tmp_preview_img.width = 130;
  73.  
  74.                     tmp_preview_img.addEventListener('mouseover', function(){ this.style.borderColor='limegreen'; }, false);
  75.                     tmp_preview_img.addEventListener('mouseout', function(){ this.style.borderColor='white'; }, false);
  76.                     tmp_preview_img.addEventListener('click',
  77.                         function()
  78.                         {
  79.  
  80.                             var begin = textarea.value.substr(0, textarea.selectionStart);
  81.                             var selection = textarea.value.substr(textarea.selectionStart, textarea.selectionEnd - textarea.selectionStart);
  82.                             var end = textarea.value.substr(textarea.selectionEnd);
  83.                             var newCursorPos = textarea.selectionStart;
  84.                             var scrollPos = textarea.scrollTop;
  85.  
  86.                             var insert_link = "\n"+'<a href="http://www.youtube.com/watch?v='+video_id+'"><img src="'+this.src+'" alt="YouTube video"></a>'+"\n";
  87.                             textarea.value = begin + insert_link + end;
  88.  
  89.                             textarea.setSelectionRange(newCursorPos+insert_link.length+2, newCursorPos+insert_link.length+2);
  90.                             textarea.focus();
  91.  
  92.                             toolbar.removeChild(preview_block);
  93.                             return false;
  94.                         }, false);
  95.  
  96.                     /*tmp_preview_img.addEventListener('load',
  97.                         function()
  98.                         {
  99.                             this.title = "Размер: "+this.width+"x"+this.height;
  100.                             if(this.width > 130)
  101.                                 this.width = 130;
  102.                         }, false);*/
  103.  
  104.                     preview_block.appendChild(tmp_preview_img);
  105.                 }
  106.  
  107.                 var close_button = document.createElement('div');
  108.                 close_button.innerHTML = '<b>X</b>';
  109.                 close_button.style.color = '#DEDEDE';
  110.                 close_button.style.cssFloat = 'left';
  111.                 close_button.addEventListener('mouseover', function(){ this.style.color='#AEAEAE'; }, false);
  112.                 close_button.addEventListener('mouseout', function(){ this.style.color='#DEDEDE'; }, false);
  113.                 close_button.addEventListener('click', function(){ toolbar.removeChild(preview_block); return false; }, false);
  114.  
  115.                 preview_block.appendChild(close_button);
  116.             }
  117.             else if( youtube_link != '' && youtube_link != undefined )
  118.                 window.alert('Не разобрал ссылку. ('+youtube_link+')');
  119.  
  120.             return false;
  121.  
  122.         }, false);
  123.  
  124.         toolbar.appendChild(youtube_button);
  125.     }
  126. }
  127.  
  128. if( /opera/.test(navigator.userAgent.toLowerCase()) )
  129.     document.addEventListener("DOMContentLoaded", function(e){ createYoutubeLink(); }, false);
  130.  
  131. if( (/mozilla/.test(navigator.userAgent.toLowerCase()) && !/(compatible|webkit)/.test(navigator.userAgent.toLowerCase())) || /webkit/.test(navigator.userAgent.toLowerCase()) )
  132.     createYoutubeLink();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement