[Pasek] Rozszerzony podgląd plemienia

DeletedUser186240

Guest
Potwierdzam, nie działa chyba przez to że jest nowy przegląd członków?
 

Kichiyaki

Miecznik
Wynik reakcji
97
1. Wchodzicie na stronę:
Kod:
https://media.innogames.com/com_DS_PL/skrypty/Rozszerzony_podglad_plemienia.js
2. Kopiujecie całą zawartość strony (od javascript: do końca).
3. Zamiast wklejać link do paska skrótów, wklejacie to co skopiowaliście.
4. Działa.
 

PabloCanaletto

Topornik
Wynik reakcji
264
Potwierdzam, nie działa chyba przez to że jest nowy przegląd członków?
Prawda. Naprawiłem, chociaż nie moje. Trzeba zmienić "1" na "2" w dwóch miejscach. Łapcie.
Kod:
javascript:
class UrlBuilder
{
    constructor(template)
    {
        this.template = template;
    }

    build(args)
    {
        let result = this.template;
        let keys = Object.keys(args);

        keys.forEach((e) => {
            result = result.replace("{{" + e + "}}", args[e]);
        });

        return result;
    }
}

class App
{
    constructor(config)
    {
        this.config = config;
    }

    load()
    {
        // Set local members
        this.iterator = 0;
        this.members = $('#content_value table').eq(2).find('tr').splice(1);
        this.interval = setInterval($.proxy(this.update, this), 600);

        // Add headers
        let header = $('#content_value table').eq(2).find('tr').eq(0);
        header.find('th:last').after('<th class="nowrap"><a href="#">Rekord farmy</a></th> <th class="nowrap"><a href="#">Rekord zbieractwa</a></th> <th class="nowrap"><a href="#">Odznaczenia</a></th>');
    }

    unload()
    {
        if (this.interval != undefined && this.interval != null)
        {
            clearInterval(this.interval);
        }
    }

    update()
    {
        if (this.iterator >= this.members.length)
        {
            this.unload();
            return;
        }

        this.getData(this.members[this.iterator++]);
    }

    getData(input)
    {
        let player = $(input).find('td:first').text().trim().split('(')[0].trim();
        let url = new UrlBuilder('https://{{world}}.plemiona.pl/game.php?screen=ranking&mode=in_a_day&type={{type}}&name={{name}}');

        // Ask server for data
        // Looted resources
        this.askServer(url.build({ world: game_data.world, type: 'loot_res', name: player }), function (response) {
            response = $(response);
            
            let score = response.find('#in_a_day_ranking_table tr').eq(1).find('td').eq(3).text();
            $(input).find('td:last').after('<td class="lit-item"><b>' + (score.length <= 0 ? "-" : score) + '</b></td>');

            // Scavenge
            app.askServer(url.build({ world: game_data.world, type: 'scavenge', name: player }), function (response) {
                response = $(response);
                
                let score = response.find('#in_a_day_ranking_table tr').eq(1).find('td').eq(3).text();
                $(input).find('td:last').after('<td class="lit-item"><b>' + (score.length <= 0 ? "-" : score) + '</b></td>');
    
                // Awards
                url = new UrlBuilder('https://{{world}}.plemiona.pl/game.php?screen=ranking&mode=awards&name={{name}}')
                app.askServer(url.build({ world: game_data.world, name: player }), function (response) {
                    response = $(response);
                    
                    let result = response.find('#award_ranking_table tr.lit');
                    if (result.size() > 0)
                    {
                        $(input).find('td:last').after('<td class="lit-item">' + result.eq(0).find('td:last').html().trim() + '</td>');
                        return;
                    }
    
                    $(input).find('td:last').after('<td class="lit-item"><i>Ukryto odznaczenia</i></td>');
                });
            });
        });
    }

    askServer(url, callback)
    {
        $.ajax({
            url: url,
            dataType: 'html',
            success: function (d) {
                callback(d);
            }
        });
    }
}

let app = new App({});
app.load();
 

SIWY-PB

Pikinier
Wynik reakcji
49
Wersja dostosowana do aktualnego przeglądu profilu plemienia.
Kod:
javascript:
class UrlBuilder
{
constructor(template)
{
this.template = template;
}

build(args)
{
let result = this.template;
let keys = Object.keys(args);

keys.forEach((e) => {
result = result.replace("{{" + e + "}}", args[e]);
});

return result;
}
}

