hwm_pz_scaner

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

目前為 2021-04-12 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name hwm_pz_scaner
// @namespace https://greasyfork.org/ru/users/170936
// @description Поик открытых тем
// @author Kleshnerukij
// @version 1.0.0
// @include https://www.heroeswm.ru/forum_thread.php?id=25*
// @include https://www.lordswm.com/forum_thread.php?id=25*
// @include http://178.248.235.15/forum_thread.php?id=25*
// ==/UserScript==

(function() {
    var num_page = "10";
    var cur_page = "0";
    var res = "";
    var url = "";
    var page = "";
    var full_res = "";
    var start_temp = '';
    var end_temp = '';
    var xhr = new XMLHttpRequest();
    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;
    var search_tdata = /tid=(\d+)\'>(.*?)<.*?id=(\d+)\'>(.*?)</i;

    var c_head_table = document.getElementsByClassName('table3 forum c_darker td_bordered')[0];
    var c_head_tr = document.getElementsByClassName('table3 forum c_darker td_bordered')[0].getElementsByTagName('tr')[0];
    var c_head = document.getElementsByClassName('table3 forum c_darker td_bordered')[0].getElementsByTagName('th')[0];

    var c_div_star = document.createElement('div');
    c_div_star.style.display = "none";
    var c_span_star = document.createElement('span');
    c_span_star.innerHTML = " &#10031;";
    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";};
    c_span_star.style.cursor = "pointer";

    var c_span_from = document.createElement('span');
    c_span_from.innerHTML = "  с ";
    var c_span_before = document.createElement('span');
    c_span_before.innerHTML = " по ";
    var c_span_nbsp = document.createElement('span');
    c_span_nbsp.innerHTML = " ";
    var c_span_nbsp2 = document.createElement('span');
    c_span_nbsp2.innerHTML = " ";

    var c_from = document.createElement('input');
    c_from.id = "c_from";
    c_from.style.width = "50px";
    var c_before = document.createElement('input');
    c_before.id = "c_before";
    c_before.style.width = "50px";

    var c_button = document.createElement('input');
    c_button.type = "button";
    c_button.value = "Искать";
    c_button.onclick = start_search;

    var c_status = document.createElement('span');
    c_status.id = "res_search";
    c_status.innerHTML = "";

    var c_res_tr = document.createElement('tr');
    var c_res_td = document.createElement('td');

    c_div_star.appendChild(c_span_from);
    c_div_star.appendChild(c_from);
    c_div_star.appendChild(c_span_before);
    c_div_star.appendChild(c_before);
    c_div_star.appendChild(c_span_nbsp);
    c_div_star.appendChild(c_button);
    c_div_star.appendChild(c_span_nbsp2);
    c_div_star.appendChild(c_status);

    c_head.appendChild(c_span_star);
    c_head.appendChild(c_div_star);


    var res_search = document.getElementById('res_search');

    function start_search() {
        start_temp = document.getElementById('c_from').value;
        end_temp = document.getElementById('c_before').value;
        getPage((start_temp-1), end_temp);
    }

    function getPage(start_pg, end_pg) {
        url = "https://www.heroeswm.ru/forum_thread.php?id=25&page="+start_pg;

        xhr.open('GET', url);
        xhr.send();
        xhr.onload = function() {
            if (xhr.status != 200) { // анализируем HTTP-статус ответа, если статус не 200, то произошла ошибка

            } else {
                page = xhr.responseText;
                var page = page.match(search_opth);

                if (page != undefined) {
                    page.forEach(GetOpenTheme);
                }
                res_search.innerHTML = "Обработано: "+(start_pg+1)+"/"+end_pg;
                start_pg++;

                if (start_pg < end_pg) {
                    getPage(start_pg, end_pg);
                } else {

                    let del_end = true;
                    while (del_end) {
                        if (c_head_table.getElementsByTagName("tr")[1] !== undefined) {
                            var del_tr = c_head_table.getElementsByTagName("tr")[1];
                            del_tr.remove();
                        } else {
                            del_end = false;
                        }
                    }
                    console.log('test');
                    c_head_table.innerHTML += full_res;
                }
            }
        }
    }

    function GetOpenTheme(item, index) {
        var res = item.match(search_tdata);
        full_res += '<tr><td><a href="https://www.heroeswm.ru/forum_messages.php?id='+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>';
    }

})();