BotD Auto-updater

Adds a button to the right of the Save changes button. Press it, write the number of the BotD and let the post be auto updated by the script.

  1. // ==UserScript==
  2. // @name BotD Auto-updater
  3. // @namespace arreloco
  4. // @include http://www.kongregate.com/forums/*
  5. // @version 0.0.1.20160306141318
  6. // @description Adds a button to the right of the Save changes button. Press it, write the number of the BotD and let the post be auto updated by the script.
  7. // ==/UserScript==
  8. function getMyDay(date) {
  9. switch (date.getDay()) {
  10. case 0 :
  11. return "Sunday";
  12. break;
  13. case 1 :
  14. return "Monday";
  15. break;
  16. case 2 :
  17. return "Tuesday";
  18. break;
  19. case 3 :
  20. return "Wednesday";
  21. break;
  22. case 4 :
  23. return "Thursday";
  24. break;
  25. case 5 :
  26. return "Friday";
  27. break;
  28. case 6 :
  29. return "Saturday";
  30. break;
  31. }
  32. }
  33. function getMyMonth(date) {
  34. switch (date.getMonth()) {
  35. case 0 :
  36. return "January";
  37. break;
  38. case 1 :
  39. return "February";
  40. break;
  41. case 2 :
  42. return "March";
  43. break;
  44. case 3 :
  45. return "April";
  46. break;
  47. case 4 :
  48. return "May";
  49. break;
  50. case 5 :
  51. return "June";
  52. break;
  53. case 6 :
  54. return "July";
  55. break;
  56. case 7 :
  57. return "August";
  58. break;
  59. case 8 :
  60. return "September";
  61. break;
  62. case 9 :
  63. return "October";
  64. break;
  65. case 10 :
  66. return "November";
  67. break;
  68. case 11 :
  69. return "December";
  70. break;
  71. }
  72. }
  73.  
  74. setInterval(function updV() {
  75. try {
  76. op = document.getElementsByClassName("post_creator")[0].innerHTML;
  77. } catch (ex) {
  78. return;
  79. }
  80. ar = document.getElementById("forums").innerHTML.split("button_or");
  81. if(ar.length<4 && op == "Vizuna"){
  82. btn = document.createElement("span");
  83. btn.setAttribute("class", "button_or");
  84. btn.innerHTML = "| ";
  85. updateBtn = document.createElement("a");
  86. updateBtn.setAttribute("href", "javascript:void(0);");
  87. updateBtn.addEventListener("click", function (event) {
  88. day = prompt("Please, enter the number of the BotD", "");
  89. if (day == null) {
  90. return;
  91. }
  92. xmlhttp = new XMLHttpRequest();
  93. xmlhttp.open("GET", "http://www.kongregate.com/badges", false);
  94. xmlhttp.send();
  95. page = xmlhttp.responseText;
  96. page = page.split("botd_content")[1].split("What's Badge of the Day?")[0];
  97. badge = page.split('title="')[1].split(' width')[0];
  98. badge = badge.replace(" (to be earned)\"","");
  99. badge = badge.replace(" (completed)\"","");
  100. badge += " Badge";
  101. alert(badge);
  102. page = page.split('badge_details')[1];
  103. gLink = page.split('href="')[1].split(' class=')[0];
  104. description = page.split('<em class')[1].split("<a href")[0];
  105. patt1 = /easy/g;
  106. patt2 = /medium/g;
  107. patt3 = /hard/g;
  108. if (patt1.test(description)) {
  109. points = 5;
  110. val = "<i>(easy - 5 points)</i>";
  111. } else if (patt2.test(description)) {
  112. points = 15;
  113. val = "<i>(medium - 15 points)</i>";
  114. } else if (patt3.test(description)) {
  115. points = 30;
  116. val = "<i>(hard - 30 points)</i>";
  117. }
  118. game = page.split(gLink)[2].split("</a>")[0].replace(">", "");
  119. d = new Date();
  120. var r = document.getElementById("edit_post_body").innerHTML;
  121. patt4 = /&lt;/g;
  122. patt5 = /&gt;/g;
  123. r = r.replace(patt4,"<");
  124. r = r.replace(patt5,">");
  125. ar = r.split("<br");
  126. totalPoints = parseInt(r.split("bonus points: <b>")[1].split("</b>"));
  127. totalPoints += points;
  128. avgPoints = parseInt(totalPoints/parseInt(day)*10)/10;
  129. avgPoints += "</b>";
  130. totalPoints = "Total bonus points: <b>"+totalPoints.toString();
  131. new_badge = day+". "+getMyDay(d)+", "+getMyMonth(d)+" "+d.getDate()+", "+d.getFullYear()+"<br><a href='"+gLink.replace('"', "")+"'>"+game+"</a><br><ul><li><b>"+badge+"</b>"+val+"</li></ul><br\>";
  132. ar[ar.length-2] = ">Average bonus points per day: <b>"+avgPoints;
  133. ar[ar.length-3] = ">"+totalPoints+"</b>";
  134. ar[ar.length-4] = ">"+new_badge;
  135. new_pst = ar.join("<br");
  136. document.getElementById("edit_post_body").innerHTML = new_pst;
  137. }, false);
  138. updateBtn.innerHTML = "update";
  139. btn.appendChild(updateBtn);
  140. try{
  141. table = document.getElementById("edit").getElementsByTagName("tbody")[0].getElementsByTagName("td")[2];
  142. }catch(ex){
  143. return;
  144. }
  145. table.appendChild(btn);
  146. }
  147. }, 1000);

QingJ © 2025

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