04.06.2014 09:24
 0просмотров 31 0

Анализ протоколов. Защиты, скрипт.

Выложить на юзерсскриптс возможности нет, поэтому ограничусь блогом.
Скрипт делает следующее. При заходе в протокол клана и указании страницы протокола -1, он собирает информацию по защитам с первых 5-ти страниц протокола.

Вывод происходит в следующем виде::

03-06-14 20:55;Wolf Dale-З1; bes1976 [17], grec [18], адская_тьма [14] vs #782: проиграно 6%
03-06-14 20:55;Wolf Dale-З1; atomUA [15], MURHIK [16], AKVANAVT [15] vs #782: получено героями 4,600 золота
03-06-14 20:55;Wolf Dale-З1; вельзеул113 [13], Mak_1805 [13], janjak [15]: получено героями 4,100 золота
03-06-14 20:55;Wolf Dale-З1; DNEPROVEC [16], STRONGMAN [15], blok18 [16]: получено героями 4,700 золота
03-06-14 20:55;Wolf Dale-З1; паняша [16], fisher_09 [16], -тигрица-- [16]: получено героями 4,800 золота
03-06-14 20:55;Wolf Dale-З1; димондимон [17], Bizonholod [17], Эллада_09 [17]: получено героями 5,100 золота
03-06-14 20:55;Wolf Dale-З1; DR2D [18], Ордан [18], XxBlooDxX [16]: получено героями 5,200 золота
03-06-14 18:45;Wolf Dale-З2; DR2D [18], slav007 [15]: получено героями 3,300 золота

Собственно, сам скрипт:

// ==UserScript==
// @name hvm_klan_def_protokol
// @author FireSwarm
// @version 1.0
// @description hvm_klan_def_protokol
// @unwrap
// @run-at document-end
// @include http://www.heroeswm.ru/*
// @match http://www.heroeswm.ru/*
// @grant       none
// ==/UserScript==

(function(){
    
    var count = 5;
    
    if (window.location.toString().indexOf("http://www.heroeswm.ru/clan_log.php?id=") > -1
       && window.location.toString().indexOf("&page=-1") > -1) {
        
        var klanlog = window.location.toString().substring(0, window.location.toString().indexOf("=-1") + 1);
        var messages = document.querySelectorAll("td");
        
        for (i = 1; i < count; i++) {
            var request=new XMLHttpRequest();
    
            request.open("GET", klanlog, false);
            request.overrideMimeType("text/plain;charset=windows-1251");
            request.send(null);

            var t = request.responseText.substring(request.responseText.indexOf('&nbsp;&nbsp;'));
            t = t.substring(0, t.indexOf("</td></tr>"))
            
            messages[messages.length - 1].innerHTML = messages[messages.length - 1].innerHTML + t;
        }
        
        var t = messages[messages.length - 1].innerHTML.split("&nbsp;&nbsp;");
        var s = "";
        
        for (i = 1; i < t.length; i++) {
            if (t.indexOf("Нападение Сурвилургов") > 0) {
                
                var link = t.substring(t.indexOf("clan_mwlog.php?key"));
                link = link.substring(0, link.indexOf('история') - 2);
                link = link.replace("amp;", "");
                
                var request=new XMLHttpRequest();
                request.open("GET", link, false);
                request.overrideMimeType("text/plain;charset=windows-1251");
                request.send(null);
                
                var result = request.responseText;
                result = result.substring(result.indexOf("1)&nbsp;&nbsp;&nbsp;"))

                var lt = result.split(")&nbsp;&nbsp;&nbsp;(");
                
                for (j = 1; j < lt.length; j++) {
                    lt[j] = lt[j].substring(lt[j].indexOf("бой") + 8);
                    lt[j] = lt[j].substring(0, lt[j].indexOf("<BR>"));
                    
                    s = s + t.substring(0, t.indexOf(" с предприятием")).replace(": Нападение Сурвилургов на ", ";") + ";";
                    s = s + lt[j] + "<br>";
                }
            }
        }
        
        messages[messages.length - 1].innerHTML = s;
    }
    
})();

Возможность комментировать доступна после регистрации