Tag Checker

Show D2JSP BNP PokerStatus user

当前为 2019-12-15 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Tag Checker
  3. // @description Show D2JSP BNP PokerStatus user
  4. // Credits to fokse for creating this tampermonkey script
  5.  
  6. // @include https://forums.d2jsp.org/topic.php?t=*
  7. // @include https://forums.d2jsp.org/user.php?i=*
  8. // @include https://forums.d2jsp.org/pm.php?*
  9. // @include https://forums.d2jsp.org/forum.php?f=104
  10. // @include https://forums.d2jsp.org/forum.php?f=104&o=*
  11. // @include https://forums.d2jsp.org/guild.php*
  12. // @include https://forums.d2jsp.org/users.php?a=1&f=*
  13. // @include https://forums.d2jsp.org/index.php?*act=Friends*
  14. // @include https://forums.d2jsp.org/index.php?
  15. // @require https://code.jquery.com/jquery-latest.js
  16. // @version 1.23
  17. // @namespace https://greasyfork.org/users/371129
  18. // ==/UserScript==
  19. var TAG_LIST = ["Member", "Trusted", "Senior", "Active", "Repaid", "Blacklist", "Welcher"],
  20. COLOR = ["#647576", "#029dfc", "#59c405", "#df8400", "#fe0707", "#e2ee27", "#070800"],
  21. COLOR_2 = ['#615a5a','#178616','#2360af', 'orange','#dc26e6', 'black', 'red' ],
  22. BACKGROUND = ["white", "white", "white", "white", "white", "white", "white"];
  23.  
  24.  
  25.  
  26.  
  27.  
  28. var PAGE_TYPE = window.location.href.match(/\/topic\.php/) ? 'topic' :
  29. window.location.href.match(/act\=Friends/) ? 'friend' :
  30. window.location.href.match(/\/users\.php\?a=1\&f\=/) ? 'userlist' :
  31.  
  32. window.location.href.match(/\/pm\.php\?c\=3/) ? 'pm' :
  33. window.location.href.match(/\/user\.php/) ? 'user' :
  34. window.location.href.match(/\/guild\.php/) ? 'guild' :
  35. 'UNKNOWN';
  36.  
  37. function getSticky(){
  38.  
  39.  
  40.  
  41. if (!window.location.href.match(/\/forum\.php\?f\=104/)){
  42. return;
  43. }
  44.  
  45. $.ajax({
  46. type: 'GET',
  47. url: 'https://bnp.tools/api/links',
  48. dataType: 'JSON',
  49. success: function(jsonResult) {
  50. var sticky = '<tr><td><div class="sX s0a"></div></td><td class="lc links" colspan="5">Help:';
  51. jsonResult.forEach(function(element) {
  52. sticky += `<a href="${element.url}"><b>${element.display}</b></a>`;
  53. });
  54. sticky += '</td></tr>';
  55. $('body dl dd table.ftb tbody tr:eq(1)').before(sticky);
  56. }
  57. });
  58. }
  59. function showSingleLog(link, uid){
  60.  
  61. var offset = jQuery(link).offset();
  62. $('#psFieldset').css({top:offset.top,left:offset.left}).show();
  63. $('#psFieldset LEGEND SPAN').html("View tag history");
  64. $('#psFieldset DIV.main').html('<center><img src="https://bnp.tools/load.gif"></center>');
  65.  
  66. $.ajax({
  67. type: 'GET',
  68. url:`https://bnp.tools/api/description/${uid}`,
  69. success: function(response)
  70. {
  71. $('#psFieldset DIV.main').html(response);
  72. },
  73.  
  74. error: function(httpCode) {
  75. $('#psFieldset DIV.main').html('<center><i>Error retrieving data from server</i></center>');
  76. }
  77. });
  78.  
  79. };
  80.  
  81. function getStatus(userId) {
  82. $.ajax({
  83. type: 'GET',
  84. url: `https://bnp.tools/api/status/${userId}`,
  85. dataType: 'JSON',
  86. error: function(httpCode) {
  87. $(`div#pokerstatus_${jsonResult.id}`).each(function() {
  88. switch (PAGE_TYPE) {
  89. case 'user':
  90. $(this).html(`<i>Error retrieving data from server</i> `);
  91. break;
  92. case 'topic':
  93. case 'pm':
  94. $(this).html(`<a href=\"javascript:void(0);\">Poker Status: <i>Error</i></a> `)
  95. break;
  96. }
  97.  
  98. });
  99.  
  100. },
  101.  
  102. success: function(jsonResult) {
  103.  
  104.  
  105. $(`div#pokerstatus_${jsonResult.id}`).each(function() {
  106. switch (PAGE_TYPE) {
  107. case 'user':
  108.  
  109.  
  110. $(this).html(`
  111. <table class="ftbt">
  112. <tbody>
  113. <tr><td align="right"><b>Status:</b></td><td><b><span style="color: ${COLOR[jsonResult.results == false ? 0 : jsonResult.results[1]]};background: ${BACKGROUND[jsonResult.results == false ? 0 : jsonResult.results[1]]};opacity: 0.9;font-weight: bold;padding-left: 5px;padding-right: 5px;padding-top: 1px;padding-bottom: 1px;border-radius: 10px;">${jsonResult.results == false ? 'Unknown' : TAG_LIST[jsonResult.results[1]]}</span></b></td></tr>
  114. ${(jsonResult.results[2] && jsonResult.results[3].indexOf("#") != -1) || (jsonResult.results[3] ) ? `<tr class="bts">`: ''}
  115. ${jsonResult.results[2] && jsonResult.results[2].indexOf("#") != -1 ? `<td align="right" nowrap="">Discord:</td><td>${jsonResult.results[2]}</td></tr>`: ''}
  116. ${jsonResult.results[3] ? `<tr><td align="right" nowrap="">PokerStars:</td><td>${jsonResult.results[3]}</td></tr>`: ''}
  117.  
  118. ${jsonResult.results[4] || jsonResult.results[5] ? `<tr class="bts"><td></td><td align="right" nowrap=""><a id="tag_history" href="javascript:void(0);">View tag history</a></td></tr>`: ''}
  119. </tbody>
  120. </table>
  121. `);
  122.  
  123. if (jsonResult.results[4] || jsonResult.results[5]){
  124. $("#tag_history").click(function(){
  125. showSingleLog(this, jsonResult.id)
  126. });
  127. }
  128.  
  129.  
  130. break;
  131. case 'guild':
  132. case 'friend':
  133. $(this).html(`<span style="font-size: 8px;color: ${COLOR[jsonResult.results == false ? 0 : jsonResult.results[1]]};background: ${BACKGROUND[jsonResult.results == false ? 0 : jsonResult.results[1]]};opacity: 0.9;font-weight: bold;padding-left: 5px;padding-right: 5px;padding-top: 1px;padding-bottom: 1px;border-radius: 10px;">${jsonResult.results == false ? 'Unknown' : TAG_LIST[jsonResult.results[1]]}</span>`)
  134.  
  135. break;
  136. case 'userlist':
  137. console.log(jsonResult.results)
  138. if (jsonResult.results != 0 && jsonResult.results[1] != 0){
  139. $(this).html(` (<span style="font-weight:bold;color: ${COLOR_2[jsonResult.results == false ? 0 : jsonResult.results[1]]}">${jsonResult.results == false ? 'Unknown' : TAG_LIST[jsonResult.results[1]]}</span>)`)
  140. }
  141. break;
  142. break;
  143. case 'topic':
  144. case 'pm':
  145.  
  146. $(this).html(`<a href=\"javascript:void(0);\">Poker Status:</a> <span style="font-size: 8px;color: ${COLOR[jsonResult.results == false ? 0 : jsonResult.results[1]]};background: ${BACKGROUND[jsonResult.results == false ? 0 : jsonResult.results[1]]};opacity: 0.9;font-weight: bold;padding-left: 5px;padding-right: 5px;padding-top: 1px;padding-bottom: 1px;border-radius: 10px;">${jsonResult.results == false ? 'Unknown' : TAG_LIST[jsonResult.results[1]]}</span>`)
  147.  
  148.  
  149. if (jsonResult.results != false) {
  150. if (jsonResult.results[2] && jsonResult.results[2].indexOf("#") !== -1) {
  151. $(this).append(`<br>Discord: ${jsonResult.results[2]}`)
  152. }
  153. if (jsonResult.results[3]) {
  154. $(this).append(`<br>PokerStars: ${jsonResult.results[3]}`)
  155. }
  156. if (jsonResult.results[4] || jsonResult.results[5]){
  157. $($($(this).append(`<br><div class="view_log></div>`)).append(`<a href="javascript:void(0);">View tag history</a>`)).click(function(){showSingleLog(this, jsonResult.id)});
  158. }
  159.  
  160. }
  161. break;
  162. }
  163.  
  164. });
  165. }
  166. });
  167.  
  168.  
  169. }
  170.  
  171. function parsePage() {
  172. var checked = [],
  173. userid;
  174.  
  175. switch (PAGE_TYPE) {
  176. case "pm":
  177. userid = $('body > form > dl.c > dt > a').attr('href').split('=')[1];
  178. $('body > form > dl.c > dd > div.bts.ppc > div.desc.p3.pud').append(`<div id="pokerstatus_${userid}"><a href="javascript:void(0);">Poker Status:</a> Loading...</div>`);
  179. getStatus(userid);
  180. break;
  181. case "friend":
  182. $('body > dl > dd > table > tbody > tr:nth-child(1) > th:last-child').after('<th>Poker Status</th>');
  183. $('body > dl > dd > table > tbody > tr').each(function(){
  184. if (typeof $('td:nth-child(3) a', this).attr('href') !== 'undefined'){
  185. var userid = $('td:nth-child(3) a', this).attr('href').split("=")[1]
  186. // console.log(userid)
  187. $(this).append(`<td><div style="display: inline;" id="pokerstatus_${userid}"></div></td>`);
  188. getStatus(userid);
  189. }
  190.  
  191. })
  192. break;
  193. case "userlist":
  194. console.log("User list")
  195. $('body > dl > dd > table > tbody > tr:nth-child(2) > td > a').each(function(){
  196. var userid = $(this).attr('href').split("=")[1]
  197. $(this).after(`<div style="display: inline;" id="pokerstatus_${userid}"></div>`);
  198. getStatus(userid);
  199. })
  200. break;
  201.  
  202. case "user":
  203. userid = window.location.href.split("=")[1]
  204. getStatus(userid);
  205.  
  206. $('body > form > table > tbody > tr > td:nth-child(1) > dl:nth-child(1)').append(`<dl><dt>Bar & Pub Status</dt><dd><div class="p3 ce"><div id="pokerstatus_${userid}"><i>Loading...</i></div></div></dd></dl>`);
  207. $('body > table > tbody > tr > td:nth-child(1) > dl:nth-child(1)').append(` <dl><dt>Bar & Pub Status</dt><dd><div class="p3 ce"><div id="pokerstatus_${userid}"><i>Loading...</i></div></div></dd></dl>`);
  208. break;
  209. case 'guild':
  210. $('#tLT > tbody > tr:nth-child(1) > th:last-child').after('<th>Poker Status</th>');
  211. $('#tLT > tbody > tr').each(function(){
  212. if (typeof $('td:nth-child(2) > a', this).attr('href') !== 'undefined'){
  213. var userid = $('td:nth-child(2) > a', this).attr('href').split("=")[1]
  214. $(this).append(`<td><div id="pokerstatus_${userid}"><i>Loading...</i></div></td>`);
  215. getStatus(userid);
  216. }
  217. })
  218. break;
  219. case 'topic':
  220. $('body > form > dl > dd > div.bts.ppc > div.desc.p3.pud').each(function() {
  221. $(this).append(`<div id="pokerstatus_${$(this).find('A[href^="pm.php"]').attr('href').split('=')[2]}"><a href="javascript:void(0);">Poker Status:</a> Loading...</div>`);
  222. });
  223.  
  224. $('BODY form DL DT A[href^="user.php"]').each(function() {
  225. userid = $(this).attr('href').split('=')[1];
  226. if (checked.indexOf(userid) == -1) {
  227. checked.push(userid);
  228. getStatus(userid);
  229. }
  230. });
  231. break;
  232. }
  233.  
  234.  
  235. }
  236. function createBox(){
  237. $('BODY').append('<fieldset style="padding:5px;position:absolute;z-index:100;background-color:#D4E0FF;" id="psFieldset"><legend style="background-color:#D4E0FF;border:1px solid #B0B0B0;"><span></span><img style="vertical-align:inherit;margin-left:2px;cursor:pointer;" src="images/x.gif" /></legend><div class="main"></div></fieldset>');
  238. $('#psFieldset LEGEND IMG').click(function(){$('#psFieldset').hide();});
  239. $('#psFieldset').hide();
  240. }
  241. createBox();
  242. parsePage();
  243. getSticky();