Advertisement
Guest User

Untitled

a guest
Apr 8th, 2018
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.62 KB | None | 0 0
  1. // ==UserScript==
  2. // @encoding utf-8
  3. // @name pd-smiles custom
  4. // @version 0.03
  5. // @author 2poy, KaRniZZZ
  6. // @match https://prodota.ru/forum/index.php?showtopic=*
  7. // @match https://prodota.ru/forum/index.php?app=*
  8. // @match https://prodota.ru/forum/index.php?s=*
  9. // @match https://prodota.ru/forum/index.php?
  10. // @icon http://cs406227.vk.me/g26834708/a_1eeba31d.jpg
  11. // @run-at document-start
  12. // @noframes
  13. // @grant none
  14. // ==/UserScript==
  15.  
  16. var pageType = {
  17. MESSAGE: function(){
  18. var div = document.createElement('div');
  19. div.id = "smiles_2poy";
  20. div.innerHTML += smiles + styles2;
  21. var el = document.getElementsByClassName('ipsBox_withphoto clearfix')[0].children[0];
  22. el.insertBefore(div,el.children[(el.children.length-1)]);
  23.  
  24. },
  25. REPLY: function(){
  26. var div = document.createElement('div');
  27. div.id = "smiles_2poy";
  28. div.innerHTML += smiles + styles2;
  29. var el = document.getElementById('ips_fastReplyForm');
  30. el.insertBefore(div ,el.children[(el.children.length-1)]);
  31.  
  32. },
  33. REPLY_FULL: function(){
  34. var div = document.createElement('div');
  35. div.id = "smiles_2poy";
  36. div.innerHTML += smiles + styles2;
  37. var el = document.getElementsByClassName('ipsBox_container ipsLayout_content')[0];
  38. el.insertBefore(div, el.getElementsByClassName('attachments')[0]);
  39.  
  40. },
  41. MESSAGE_FULL: function(){
  42. var div = document.createElement('div');
  43. div.id = "smiles_2poy";
  44. div.innerHTML += smiles + styles2;
  45. var el = document.getElementsByClassName('ipsBox_container')[0];
  46. el.insertBefore(div, el.getElementsByClassName('attachments')[0]);
  47. }
  48. };
  49.  
  50. pageType.POST_EDIT = pageType.REPLY_FULL;
  51. pageType.MESSAGE_EDIT = pageType.MESSAGE_FULL;
  52. pageType.MESSAGE_SEND = pageType.MESSAGE_FULL;
  53.  
  54.  
  55. var foo;
  56.  
  57. if (document.URL == 'https://prodota.ru/forum/index.php?'){
  58. foo = pageType.REPLY_FULL;
  59. }
  60. else if(document.URL.indexOf('https://prodota.ru/forum/index.php?showtopic=')!=-1){
  61. foo = pageType.REPLY;
  62. }
  63. else if(document.URL.search('send.*sendReply') != -1){
  64. foo = pageType.MESSAGE_FULL;
  65. }
  66. else if(document.URL.search('showConversation.*topicID') != -1){
  67. foo = pageType.MESSAGE;
  68. }
  69. else if(document.URL.search('editMessage.*topicID') != -1){
  70. foo = pageType.MESSAGE_EDIT;
  71. }
  72. else if(document.URL.search('section=send') != -1){
  73. foo = pageType.MESSAGE_SEND;
  74. }
  75. else if(document.URL.search('post.*edit_post') != -1){
  76. foo = pageType.POST_EDIT;
  77. }
  78. else{
  79. return;
  80. }
  81.  
  82. var smileList = [];
  83. smileList.push( //Стандартные смайлы ПД
  84. 'buba', 'avtorklif', 'prayy', 'zloy', 'lol', 'sosew', 'geys', 'trollface', 'popcorn', 'smile', 'sad', 'dunno', 'palevojein', 'yes', 'ginsgnil', 'geypalevonew', 'fie', 'fuckyou',
  85. '<hr>'
  86. );
  87. smileList.push( // DOTO
  88. 'http://www.cyberfrags.com/sml/cool.gif','http://www.cyberfrags.com/sml/give.gif',
  89. 'http://www.cyberfrags.com/sml/wink.gif','http://www.cyberfrags.com/sml/facepalm.gif',
  90. 'http://www.cyberfrags.com/sml/hex.gif','http://www.cyberfrags.com/sml/laugh.gif',
  91. 'http://www.cyberfrags.com/sml/blush.gif','http://www.cyberfrags.com/sml/rage.gif',
  92. 'http://www.cyberfrags.com/sml/huh.gif','http://www.cyberfrags.com/sml/hush.gif',
  93. 'http://www.cyberfrags.com/sml/cheeky.gif',
  94. '<hr>'
  95. );
  96. var smiles = smileList.map(smile).join(''),
  97. styles2 = '<style>#smiles_2poy {padding: 8px;opacity:0.9} #smiles_2poy img {margin: 1px; max-height: 27px !important;}'+
  98. '#smiles_2poy hr{display:block;clear:both;background:none;border:1px solid rgba(96, 0, 255, 0.1);}</style>';
  99.  
  100. function smile(smile, alt) {
  101. function url(smile) {
  102. if(smile.slice(0,4)=='http') return smile;
  103. return "https://prodota.ru/forum/public/style_emoticons/default/"+ smile +".gif";
  104. }
  105. return smile=='<hr>'?'<hr>':'<img class="bbc_img" alt="'+ alt +'" src="'+url(smile)+'">';
  106. }
  107.  
  108. if(navigator.userAgent.indexOf("Firefox") != -1 ){
  109. window.addEventListener('afterscriptexecute', function(e) {
  110. if(e.target.src.search(/default.js/) != -1){
  111. removeOldSmiles();
  112. window.removeEventListener(e.type, arguments.callee, true);
  113. }
  114. });
  115. }
  116. else {
  117. window.addEventListener('load', function(e) {
  118. removeOldSmiles();
  119. window.removeEventListener(e.type, arguments.callee, true);
  120. });
  121. }
  122.  
  123. function removeOldSmiles(){
  124. document.getElementById('cke_14').onclick = clickSmile;
  125. document.getElementsByClassName('ipsSmileyTray')[0].hide();
  126. document.getElementById('ips_x_smile_show_all').remove();
  127. }
  128.  
  129. function clickSmile() {
  130. var k = document.getElementById('smiles_2poy');
  131. if (k){
  132. k.remove();
  133. return;
  134. }
  135.  
  136. foo();
  137.  
  138. var appendedSmiles = document.querySelectorAll('#smiles_2poy img');
  139. setTimeout(function(){
  140. var els = document.querySelectorAll('[rel="lightbox"]');
  141. for(var i in els) {try{els[i].removeAttribute('rel');}catch(e){}}
  142. }, 1000);
  143.  
  144. for(var n in appendedSmiles) {
  145. if(!appendedSmiles[n].addEventListener) return;
  146. appendedSmiles[n].addEventListener('click', function(ev){
  147. var editor = CKEDITOR.instances;
  148. for(var i in editor){
  149. if (editor[i].name.indexOf('editor')>-1) {
  150. editor[i].insertText(' ');
  151. editor[i].insertElement(editor[i].document.createElement('img',{ attributes: { src: ev.target.src, 'class': 'bbc_emoticon' } }));
  152. editor[i].insertText(' ');
  153. }
  154. }
  155. return false;
  156. }, true);
  157. }
  158. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement