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. alert(firsttext);
  26. var ind = firsttext.indexOf("'s");
  27. if (ind>-1) username=firsttext.substring(0, ind);
  28. alert(username);
  29. var alltd = document.getElementsByTagName("fieldset")[0];
  30. if (new String(document.location.href).indexOf("&a2=leader")<0) process(alltd);
  31. var numMessages;
  32. var as = document.getElementsByTagName("a");
  33. for (var i = 0; i < as.length; i++) if (as[i].href.indexOf("index.php?action=group")>-1) {
  34. if (as[i].innerHTML.indexOf("(")>-1) {
  35. numMessages = parseInt(as[i].innerHTML.substring(as[i].innerHTML.indexOf("(")+4, as[i].innerHTML.indexOf(")")-3));
  36. break;
  37. }
  38. else {
  39. numMessages = 0;
  40. break;
  41. }
  42. }
  43. if (new String(document.location.href).indexOf("&a3=new_post")>-1) numMessages++;
  44. for (var x = 0; x < document.getElementsByClassName("emi8").length; x++) {
  45. var msgtd = document.getElementsByClassName("emi8")[x];
  46. if (x<numMessages) msgtd.style.backgroundColor="#4C4C00";
  47. for (var nni = 0; nni < nns.length; nni++) {
  48. var nn = nns[nni];
  49. if (msgtd.innerHTML.indexOf("@"+nn)>-1) msgtd.style.backgroundColor="#4C4C00";
  50. }
  51. if (username !== null && msgtd.innerHTML.indexOf(username)>-1) msgtd.style.backgroundColor="#4C4C00";
  52. }
  53. }
  54. function process(span) {
  55. var val = span.innerHTML;
  56. // XSS
  57. while (val.indexOf("[[")>-1) val = val.replace("[[", "<");
  58. while (val.indexOf("]]")>-1) val = val.replace("]]", ">");
  59. while (val.indexOf("blocked")>-1) val = val.replace("blocked", "script");
  60. span.innerHTML = val;
  61. var sar = [
  62. [":)", "http://goo.gl/QKRt2U"],
  63. ["xd", "http://goo.gl/21TUiI"]
  64. ];
  65. for (var sari = 0; sari < sar.length; sari++) {
  66. var sa = sar[sari];
  67. var s = sa[0];
  68. var addr = sa[1];
  69. while (val.toLowerCase().indexOf(s)>-1) {
  70. var first2 = val.substring(0, val.toLowerCase().indexOf(s));
  71. var last2 = val.substring(val.toLowerCase().indexOf(s)+s.length, val.length);
  72. span.innerHTML = first2+"<img src='"+addr+"' width='16px'/>"+last2;
  73. val = span.innerHTML;
  74. }
  75. }
  76. }
  77.  
  78. main();