Board Formatting

Adds formatting for the code board

  1. // ==UserScript==
  2. // @name Board Formatting
  3. // @namespace http://www.hacker-project.com/
  4. // @version 1.3
  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 && new String(document.location.href).indexOf("&a3=edit_post")<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(el) {
  53. var val = el.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. el.innerHTML = val;
  59. var startingPoint = 0;
  60. while (val.indexOf("http", startingPoint)>-1) {
  61. startingPoint = val.indexOf("http", startingPoint);
  62. if (val.substring(startingPoint-2, startingPoint)=="l:") {
  63. var nextSpaceIndex = Math.min(val.indexOf("<", startingPoint), val.indexOf(" ", startingPoint));
  64. var href = val.substring(startingPoint, nextSpaceIndex);
  65. console.log(href);
  66. var first = val.substring(0, startingPoint), last = val.substring(nextSpaceIndex, val.length);
  67. var link = "<a href='"+href+"' target='_blank'>"+href+"</a>";
  68. console.log(link);
  69. el.innerHTML = first.substring(0, first.length-2)+link+last;
  70. val = el.innerHTML;
  71. startingPoint = val.indexOf(link)+link.length;
  72. }
  73. else startingPoint++;
  74. }
  75. var sar = [
  76. ["&gt;:)", "https://twemoji.maxcdn.com/72x72/1f608.png"],
  77. ["&gt;:d", "https://twemoji.maxcdn.com/72x72/1f608.png"],
  78. [":)", "https://twemoji.maxcdn.com/72x72/1f600.png"],
  79. ["xd", "https://twemoji.maxcdn.com/72x72/1f600.png"],
  80. [":|", "https://twemoji.maxcdn.com/72x72/1f610.png"],
  81. [":o", "https://twemoji.maxcdn.com/72x72/1f62e.png"],
  82. [":(", "https://twemoji.maxcdn.com/72x72/1f615.png"],
  83. [":d", "https://twemoji.maxcdn.com/72x72/1f603.png"],
  84. ["d:", "https://twemoji.maxcdn.com/72x72/1f627.png"],
  85. [";(", "https://twemoji.maxcdn.com/72x72/1f62a.png"],
  86. [":'(", "https://twemoji.maxcdn.com/72x72/1f62a.png"],
  87. [":p", "https://twemoji.maxcdn.com/72x72/1f61b.png"],
  88. [";p", "https://twemoji.maxcdn.com/72x72/1f60b.png"],
  89. [";)", "https://twemoji.maxcdn.com/72x72/1f609.png"]
  90. ];
  91. for (var sari = 0; sari < sar.length; sari++) {
  92. var sa = sar[sari];
  93. var s = sa[0];
  94. var addr = sa[1];
  95. var lastPos = 0-s.length;
  96. while (val.toLowerCase().indexOf(s, lastPos+s.length)>-1) {
  97. lastPos = val.toLowerCase().indexOf(s, lastPos+s.length);
  98. var first2 = val.substring(0, val.toLowerCase().indexOf(s));
  99. var last2 = val.substring(val.toLowerCase().indexOf(s)+s.length, val.length);
  100. if (first2.indexOf(" ", first2.length-1)>-1 || last2.substring(0, 1).indexOf(" ")>-1)el.innerHTML = first2+"<img src='"+addr+"' width='16px' style='position: relative; top: 3px;'/>"+last2;
  101. val = el.innerHTML;
  102. }
  103. }
  104. }
  105.  
  106. main();