hwm_pz_scaner

Поик открытых тем

当前为 2021-04-12 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name hwm_pz_scaner
  3. // @namespace https://greasyfork.org/ru/users/170936
  4. // @description Поик открытых тем
  5. // @author Kleshnerukij
  6. // @version 1.0.1
  7. // @include https://www.heroeswm.ru/forum_thread.php?id=25*
  8. // @include https://www.lordswm.com/forum_thread.php?id=25*
  9. // @include http://178.248.235.15/forum_thread.php?id=25*
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. var num_page = "10";
  14. var cur_page = "0";
  15. var res = "";
  16. var url = "";
  17. var page = "";
  18. var full_res = "";
  19. var start_temp = '';
  20. var end_temp = '';
  21. var xhr = new XMLHttpRequest();
  22. var search_opth = /<tr( class='second'|)><td style=\'padding-top:6px;padding-bottom:6px;\'><a href=\'forum_messages\.php\?tid=(\d+)\'>(.*?)<\/a><\/td><td>.*?<\/td><td>\d+<\/td><td><a.*?href=\'pl_info\.php\?id=(\d+)\'>(.*?)<\/a>/igm;
  23. var search_tdata = /tid=(\d+)\'>(.*?)<.*?id=(\d+)\'>(.*?)</i;
  24.  
  25. var c_head_table = document.getElementsByClassName('table3 forum c_darker td_bordered')[0];
  26. var c_head_tr = document.getElementsByClassName('table3 forum c_darker td_bordered')[0].getElementsByTagName('tr')[0];
  27. var c_head = document.getElementsByClassName('table3 forum c_darker td_bordered')[0].getElementsByTagName('th')[0];
  28.  
  29. var c_div_star = document.createElement('div');
  30. c_div_star.style.display = "none";
  31. var c_span_star = document.createElement('span');
  32. c_span_star.innerHTML = " &#10031;";
  33. c_span_star.onclick = function(){c_div_star.style.display = "inline-block";c_div_star.style.display = "inline-block";c_span_star.style.display = "none";};
  34. c_span_star.style.cursor = "pointer";
  35.  
  36. var c_span_from = document.createElement('span');
  37. c_span_from.innerHTML = " с ";
  38. var c_span_before = document.createElement('span');
  39. c_span_before.innerHTML = " по ";
  40. var c_span_nbsp = document.createElement('span');
  41. c_span_nbsp.innerHTML = " ";
  42. var c_span_nbsp2 = document.createElement('span');
  43. c_span_nbsp2.innerHTML = " ";
  44.  
  45. var c_from = document.createElement('input');
  46. c_from.id = "c_from";
  47. c_from.style.width = "50px";
  48. var c_before = document.createElement('input');
  49. c_before.id = "c_before";
  50. c_before.style.width = "50px";
  51.  
  52. var c_button = document.createElement('input');
  53. c_button.type = "button";
  54. c_button.value = "Искать";
  55. c_button.onclick = start_search;
  56.  
  57. var c_status = document.createElement('span');
  58. c_status.id = "res_search";
  59. c_status.innerHTML = "";
  60.  
  61. var c_res_tr = document.createElement('tr');
  62. var c_res_td = document.createElement('td');
  63.  
  64. c_div_star.appendChild(c_span_from);
  65. c_div_star.appendChild(c_from);
  66. c_div_star.appendChild(c_span_before);
  67. c_div_star.appendChild(c_before);
  68. c_div_star.appendChild(c_span_nbsp);
  69. c_div_star.appendChild(c_button);
  70. c_div_star.appendChild(c_span_nbsp2);
  71. c_div_star.appendChild(c_status);
  72.  
  73. c_head.appendChild(c_span_star);
  74. c_head.appendChild(c_div_star);
  75.  
  76.  
  77. var res_search = document.getElementById('res_search');
  78.  
  79. function start_search() {
  80. start_temp = document.getElementById('c_from').value;
  81. end_temp = document.getElementById('c_before').value;
  82. getPage((start_temp-1), end_temp);
  83. }
  84.  
  85. function getPage(start_pg, end_pg) {
  86. url = "https://www.heroeswm.ru/forum_thread.php?id=25&page="+start_pg;
  87.  
  88. xhr.open('GET', url);
  89. xhr.send();
  90. xhr.onload = function() {
  91. if (xhr.status != 200) { // анализируем HTTP-статус ответа, если статус не 200, то произошла ошибка
  92.  
  93. } else {
  94. page = xhr.responseText;
  95. var page = page.match(search_opth);
  96.  
  97. if (page != undefined) {
  98. page.forEach(GetOpenTheme);
  99. }
  100. res_search.innerHTML = "Обработано: "+(start_pg+1)+"/"+end_pg;
  101. start_pg++;
  102.  
  103. if (start_pg < end_pg) {
  104. getPage(start_pg, end_pg);
  105. } else {
  106.  
  107. let del_end = true;
  108. while (del_end) {
  109. if (c_head_table.getElementsByTagName("tr")[1] !== undefined) {
  110. var del_tr = c_head_table.getElementsByTagName("tr")[1];
  111. del_tr.remove();
  112. } else {
  113. del_end = false;
  114. }
  115. }
  116. c_head_table.innerHTML += full_res;
  117. }
  118. }
  119. }
  120. }
  121.  
  122. function GetOpenTheme(item, index) {
  123. var res = item.match(search_tdata);
  124. full_res += '<tr><td><a href="https://www.heroeswm.ru/forum_messages.php?tid='+res[1]+'">'+res[2]+'</a></td><td colspan="4"><a href="https://www.heroeswm.ru/pl_info.php?id='+res[3]+'">'+res[4]+'</a></td></tr>';
  125. }
  126.  
  127. })();