Greasy Fork 还支持 简体中文。

Board Formatting

Adds formatting for the code board

目前為 2015-07-31 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name Board Formatting
  3. // @namespace http://www.hacker-project.com/
  4. // @version 1.0
  5. // @description Adds formatting for the code board
  6. // @author Kevin Mitnick
  7. // @match http://www.hacker-project.com/index.php?action=group*
  8. // @match http://hacker-project.com/index.php?action=group*
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. function main() {
  13. // DEFINE YOUR NICKNAMES HERE
  14. var nns = [
  15. // FOR MASS NOTIFICATION, DO NOT CHANGE
  16. "all",
  17. // YOUR OWN NICKNAMES
  18. "your",
  19. "nicknames",
  20. "here"
  21. ];
  22. var username;
  23. var servers = document.getElementsByName("g_id")[0].getElementsByTagName("option");
  24. var firsttext = servers[0].innerHTML;
  25. var ind = firsttext.indexOf("'s");
  26. if (ind>-1) username=firsttext.substring(0, ind);
  27. var alltd = document.getElementsByTagName("fieldset")[0];
  28. if (new String(document.location.href).indexOf("&a2=leader")<0) process(alltd);
  29. var numMessages;
  30. var as = document.getElementsByTagName("a");
  31. for (var i = 0; i < as.length; i++) if (as[i].href.indexOf("index.php?action=group")>-1) {
  32. if (as[i].innerHTML.indexOf("(")>-1) {
  33. numMessages = parseInt(as[i].innerHTML.substring(as[i].innerHTML.indexOf("(")+4, as[i].innerHTML.indexOf(")")-3));
  34. break;
  35. }
  36. else {
  37. numMessages = 0;
  38. break;
  39. }
  40. }
  41. if (new String(document.location.href).indexOf("&a3=new_post")>-1) numMessages++;
  42. for (var x = 0; x < document.getElementsByClassName("emi8").length; x++) {
  43. var msgtd = document.getElementsByClassName("emi8")[x];
  44. if (x<numMessages) msgtd.style.backgroundColor="#4C4C00";
  45. for (var nni = 0; nni < nns.length; nni++) {
  46. var nn = nns[nni];
  47. if (msgtd.innerHTML.indexOf("@"+nn)>-1) msgtd.style.backgroundColor="#4C4C00";
  48. }
  49. if (username !== null && msgtd.innerHTML.indexOf(username)>-1) msgtd.style.backgroundColor="#4C4C00";
  50. }
  51. }
  52. function process(span) {
  53. var val = span.innerHTML;
  54. // XSS
  55. while (val.indexOf("[[")>-1) val = val.replace("[[", "<");
  56. while (val.indexOf("]]")>-1) val = val.replace("]]", ">");
  57. while (val.indexOf("blocked")>-1) val = val.replace("blocked", "script");
  58. span.innerHTML = val;
  59. var sar = [
  60. [":)", "http://goo.gl/QKRt2U"],
  61. ["xd", "http://goo.gl/21TUiI"]
  62. ];
  63. for (var sari = 0; sari < sar.length; sari++) {
  64. var sa = sar[sari];
  65. var s = sa[0];
  66. var addr = sa[1];
  67. while (val.toLowerCase().indexOf(s)>-1) {
  68. var first2 = val.substring(0, val.toLowerCase().indexOf(s));
  69. var last2 = val.substring(val.toLowerCase().indexOf(s)+s.length, val.length);
  70. span.innerHTML = first2+"<img src='"+addr+"' width='16px'/>"+last2;
  71. val = span.innerHTML;
  72. }
  73. }
  74. }
  75.  
  76. main();