cmf redlist

cmf论坛红名单或黑名单设置

  1. // ==UserScript==
  2. // @license MIT
  3. // @name cmf redlist
  4. // @namespace http://tampermonkey.net/
  5. // @version 0.5
  6. // @description cmf论坛红名单或黑名单设置
  7. // @author You
  8. // @match *://*.cmfish.com/bbs/*
  9. // @grant GM_setValue
  10. // @grant GM_getValue
  11. // @grant GM_deleteValue
  12.  
  13. // ==/UserScript==
  14.  
  15. (function() {
  16. 'use strict';
  17. const SHADIAO_BG_CSS = "background-image:url('data:image/png;base64,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');";
  18. const RED_CSS=" background-color: #ffebe5;background-size:contain;"
  19. const BLACK_CSS=" background-color: #e6e6e6;background-size:contain;"
  20. const GREEN_CSS=" background-color: #e5ffee;background-size:contain;"
  21. const BLUE_CSS=" background-color: #e5f7ff;background-size:contain;"
  22. const PURPLE_CSS=" background-color: #ffe5ff;background-size:contain;"
  23.  
  24. let url = document.URL;
  25. let username_in_infopage;
  26.  
  27. let redListName = 'red-list';
  28. let redlist = GM_getValue(redListName, "").split(';');
  29. let redButtonName = 'redbutton';
  30.  
  31. let blackListName = 'black-list';
  32. let blacklist = GM_getValue(blackListName, "").split(';');
  33. let blackButtonName = 'blackbutton';
  34.  
  35. let greenListName = 'green-list';
  36. let greenlist = GM_getValue(greenListName, "").split(';');
  37. let greenButtonName = 'greenbutton';
  38.  
  39. let blueListName = 'blue-list';
  40. let bluelist = GM_getValue(blueListName, "").split(';');
  41. let blueButtonName = 'bluebutton';
  42.  
  43. let purpleListName = 'purple-list';
  44. let purplelist = GM_getValue(purpleListName, "").split(';');
  45. let purpleButtonName = 'purplebutton';
  46.  
  47. let hideListName = 'hide-list';
  48. let hidelist = GM_getValue(hideListName, "").split(';');
  49. let hideButtonName = 'hidebutton';
  50.  
  51. function GetQueryString(name){
  52. var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
  53. var r = window.location.search.substr(1).match(reg);
  54. if(r!=null)return unescape(r[2]); return null;
  55. }
  56.  
  57. //清空红黑榜,慎重
  58. //GM_deleteValue(redListName);
  59. //GM_deleteValue(blackListName);
  60. //return;
  61.  
  62.  
  63. if (url.indexOf('forum.php?mod=forumdisplay')>0)
  64. {
  65. //debugger;
  66. // 首页及类首页
  67. let home_list = document.getElementById('threadlisttableid').children;
  68. let len = home_list.length;
  69. for(let i=1; i<len; i++) {
  70. if(home_list[i]
  71. &&home_list[i].children[0]
  72. &&home_list[i].children[0].children[2]
  73. &&home_list[i].children[0].children[2].children[0]
  74. &&home_list[i].children[0].children[2].children[0].children[0]){
  75. let href=home_list[i].children[0].children[2].children[0].children[0].href
  76. let username=href.substring(href.lastIndexOf('uid=')+4)
  77. if (redlist.indexOf(username) >= 0) {
  78. home_list[i].style = RED_CSS;
  79. }
  80. if (blacklist.indexOf(username) >= 0) {
  81. home_list[i].style = BLACK_CSS;
  82. }
  83. if (greenlist.indexOf(username) >= 0) {
  84. home_list[i].style = GREEN_CSS;
  85. }
  86. if (bluelist.indexOf(username) >= 0) {
  87. home_list[i].style = BLUE_CSS;
  88. }
  89. if (purplelist.indexOf(username) >= 0) {
  90. home_list[i].style = PURPLE_CSS;
  91. }
  92. if (hidelist.indexOf(username) >= 0) {
  93. home_list[i].hidden=true;
  94. }
  95. let remark=GM_getValue('r-'+username, "")
  96. if(remark){
  97. let title=home_list[i].children[0].children[1].children[2]
  98. title.innerHTML=title.innerHTML+'<div style="color: #CC0000;float:right">'+remark+"</div>"
  99. }
  100. let position=GM_getValue('p-'+username, "")
  101. if(position){
  102. let title=home_list[i].children[0].children[1].children[2]
  103. title.innerHTML=title.innerHTML+'<div style="color: #CC0000;float:left">'+position+"</div>"
  104. }
  105. }
  106. }
  107. }else if (url.indexOf('forum.php?mod=guide')>0){
  108. //debugger;
  109. // 首页及类首页
  110. let home_list = document.getElementById('threadlist').children[1].children[1].children;
  111. let len = home_list.length;
  112. for(let i=0; i<len; i++) {
  113. //debugger;
  114. if(home_list[i]
  115. &&home_list[i].children[0]
  116. &&home_list[i].children[0].children[3]
  117. &&home_list[i].children[0].children[3].children[0]
  118. &&home_list[i].children[0].children[3].children[0].children[0].href){
  119. let href=home_list[i].children[0].children[3].children[0].children[0].href
  120. let username=href.substring(href.lastIndexOf('uid=')+4)
  121. if (redlist.indexOf(username) >= 0) {
  122. home_list[i].style = RED_CSS;
  123. }
  124. if (blacklist.indexOf(username) >= 0) {
  125. home_list[i].style = BLACK_CSS;
  126. }
  127. if (greenlist.indexOf(username) >= 0) {
  128. home_list[i].style = GREEN_CSS;
  129. }
  130. if (bluelist.indexOf(username) >= 0) {
  131. home_list[i].style = BLUE_CSS;
  132. }
  133. if (purplelist.indexOf(username) >= 0) {
  134. home_list[i].style = PURPLE_CSS;
  135. }
  136. if (hidelist.indexOf(username) >= 0) {
  137. home_list[i].hidden=true;
  138. }
  139. let remark=GM_getValue('r-'+username, "")
  140. if(remark){
  141. //debugger
  142. let title=home_list[i].children[0].children[1]
  143. title.innerHTML=title.innerHTML+'<div style="color: #CC0000;float:right">'+remark+"</div>"
  144. }
  145. let position=GM_getValue('p-'+username, "")
  146. if(position){
  147. let title=home_list[i].children[0].children[1]
  148. title.innerHTML=title.innerHTML+'<div style="color: #CC0000;float:left">'+position+"</div>"
  149. }
  150. }
  151. }
  152. } else if (url.indexOf('forum.php?mod=viewthread')>0) {
  153. // 帖子详情页
  154. let comments = document.getElementsByClassName('pls cl favatar');
  155. let len = comments.length;
  156. for(let i=0; i<len; i++) {
  157. let cell = comments[i];
  158. let href=comments[i].children[0].children[0].children[0].href
  159. let username=href.substring(href.lastIndexOf('uid=')+4)
  160. if (redlist.indexOf(username) >= 0) {
  161. cell.parentElement.parentElement.parentElement.style = RED_CSS;
  162. }
  163. if (blacklist.indexOf(username) >= 0) {
  164. cell.parentElement.parentElement.parentElement.style = BLACK_CSS;
  165. }
  166. if (greenlist.indexOf(username) >= 0) {
  167. cell.parentElement.parentElement.parentElement.style = GREEN_CSS;
  168. }
  169. if (bluelist.indexOf(username) >= 0) {
  170. cell.parentElement.parentElement.parentElement.style = BLUE_CSS;
  171. }
  172. if (purplelist.indexOf(username) >= 0) {
  173. cell.parentElement.parentElement.parentElement.style = PURPLE_CSS;
  174. }
  175. if (hidelist.indexOf(username) >= 0) {
  176. cell.parentElement.parentElement.parentElement.hidden=true;
  177. }
  178. let remark=GM_getValue('r-'+username, "")
  179. if(remark){
  180. //debugger
  181. cell.innerHTML=cell.innerHTML+'<div style="color: #CC0000;float:left">备注:'+remark+"</div>"
  182. }
  183. let position=GM_getValue('p-'+username, "")
  184. if(position){
  185. cell.innerHTML=cell.innerHTML+'<br><div style="color: #CC0000;float:left">位置:'+position+"</div>"
  186. }
  187. }
  188. } else if (url.indexOf('home.php?mod=space')>0) {
  189. // 个人主页
  190. username_in_infopage = GetQueryString('uid');
  191. // let button = document.getElementsByClassName('fr')[0];
  192. let button_container = document.getElementsByClassName('mt')[0];
  193.  
  194. let red = document.createElement('input');
  195. red.setAttribute('type', 'button');
  196. red.setAttribute('id', redButtonName);
  197. red.setAttribute('value', redlist.indexOf(username_in_infopage)>=0 ? 'Unred' : 'Red');
  198. red.setAttribute('class', 'super normal button');
  199. button_container.appendChild(red);
  200. document.getElementById(redButtonName).onclick = function() {
  201. let redlist = GM_getValue(redListName, "").split(';');
  202. if (redlist.indexOf(username_in_infopage) >= 0) {
  203. GM_setValue(redListName, GM_getValue(redListName, "").replace(';' + username_in_infopage, ''));
  204. } else {
  205. GM_setValue(redListName, GM_getValue(redListName, "") + ';' + username_in_infopage);
  206. }
  207. document.getElementById(redButtonName).value = GM_getValue(redListName, '').split(';').indexOf(username_in_infopage)>=0 ? 'Unred' : 'Red';
  208. };
  209.  
  210. let black = document.createElement('input');
  211. black.setAttribute('type', 'button');
  212. black.setAttribute('id', blackButtonName);
  213. black.setAttribute('value', blacklist.indexOf(username_in_infopage)>=0 ? 'Unblack' : 'Black');
  214. black.setAttribute('class', 'super normal button');
  215. button_container.appendChild(black);
  216. document.getElementById(blackButtonName).onclick = function() {
  217. let blacklist = GM_getValue(blackListName, "").split(';');
  218. if (blacklist.indexOf(username_in_infopage) >= 0) {
  219. GM_setValue(blackListName, GM_getValue(blackListName, "").replace(';' + username_in_infopage, ''));
  220. } else {
  221. GM_setValue(blackListName, GM_getValue(blackListName, "") + ';' + username_in_infopage);
  222. }
  223. document.getElementById(blackButtonName).value = GM_getValue(blackListName, '').split(';').indexOf(username_in_infopage)>=0 ? 'Unblack' : 'Black';
  224. };
  225.  
  226. let green = document.createElement('input');
  227. green.setAttribute('type', 'button');
  228. green.setAttribute('id', greenButtonName);
  229. green.setAttribute('value', greenlist.indexOf(username_in_infopage)>=0 ? 'Ungreen' : 'Green');
  230. green.setAttribute('class', 'super normal button');
  231. button_container.appendChild(green);
  232. document.getElementById(greenButtonName).onclick = function() {
  233. let greenlist = GM_getValue(greenListName, "").split(';');
  234. if (greenlist.indexOf(username_in_infopage) >= 0) {
  235. GM_setValue(greenListName, GM_getValue(greenListName, "").replace(';' + username_in_infopage, ''));
  236. } else {
  237. GM_setValue(greenListName, GM_getValue(greenListName, "") + ';' + username_in_infopage);
  238. }
  239. document.getElementById(greenButtonName).value = GM_getValue(greenListName, '').split(';').indexOf(username_in_infopage)>=0 ? 'Ungreen' : 'Green';
  240. };
  241.  
  242. let blue = document.createElement('input');
  243. blue.setAttribute('type', 'button');
  244. blue.setAttribute('id', blueButtonName);
  245. blue.setAttribute('value', bluelist.indexOf(username_in_infopage)>=0 ? 'Unblue' : 'Blue');
  246. blue.setAttribute('class', 'super normal button');
  247. button_container.appendChild(blue);
  248. document.getElementById(blueButtonName).onclick = function() {
  249. let bluelist = GM_getValue(blueListName, "").split(';');
  250. if (bluelist.indexOf(username_in_infopage) >= 0) {
  251. GM_setValue(blueListName, GM_getValue(blueListName, "").replace(';' + username_in_infopage, ''));
  252. } else {
  253. GM_setValue(blueListName, GM_getValue(blueListName, "") + ';' + username_in_infopage);
  254. }
  255. document.getElementById(blueButtonName).value = GM_getValue(blueListName, '').split(';').indexOf(username_in_infopage)>=0 ? 'Unblue' : 'Blue';
  256. };
  257.  
  258. let purple = document.createElement('input');
  259. purple.setAttribute('type', 'button');
  260. purple.setAttribute('id', purpleButtonName);
  261. purple.setAttribute('value', purplelist.indexOf(username_in_infopage)>=0 ? 'Unpurple' : 'Purple');
  262. purple.setAttribute('class', 'super normal button');
  263. button_container.appendChild(purple);
  264. document.getElementById(purpleButtonName).onclick = function() {
  265. let purplelist = GM_getValue(purpleListName, "").split(';');
  266. if (purplelist.indexOf(username_in_infopage) >= 0) {
  267. GM_setValue(purpleListName, GM_getValue(purpleListName, "").replace(';' + username_in_infopage, ''));
  268. } else {
  269. GM_setValue(purpleListName, GM_getValue(purpleListName, "") + ';' + username_in_infopage);
  270. }
  271. document.getElementById(purpleButtonName).value = GM_getValue(purpleListName, '').split(';').indexOf(username_in_infopage)>=0 ? 'Unpurple' : 'Purple';
  272. };
  273.  
  274. let hide = document.createElement('input');
  275. hide.setAttribute('type', 'button');
  276. hide.setAttribute('id', hideButtonName);
  277. hide.setAttribute('value', hidelist.indexOf(username_in_infopage)>=0 ? '显示' : '隐藏');
  278. hide.setAttribute('class', 'super normal button');
  279. button_container.appendChild(hide);
  280. document.getElementById(hideButtonName).onclick = function() {
  281. let hidelist = GM_getValue(hideListName, "").split(';');
  282. if (hidelist.indexOf(username_in_infopage) >= 0) {
  283. GM_setValue(hideListName, GM_getValue(hideListName, "").replace(';' + username_in_infopage, ''));
  284. } else {
  285. GM_setValue(hideListName, GM_getValue(hideListName, "") + ';' + username_in_infopage);
  286. }
  287. document.getElementById(hideButtonName).value = GM_getValue(hideListName, '').split(';').indexOf(username_in_infopage)>=0 ? '显示' : '隐藏';
  288. };
  289.  
  290. let remark = document.createElement('input');
  291. remark.setAttribute('type', 'input');
  292. remark.setAttribute('id', 't-remark');
  293. remark.setAttribute('placeholder', '请输入备注');
  294. remark.setAttribute('value', GM_getValue('r-'+username_in_infopage, ""));
  295. button_container.appendChild(remark);
  296.  
  297. let saveRemark = document.createElement('input');
  298. saveRemark.setAttribute('type', 'button');
  299. saveRemark.setAttribute('id', 'saveRemark');
  300. saveRemark.setAttribute('value', '保存备注');
  301. saveRemark.setAttribute('class', 'super normal button');
  302. button_container.appendChild(saveRemark);
  303. document.getElementById('saveRemark').onclick = function() {
  304. GM_setValue('r-'+username_in_infopage, document.getElementById('t-remark').value)
  305. };
  306.  
  307. let position = document.createElement('input');
  308. position.setAttribute('type', 'input');
  309. position.setAttribute('id', 't-position');
  310. position.setAttribute('placeholder', '请输入位置');
  311. position.setAttribute('value', GM_getValue('p-'+username_in_infopage, ""));
  312. button_container.appendChild(position);
  313.  
  314. let savePosition = document.createElement('input');
  315. savePosition.setAttribute('type', 'button');
  316. savePosition.setAttribute('id', 'savePosition');
  317. savePosition.setAttribute('value', '保存位置');
  318. savePosition.setAttribute('class', 'super normal button');
  319. button_container.appendChild(savePosition);
  320. document.getElementById('savePosition').onclick = function() {
  321. GM_setValue('p-'+username_in_infopage, document.getElementById('t-position').value)
  322. };
  323. }
  324. })();