Mirkohelper

Niezbędnik każdego Mirka!

当前为 2014-06-03 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Mirkohelper
  3. // @namespace http://www.wykop.pl/ludzie/osael/
  4. // @description Niezbędnik każdego Mirka!
  5. // @author osael
  6. // @version 2.0
  7. // @grant none
  8. // @include http://www.wykop.pl/mikroblog*
  9. // @include http://www.wykop.pl/wpis*
  10. // @include http://www.wykop.pl/tag*
  11. // @include http://www.wykop.pl/ludzie*
  12. // @include http://www.wykop.pl/dodatki*
  13. // @run-at document-end
  14. // ==/UserScript==
  15. //Bazowane na kilku innych dodatkach.
  16. //To jest mój pierwszy skrypt. Powiedz jeżeli coś jest nie tak jak powinno lub mogłobyć zrobione lepiej.
  17. //Podziekowania dla @Ginden oraz @kasper93.
  18.  
  19. //WERSJA TESTOWA POD NOWY WYPOK
  20.  
  21.  
  22. function main() {
  23. //------------ TU SIE DEFINIUJEMY ---------------------
  24. //( ͡° ͜ʖ ͡°)
  25. var MirkoEmotki = [
  26. '( \u0361\u00B0 \u035C\u0296 \u0361\u00B0)',
  27. '( \u0361\u00B0 \u0296\u032F \u0361\u00B0)',
  28. '( \u0361\u00BA \u035C\u0296\u0361\u00BA)',
  29. '( \u0361\u00B0( \u0361\u00B0 \u035C\u0296( \u0361\u00B0 \u035C\u0296 \u0361\u00B0)\u0296 \u0361\u00B0) \u0361\u00B0)',
  30. '(\u2310 \u0361\u25A0 \u035C\u0296 \u0361\u25A0)',
  31. '(\u30FB\u3078\u30FB)',
  32. '\u10DA(\u0CA0_\u0CA0 \u10DA)',
  33. '(\u2565\uFE4F\u2565)',
  34. '(\u256F\uFE35\u2570,)',
  35. '(\u0298\u203F\u0298)',
  36. '(\uFF61\u25D5\u203F\u203F\u25D5\uFF61)',
  37. '\u1559(\u21C0\u2038\u21BC\u2036)\u1557',
  38. '\u1566(\u00F2_\u00F3\u02C7)\u1564',
  39. '(\u270C \uFF9F \u2200 \uFF9F)\u261E',
  40. 't(\u30C4)_/\u00AF',
  41. '\u25D5\u203F\u25D5',
  42. '(\uFF9F\uFF70\uFF9F)',
  43. '(>\u10DA)',
  44. '\uFD3E\u0361\u0E4F\u032F\u0361\u0E4F\uFD3F',
  45. '\u0CA0_\u0CA0',
  46. '\u0628_\u0628',
  47. '\u0295\u2022\u1D25\u2022\u0294',
  48. '\u1D98\u1D52\u1D25\u1D52\u1D85',
  49. '(\u2312(oo)\u2312)',
  50. '\u113D\u1F41\u020D \u032A \u0151\u1F40\u113F'
  51. ];
  52. //Emotki proponowne przez mirki na #mirkohelper
  53. var MirkoEmotkiUsr = [
  54. '( \u0361\u20AC \u035C\u0296 \u0361\u20AC)',
  55. '( \u0361\u00B0 \u035C\u0296 \u0361\u00B0)\n( \u0361\u00B0 \u035C\u0296 \u0361\u00B0)\uFF89\u2310\u25A0-\u25A0\n(\u2310 \u0361\u25A0 \u035C\u0296 \u0361\u25A0)',
  56. '\u10DA(\u0301\u25C9\u25DE\u0C6A\u25DF\u25C9\u2035\u10DA)',
  57. '(\u3002\u30D8\u00B0)',
  58. '(\uFE36\uFE39\uFE3A)',
  59. '(\u2310 \u0361\u25A0 \u035F\u0296 \u0361\u25A0)',
  60. '(\u222A_\u222A)\uFF61\uFF61\uFF61zzz',
  61. '(\u1D54\u1D25\u1D54)',
  62. '\u30FD\u0F3C\u0E88\u0644\u035C\u0E88\u0F3D\uFF89',
  63. '(\u00AC\u203F\u00AC)',
  64. '(\uFF89\u00B4\u30EE\u00B4)\uFF89*:\uFF65\uFF9F\u2727',
  65. '\u30FE(\u2310\u25A0_\u25A0)\u30CE\u266A',
  66. '(\u0E07 \u2022\u0300_\u2022\u0301)\u0E07 ',
  67. '( \u0E07 \u0361\u00B0\u256D\u035C\u0296\u256E\u0361\u00B0 ) \u0E07',
  68. '(\u256F\u00B0\u25A1\u00B0\uFF09\u256F\uFE35 \u253B\u2501\u253B',
  69. '\u252C\u2500\u2500\u252C\u25E1\uFF89(\u00B0 -\u00B0\uFF89)'
  70.  
  71. ];
  72. var MirkoSmieszki = '';
  73. var MirkoSmieszkiusr = '';
  74. //Nowa tajemnicza zakladka
  75. var moar = '<div id="halp">Coming Soon</div>';
  76. //A tu kolor linkow. Potrzebne pod nocny/dzienny
  77. var classColor = $('a.editlenny').css("color");
  78. //CSSki
  79. $("<style type='text/css'> .color { color:"+classColor+" !important; } </style>").appendTo("head");
  80. $("<style type='text/css'> .mirkosmieszek { padding: 0 5px 7px 5px; min-width: 30px; margin-left: -4px; } </style>").appendTo("head");
  81. $("<style type='text/css'> #mirkohelper { position: absolute; width: 460px; height: 85px; line-height: 21px !important; padding: 0px !important; min-height: 0px !important; } </style>").appendTo("head");
  82. $("<style type='text/css'> #mirki { border: 0px !important; padding: 0px !important; margin: 4px; white-space: normal; } </style>").appendTo("head");
  83. $("<style type='text/css'> #mirkiusr { border: 0px !important; padding: 0px !important; margin: 4px; white-space: normal; display: none; } </style>").appendTo("head");
  84. $("<style type='text/css'> div#halp { border: 0px !important; padding: 0px !important; margin: 4px; display: none; } </style>").appendTo("head");
  85. $("<style type='text/css'> .mirkoButtons { position: absolute; float: left; z-index: 101; bottom: -4px; left: 3px; font-size: 9px; } </style>").appendTo("head");
  86. $("<style type='text/css'> .mirkoFooter { position: absolute; font-size: 9px; right: 3px; bottom: -3px; } </style>").appendTo("head");
  87.  
  88. //Mielenie emotek
  89. MirkoEmotki.forEach(function(el){
  90. MirkoSmieszki += '<a href="#" class="mirkosmieszek color" data-smieszek="'+el+'">'+el+'</a>';
  91. });
  92. MirkoEmotkiUsr.forEach(function(el){
  93. MirkoSmieszkiusr += '<a href="#" class="mirkosmieszek color" data-smieszek="'+el+'">'+el+'</a>';
  94. });
  95. //DA JOB
  96. //Usuwamy Maciejowego helpera / Sorry Kaciej
  97. $('div.grid-main div.dropdown table').remove();
  98. //I dodajemy prawilny MirkoHelper
  99. $('div.grid-main div.dropdown').prepend('<div id="mirkohelper" class="summary"></div>');
  100. $('div#mirkohelper').append('<div id="mirki">'+ MirkoSmieszki +'</div>');
  101. $('div#mirkohelper').append('<div id="mirkiusr" class="bgfff rel">'+ MirkoSmieszkiusr +'</div>');
  102. $('div#mirkohelper').append('<div id="moar" class="bgfff rel">'+ moar +'</div>');
  103. $('div#mirkohelper').prepend('<span class="mirkoButtons" style=""><a href"#" class="color" id="halp">MOAR!</a> <a href="#" class="color" id="moar">WINCYJ!</a></span>');
  104. $('div#mirkohelper').append('<span class="mirkoFooter"><a class="color" href="http://www.wykop.pl/dodatki/pokaz/291/" title="Strona MirkoHelpera" target="_blank">MirkoHelper</a> by <a class="color" href="http://www.wykop.pl/ludzie/Osael/" target="_blank" title="( ͡° ͜ʖ ͡°) usuń konto">@osael</a></span>');
  105.  
  106. //A teraz obsluga tego towarzystwa
  107. //Wstawianie wybranej emotki tam gdzie jest kursor
  108. $(document).on('click', 'a.mirkosmieszek', function() {
  109. var smieszko = ($(this).attr("data-smieszek"));
  110. jQuery(this).closest('form').find('textarea').insertAtCaret(smieszko+" ");
  111. return false;
  112. });
  113.  
  114. //chowanie MOAR! pokazywanie WINCYJ! i w ogóle dziwki, koks i lasery
  115. $(document).on("click", 'a#halp', function(){
  116. if( $('div#mirki').is(':visible') ) {
  117. $('div#mirki').hide();
  118. $('div#mirkiusr').hide();
  119. $('div#halp').show();
  120. } else if ( $('div#mirkiusr').is(':visible') ) {
  121. $('div#mirkiusr').hide();
  122. $('div#mirki').hide();
  123. $('div#halp').show();
  124. } else {
  125. $('div#halp').hide();
  126. $('div#mirki').show();
  127. }
  128. return false;
  129. });
  130. //niezle pojebane, nie? ale dziala! :D
  131. $(document).on("click", 'a#moar', function(){
  132. if( $('div#mirki').is(':visible') ) {
  133. $('div#mirki').hide();
  134. $('div#mirkiusr').show();
  135. } else if ( $('div#mirkiusr').is(':visible') ) {
  136. $('div#mirkiusr').hide();
  137. $('div#mirki').show();
  138. } else {
  139. $('div#mirkiusr').show();
  140. }
  141. $('div#halp').hide();
  142. return false;
  143. });
  144. //Skrypcik na wstawianie MirkoEmotki gdzie jest kursor
  145. jQuery.fn.extend({
  146. insertAtCaret: function(myValue){
  147. return this.each(function(i) {
  148. if (document.selection) {
  149. //For browsers like Internet Explorer
  150. this.focus();
  151. var sel = document.selection.createRange();
  152. sel.text = myValue;
  153. this.focus();
  154. }
  155. else if (this.selectionStart || this.selectionStart == '0') {
  156. //For browsers like Firefox and Webkit based
  157. var startPos = this.selectionStart;
  158. var endPos = this.selectionEnd;
  159. var scrollTop = this.scrollTop;
  160. this.value = this.value.substring(0, startPos)+myValue+this.value.substring(endPos,this.value.length);
  161. this.focus();
  162. this.selectionStart = startPos + myValue.length;
  163. this.selectionEnd = startPos + myValue.length;
  164. this.scrollTop = scrollTop;
  165. } else {
  166. this.value += myValue;
  167. this.focus();
  168. }
  169. });
  170. }
  171. });
  172. }
  173.  
  174. if (typeof $ == 'undefined') {
  175. if (typeof unsafeWindow !== 'undefined' && unsafeWindow.jQuery) {
  176. // Firefox
  177. var $ = unsafeWindow.jQuery;
  178. main();
  179. } else {
  180. // Chrome
  181. addJQuery(main);
  182. }
  183. } else {
  184. // Opera >.>
  185. main();
  186. }
  187.  
  188. //what is this i dont even
  189. function addJQuery(callback) {
  190. var script = document.createElement("script");
  191. script.textContent = "(" + callback.toString() + ")();";
  192. document.body.appendChild(script);
  193. }