class App
{
constructor(config)
{
this.config = config;
}

load()
{
// Set local members
this.iterator = 0;
this.members = $('#content_value table').eq(3).find('tr').splice(1);
this.interval = setInterval($.proxy(this.update, this), 600);

// Add headers
let header = $('#content_value table').eq(3).find('tr').eq(0);
header.find('th:last').after('<th class="nowrap"><a href="#">Rekord farmy</a></th> <th class="nowrap"><a href="#">Rekord zbieractwa</a></th> <th class="nowrap"><a href="#">Odznaczenia</a></th>');
}

unload()
{
if (this.interval != undefined && this.interval != null)
{
clearInterval(this.interval);
}
}

update()
{
if (this.iterator >= this.members.length)
{
this.unload();
return;
}

this.getData(this.members[this.iterator++]);
}

getData(input)
{
let player = $(input).find('td:first').text().trim().split('(')[0].trim();
let url = new UrlBuilder('https://{{world}}.plemiona.pl/game.php?screen=ranking&mode=in_a_day&type={{type}}&name={{name}}');

// Ask server for data
// Looted resources
this.askServer(url.build({ world: game_data.world, type: 'loot_res', name: player }), function (response) {
response = $(response);

let score = response.find('#in_a_day_ranking_table tr').eq(1).find('td').eq(3).text();
$(input).find('td:last').after('<td class="lit-item"><b>' + (score.length <= 0 ? "-" : score) + '</b></td>');

// Scavenge
app.askServer(url.build({ world: game_data.world, type: 'scavenge', name: player }), function (response) {
response = $(response);

let score = response.find('#in_a_day_ranking_table tr').eq(1).find('td').eq(3).text();
$(input).find('td:last').after('<td class="lit-item"><b>' + (score.length <= 0 ? "-" : score) + '</b></td>');

// Awards
url = new UrlBuilder('https://{{world}}.plemiona.pl/game.php?screen=ranking&mode=awards&name={{name}}')
app.askServer(url.build({ world: game_data.world, name: player }), function (response) {
response = $(response);

let result = response.find('#award_ranking_table tr.lit');
if (result.size() > 0)
{
$(input).find('td:last').after('<td class="lit-item">' + result.eq(0).find('td:last').html().trim() + '</td>');
return;
}

$(input).find('td:last').after('<td class="lit-item"><i>Ukryto odznaczenia</i></td>');
});
});
});
}

askServer(url, callback)
{
$.ajax({
url: url,
dataType: 'html',
success: function (d) {
callback(d);
}
});
}
}

let app = new App({});
app.load();
 

DeletedUser194469

Guest
Chcialbym wrzucic do tabeli tez RA, RW i RO. Czypomoga bardziej doswaidczenie. Zrobilem takie cos ale srednio dziala:

