Report Helper Modified by Whitepimp007

Helps with reports

当前为 2017-02-26 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Report Helper Modified by Whitepimp007
  3. // @version 1.4.1
  4. // @description Helps with reports
  5. // @match https://epicmafia.com/report*
  6. // @grant GM_xmlhttpRequest
  7. // @grant GM_getValue
  8. // @grant GM_setValue
  9. // @namespace https://greasyfork.org/users/105745
  10. // ==/UserScript==
  11.  
  12. //native functions
  13. String.prototype.between=function(from, to) {
  14. var i=this.indexOf(from)+from.length;
  15. return this.substring(i, this.indexOf(to, i));
  16. };
  17.  
  18. function insertAfter(newNode, referenceNode) {
  19. referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
  20. }
  21.  
  22. //element creators
  23. function e_action_button(ref, text) {
  24. var q = '"';
  25. return "<a class='redbutton smallfont' href='"+unsafeWindow.location.href+"' onclick="+q+"$.get('"+ref+"');"+q+">"+text+"</a>";
  26. }
  27.  
  28. //special element creator
  29. function dual_e_action_button(ref, ref2, text) {
  30. var q = '"';
  31. return "<a class='redbutton smallfont' href='"+unsafeWindow.location.href+"' onclick="+q+"$.get('"+ref+"');$.get('"+ref2+"');"+q+">"+text+"</a>";
  32. }
  33.  
  34. function callback_actions() {
  35. var content="<h3>Report Helper&nbsp;|&nbsp;"+close_button+open_button+prog_button+close_nv_button+"&nbsp;|&nbsp;"+""+"</h3></div><div id='handler' style='margin: 5px; color: #888; display: none;'>last moderated by <span id='modName' style='font-weight: bold;'>The</span></div>";
  36. modinter.innerHTML=content;
  37. reportcomment.parentNode.insertBefore(modinter,reportcomment.nextSibling);
  38. }
  39.  
  40. //modify the report page
  41. if (unsafeWindow.location.href.match("epicmafia.com/report/")) {
  42. var penalties = {'Cheating' : ['24h suspension', 'lobby ban'],
  43. 'Copied Mechanics' : ['warning', '1h suspension', '12h suspension', '24h suspension', 'lobby ban'],
  44. 'Encouraging Rule Breakage' : ['warning', '1h suspension', '12h suspension', '24h suspension', 'lobby ban'],
  45. 'Game Throwing' : ['24h suspension', '24h suspension', 'lobby ban'],
  46. 'Game Related Suicide' : ['1h suspension', '12h suspension', '24h suspension', 'lobby ban'],
  47. 'Insufficient Participation' : ['warning', '1h suspension', '12h suspension', '24h suspension', 'lobby ban'],
  48. 'Lobby Camping' : ['warning', 'lobby ban'],
  49. 'Lobby Trolling' : ['warning', 'lobby ban'],
  50. 'Outside Game Influence' : ['warning', '12h suspension', '24h suspension', 'lobby ban'],
  51. 'Repeated Suicides' : ['12h suspension', 'lobby ban'],
  52. 'Spamming' : ['warning', '1h suspension', '12h suspension', '24h suspension', 'lobby ban'],
  53. 'Trolling' : ['1h suspension', '12h suspension', '24h suspension', 'lobby ban'],
  54. 'Report Spam' : ['warning', 'ban'],
  55. 'Bypassing Suspensions' : ['24h suspension', 'ban'],
  56. 'Exploit Abuse' : ['warning', '12h suspension & 24h forum suspension', '24h suspension & forum, comment, chat ban', 'ban'],
  57. 'Forum Spam' : ['warning', '24h forum suspension', '24h forum suspension', 'forum, comment, chat ban'],
  58. 'Harassment' : ['warning', '12h suspension & 24h forum suspension', '24h suspension & forum, comment, chat ban', 'ban'],
  59. 'Hateful Comments' : ['warning', '12h suspension & 24h forum suspension', '24h suspension & forum, comment, chat ban', 'ban'],
  60. 'Impersonation' : ['ban'],
  61. 'Inappropriate Avatar' : ['24h suspension', 'ban'],
  62. 'Inappropriate Biography' : ['warning', 'warning', 'ban'],
  63. 'Inappropriate Content' : ['warning', '24h forum suspension', '24h forum suspension', 'forum, comment, chat ban'],
  64. 'Inappropriate Name' : ['ban'],
  65. 'Outing Personal Information' : ['24h suspension', 'ban'],
  66. 'Sharing Account with Banned Users' : ['warning', 'ban'],
  67. 'Site Spam' : ['warning', 'warning', 'ban'],
  68. 'X-rated Material' : ['24h forum and/or lobby suspension', 'forum, comment, chat and/or lobby ban']
  69. };
  70. var reporter=document.getElementById('report_users').getElementsByClassName("user user_teeny")[0].outerHTML.between('/user/', '">');
  71. var reported=document.getElementById('report_users').getElementsByClassName("user user_teeny")[1].outerHTML.between('/user/', '">');
  72. var report_id=unsafeWindow.location.href.split('/report/')[1];
  73. //penalty table
  74. var violation_given = document.getElementsByClassName('violation')[0];
  75. if (violation_given) {
  76. vio = violation_given.innerHTML;
  77. var penalty_table = document.createElement('table');
  78. for (var penalty in penalties[vio]) {
  79. var penalty_link_line = document.createElement('tr');
  80. penalty_link_line.className = "smallfont";
  81. penalty_link_line.innerHTML = String(Number(penalty)+1) + '. ' + penalties[vio][penalty];
  82. penalty_table.appendChild(penalty_link_line);
  83. }
  84. document.getElementById('report_rt').appendChild(penalty_table);
  85. }
  86. var open_button=e_action_button('https://epicmafia.com/report/'+report_id+'/edit/status?status=open', 'Open');
  87. var close_button=e_action_button('https://epicmafia.com/report/'+report_id+'/edit/status?status=closed', 'Close');
  88. var prog_button=e_action_button('https://epicmafia.com/report/'+report_id+'/edit/status?status=processing', 'Process');
  89. var close_nv_button=dual_e_action_button('https://epicmafia.com/report/'+report_id+'/edit/statement?statement=No+violation', 'https://epicmafia.com/report/'+report_id+'/edit/status?status=closed', 'No violation');
  90. var modinter=document.createElement("div");
  91. var reportcomment=document.getElementById("report_msg");
  92. callback_actions();
  93. var data = GM_getValue("reportKey");
  94. if (!data) {
  95. data = {};
  96. }
  97. if (data[report_id]) {
  98. $("#modName").text(data[report_id]);
  99. $("#handler").show();
  100. }
  101. else {
  102. GM_xmlhttpRequest({
  103. url: "https://api.myjson.com/bins/26vjs",
  104. method:"GET",
  105. onload: function(res) {
  106. res = JSON.parse(res.responseText);
  107. var modName = res[report_id];
  108. if (modName) {
  109. $("#modName").text(modName);
  110. $("#handler").show();
  111. }
  112. GM_setValue("reportKey", res);
  113. }
  114. });
  115. }
  116. }
  117.  
  118. if (unsafeWindow.location.pathname == "/report") {
  119. $(".report_status_list").each(function () {
  120. $(this).append("<option value='duplicate'>Duplicate</option><option value='banned user'>Banned User</option>");
  121. });
  122. $(".report_status_list").change(function () {
  123. var report, url,user;
  124. if ($(this).val() == "duplicate") {
  125. $("body").css("cursor", "wait");
  126. report = $(this).parent().parent().parent().attr("id").split("_")[1];
  127. url = prompt("Enter report to link to:");
  128. if (url) {
  129. $.get("https://epicmafia.com/report/" + report + "/edit/statement?statement=Duplicate - " + url, function () {
  130. $.get("https://epicmafia.com/report/" + report + "/edit/status?status=closed", function () {
  131. window.location.reload();
  132. });
  133. });
  134. }
  135. else {
  136. window.location.reload();
  137. }
  138. }
  139. else if ($(this).val() == "banned user") {
  140. $("body").css("cursor", "wait");
  141. report = $(this).parent().parent().parent().attr("id").split("_")[1];
  142. user = $(this).parent().parent().parent().find(".report_user2").attr("href").split("/")[2];
  143. $.get("https://epicmafia.com/report/" + report + "/edit/statement?statement=Banned user", function () {
  144. $.post("/violation", {
  145. 'user_id': user,
  146. 'report_id': report,
  147. 'siterule_id': 54
  148. }, function () {
  149. $.get("https://epicmafia.com/moderator/action/suspend_account_all/user/" + user, function () {
  150. $.get("https://epicmafia.com/report/" + report + "/edit/status?status=closed", function () {
  151. window.location.reload();
  152. });
  153. });
  154. });
  155. });
  156. }
  157. });
  158. }