正确跟帖的方法

在网易,163, v2方便跟帖

目前为 2016-05-04 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name 正确跟帖的方法
  3. // @namespace ysaerg
  4. // @version 1.0
  5. // @description 在网易,163, v2方便跟帖
  6. // @author ysaerg
  7. // @include /^https?:\/\/comment.\w+\.163\.com\/.*\/.*\.html$/
  8. // @include /^https?:\/\/v2ex\.com\/t\/.*$/
  9. // @todo /https?:\/\/tieba\.baidu\.com\/.*/
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. var chinese = {
  14. 民: '泯',
  15. 自: '目',
  16. 杀: '纱',
  17. 死: '屎',
  18. 主: '猪',
  19. 统: '捅',
  20. 村: '木寸',
  21. 科: '禾斗',
  22. 处: '畜',
  23. 局: '菊',
  24. 部: '步',
  25. 厅: '汀',
  26. 省: '绳',
  27. 县: '馅',
  28. 国: '掴',
  29. 家: '稼',
  30. 马: '玛',
  31. 宁: '狞',
  32. 毛: '猫',
  33. 邓: '灯',
  34. 江: '茳',
  35. 泽: '沢',
  36. 谋: '某',
  37. 王: '仼',
  38. 周: '週',
  39. 胡: '葫',
  40. 刘: '浏',
  41. 李: '锂',
  42. 吴: '捂',
  43. 温: '溫',
  44. 习: '夕',
  45. 贺: '赫',
  46. 贾: '價',
  47. 彭: '嘭',
  48. 潭: '覃',
  49. 新: '亲斤',
  50. 诚: '铖',
  51. 事: 'story',
  52. 职: '耳只',
  53. 称: '禾尔',
  54. 英: '瑛',
  55. 语: '言吾',
  56. 答: '嗒',
  57. 案: '桉',
  58. 公: '蚣',
  59. 务: '兀',
  60. 员: '猿',
  61. 宝: '孢',
  62. 轮: '纶',
  63. 胎: '肽',
  64. 政: '钲',
  65. 变: '煸',
  66. 枪: '炝',
  67. 声: '笙',
  68. 戒: '琾',
  69. 严: '盐',
  70. 京: '菁',
  71. 真: '稹',
  72. 理: '锂',
  73. 贼: '戝',
  74. 假: '茄',
  75. 异: '弈',
  76. 士: '仕',
  77. 军: '莙',
  78. 日: '衵',
  79. 高: '篙',
  80. 刊: '衎',
  81. 物: '焐',
  82. 议: '仪',
  83. 人: '朲',
  84. 权: '荃',
  85. 党: '谠',
  86. 独: '牍',
  87. 裁: '菜',
  88. 迫: '珀',
  89. 害: '嗐',
  90. 委: '萎',
  91. 论: '抡',
  92. 探: '镡',
  93. 斯: '嘶',
  94. 哲: '喆',
  95. 胜: '笙',
  96. 藏: '臧',
  97. 经: '泾',
  98. 命: '掵',
  99. 革: '諽',
  100. 劳: '捞',
  101. 牢: '涝',
  102. 佬: '姥',
  103. 监: '鉴',
  104. 狱: '域',
  105. 左: '佐',
  106. 右: '佑',
  107. 上: '丄',
  108. 下: '丅',
  109. 东: '岽',
  110. 南: '喃',
  111. 西: '茜',
  112. 北: '邶',
  113. 前: '偂',
  114. 后: '逅',
  115. 报: '铇',
  116. 进: '琎',
  117. 禁: '僸',
  118. 美: '镁',
  119. 业: '邺',
  120. 帝: '蒂',
  121. 城: '铖',
  122. 团: '団',
  123. 派: 'π',
  124. 怨: '鸳',
  125. 冤: '鸳',
  126. 封: '葑',
  127. 锁: '琐',
  128. 血: '桖',
  129. 邪: '偕',
  130. 地: '递',
  131. 岸: '堓',
  132. 宪: '筅',
  133. 社: '渉',
  134. 操: '鄵',
  135. 镇: '嫃',
  136. 审: '渖',
  137. 明: '朙',
  138. 文: '呅'
  139. };
  140.  
  141.  
  142. var sites = [
  143. {
  144. url: /https?:\/\/comment\..+\.163\.com\/.*\/.*.html/,
  145. ele: ['#replyBody']
  146. },
  147. {
  148. url: /https?:\/\/v2ex\.com\/t\/.*/,
  149. ele: ['#reply_content']
  150. },
  151.  
  152. {
  153. url:/https?:\/\/tieba\.baidu\.com\/f\?kw=.*/,
  154. ele: ['.editor_textfield','#ueditor_replace']
  155. }
  156. ];
  157.  
  158. String.prototype.toUnicode = function(){
  159. var str ='';
  160. var text = this.toString();
  161. for(var i=0;i<text.length;i++)
  162. {
  163. str+="\\u"+parseInt(text[i].charCodeAt(0),10).toString(16);
  164. }
  165. return str;
  166. };
  167.  
  168. String.prototype.toChinese = function () {
  169. var text = this.toString();
  170. data = text.split('\\u');
  171. var str ='';
  172. for(var i=0;i<data.length;i++)
  173. {
  174. str+=String.fromCharCode(parseInt(data[i],16).toString(10));
  175. }
  176. return str;
  177. };
  178.  
  179.  
  180.  
  181. function chooseEle(url){
  182. var elements=false;
  183. for (var i = sites.length - 1; i >= 0; i--) {
  184. if(url.match(sites[i].url) !== null){
  185. elements = sites[i].ele;
  186. break;
  187. }
  188. }
  189. return elements;
  190. }
  191.  
  192.  
  193. var currentURL = window.location.href;
  194. console.log(currentURL);
  195. window.setTimeout(replaceCharactor(currentURL), 3000);
  196.  
  197. function replaceCharactor(url){
  198. var selectorArray = chooseEle(url);
  199. console.log('selector array: ' + selectorArray);
  200. if(selectorArray === false){
  201. console.log('url not support');
  202. return false;
  203. }
  204.  
  205. addListeners(getDOMs(selectorArray),function(ele){
  206. console.log('dom: '+ele);
  207. if(eleIs(ele,'ueditor_replace')){
  208. console.log('unsupport yet');
  209. return;
  210. }
  211.  
  212. var replaceText = function (){
  213. text = ele.value;
  214. if(text.length < 2) return;
  215. console.log('original texts: '+ text);
  216. text=text.toUnicode().split('\\').join(' \\');
  217.  
  218. var patterns = Object.keys(chinese);
  219. for (var i = patterns.length - 1; i >= 0; i--) {
  220. var p = new RegExp('\\'+patterns[i].toUnicode(),"g");
  221. text=text.replace(p, chinese[patterns[i]].toUnicode());
  222. }
  223.  
  224. console.log('final texts: '+text.split(' ').join('').toChinese());
  225. ele.value=text.split(' ').join('').toChinese();
  226. ele.removeEventListener('mouseout', replaceText ,false);
  227. };
  228.  
  229. var watchText = function() {
  230. ele.addEventListener('mouseout',replaceText, false);
  231.  
  232. };
  233.  
  234. ele.addEventListener('input',watchText,false);
  235.  
  236. });
  237. }
  238.  
  239.  
  240.  
  241.  
  242. function getDOMs(selectorArray) {
  243. var DOMs = [];
  244. for (var i = selectorArray.length - 1; i >= 0; i--) {
  245. var d = document.querySelector(selectorArray[i]);
  246. DOMs.push(d);
  247. }
  248. console.log('doms: ' + DOMs);
  249. return DOMs;
  250. }
  251.  
  252. function addListeners(DOMArray, callback) {
  253. for (var i = DOMArray.length - 1; i >= 0; i--) {
  254. callback(DOMArray[i]);
  255. }
  256. }
  257.  
  258. function eleIs(ele,classOrIdName) {
  259. // check http://stackoverflow.com/questions/1789945/how-can-i-check-if-one-string-contains-another-substring
  260. if(~ele.id.indexOf(classOrIdName) || ~ele.className.indexOf(classOrIdName))
  261. return true;
  262. else
  263. return false;
  264. }

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址