// RA
url = new UrlBuilder('https://{{world}}.plemiona.pl/game.php?screen=ranking&mode=kill_player&type=att&name={{name}}')
app.askServer(url.build({ world: game_data.world, name: player }), function (response) {
response = $(response);

let result = response.find('#content_value tr.lit');
$(input).find('td:last').after('<td class="lit-item">' + result.eq(0).find('td:last').html().trim() + '</td>');
 

Gordon Wielki

Chłop
Wynik reakcji
0
Na 161 w przeglądzie członków plemienia nie działa. Aby zadziałał to trzeba:
Wejść na foum plemienia i kliknąć "Nowy Wątek" -> wstawić imiona graczy oznaczone bbcode, których rekordy chcemy poznać, do tabeli z bbcoded -> Kliknąć "Pogląd" wtedy na tak wygenerowanej tablicy - działa. W zwykłym podglądzie - nie działa.

Uwaga podgląd przy edycji już istniejącego postu - nie działa, za każdym razem trzeba używać podglądu przy tworzeniu nowego wątku
 

Snooking

Chłop
Wynik reakcji
3
Nie ma sprawy ;)

javascript:
class UrlBuilder
{
constructor(template)
{
this.template = template;
}
build(args)
{
let result = this.template;
let keys = Object.keys(args);
keys.forEach((e) => {
result = result.replace("{{" + e + "}}", args[e]);
});
return result;
}
}
class App
{
constructor(config)
{
this.config = config;
}
load()
{
// Set local members
this.iterator = 0;
this.members = $('#content_value table').eq(2).find('tr').splice(1);
this.interval = setInterval($.proxy(this.update, this), 600);
// Add headers
let header = $('#content_value table').eq(2).find('tr').eq(0);
header.find('th:last').after('<th class="nowrap"><a href="#">RA</a></th><th class="nowrap"><a href="#">RO</a></th><th class="nowrap"><a href="#">RW</a></th><th class="nowrap"><a href="#">Rekord farmy</a></th> <th class="nowrap"><a href="#">Rekord zbieractwa</a></th><th class="nowrap"><a href="#">Rekord splądrowanych</a></th>');
}
unload()
{
if (this.interval != undefined && this.interval != null)
{
clearInterval(this.interval);
}
}
update()
{
if (this.iterator >= this.members.length)
{
this.unload();
return;
}
this.getData(this.members[this.iterator++]);
}
getData(input)
{
let player = $(input).find('td:first').text().trim().split('(')[0].trim();
let url = new UrlBuilder('https://{{world}}.plemiona.pl/game.php?screen=ranking&mode=kill_player&name={{name}}');
// Ask server for data
// RA
this.askServer(url.build({ world: game_data.world, name: player }), function (response) {
response = $(response);

let score = response.find('#kill_player_ranking_table').next().find('tr').eq(1).find('td').eq(3).text();
$(input).find('td:last').after('<td class="lit-item"><b>' + (score.length <= 0 ? "-" : score) + '</b></td>');
// RO
url = new UrlBuilder('https://{{world}}.plemiona.pl/game.php?screen=ranking&mode=kill_player&name={{name}}&type=def');
app.askServer(url.build({ world: game_data.world, name: player }), function (response) {
response = $(response);

let score = response.find('#kill_player_ranking_table').next().find('tr').eq(1).find('td').eq(3).text();
$(input).find('td:last').after('<td class="lit-item"><b>' + (score.length <= 0 ? "-" : score) + '</b></td>');

url = new UrlBuilder('https://{{world}}.plemiona.pl/game.php?screen=ranking&mode=kill_player&name={{name}}&type=support');
app.askServer(url.build({ world: game_data.world, name: player }), function (response) {
response = $(response);

let score = response.find('#kill_player_ranking_table').next().find('tr').eq(1).find('td').eq(3).text();
$(input).find('td:last').after('<td class="lit-item"><b>' + (score.length <= 0 ? "-" : score) + '</b></td>');

//Daily
url = new UrlBuilder('https://{{world}}.plemiona.pl/game.php?screen=ranking&mode=in_a_day&type={{type}}&name={{name}}');
// Looted resources
app.askServer(url.build({ world: game_data.world, type: 'loot_res', name: player }), function (response) {
response = $(response);

let score = response.find('#in_a_day_ranking_table tr').eq(1).find('td').eq(3).text();
$(input).find('td:last').after('<td class="lit-item"><b>' + (score.length <= 0 ? "-" : score) + '</b></td>');

// Scavenge
app.askServer(url.build({ world: game_data.world, type: 'scavenge', name: player }), function (response) {
response = $(response);

let score = response.find('#in_a_day_ranking_table tr').eq(1).find('td').eq(3).text();
$(input).find('td:last').after('<td class="lit-item"><b>' + (score.length <= 0 ? "-" : score) + '</b></td>');
// Loot_vil
app.askServer(url.build({ world: game_data.world, type: 'loot_vil', name: player }), function (response) {
response = $(response);

let score = response.find('#in_a_day_ranking_table tr').eq(1).find('td').eq(3).text();
$(input).find('td:last').after('<td class="lit-item"><b>' + (score.length <= 0 ? "-" : score) + '</b></td>');
});
});
});
});
});
});

}
askServer(url, callback)
{
$.ajax({
url: url,
dataType: 'html',
success: function (d) {
callback(d);
}
});
}
}
let app = new App({});
app.load();
 
Do góry