11484 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Dans un premier temps, et il me paraît très assez important de le noter, je n'ai aucune base en informatique. Je code assez régulièrement sur un logiciel de programmation de données (SAS) mais c'est sensiblement différent et pas vraiment de l'informatique. J'ai pu récupérer, auprès d'un ami, un script qui fait plus ou moins ce que je cherche (mais comme il le dit, c'est du bricolage) et j'aimerais l'améliorer sur deux ou trois points, d'où ma venue ici.

Le script :

// ==UserScript==
// @name ame_en_tab.hs
// @namespace nimporte quoi
// @description hache une âme en sections fines
// @include  http://www.hordes.fr/#ghost*
 
// @include  https://www.hordes.fr/#ghost*
 
// @include  www.hordes.fr/#ghost*
 
// @include  www.hordes.fr/#ghost*
 
// @grant none
// @version 1
// ==/UserScript==
 
setTimeout(function () {
 var picto;
 var count;
 var ret = [
 ];
 var ind = [
 ];
 //
 var nodes = document.querySelectorAll('div.tid_goal.tid_bg3.tid_tip');
 for (var i = 0, max = nodes.length; i < max; i++)
 {
 picto = nodes[i].querySelector('img.tid_icon').src.slice(54);
 picto = picto.replace('.gif', '');
 count = parseInt(nodes[i].querySelector('div.tid_count > span:first-child').textContent);
 ret[picto] = count;
 }
 ind[0] = ret['r_heroac'];
 ind[1] = ret['r_alcool'];
 ind[2] = ret['r_homeup'];
 ind[3] = ret['r_cwater'];
 ind[4] = ret['r_refine'];
 ind[5] = ret['r_solban'];
 ind[6] = ret['r_ban'];
 ind[7] = ret['r_wound'];
 ind[8] = ret['r_cookr'];
 ind[9] = ret['r_animal'];
 ind[10] = ret['r_cmplst'];
 ind[11] = ret['r_camp'];
 ind[12] = ret['r_cannib'];
 ind[13] = ret['r_watgun'];
 ind[14] = ret['r_chstxl'];
 ind[15] = ret['r_buildr'];
 ind[16] = ret['r_nodrug'];
 ind[17] = ret['r_collec'];
 ind[18] = ret['r_wrestl'];
 ind[19] = ret['r_ebuild'];
 ind[20] = ret['r_cooked'];
 ind[21] = ret['r_digger'];
 ind[22] = ret['r_deco'];
 ind[23] = ret['r_surgrp'];
 ind[24] = ret['r_drug'];
 ind[25] = ret['r_cobaye'];
 ind[26] = ret['r_ruine'];
 ind[27] = ret['r_explor'];
 ind[28] = ret['r_explo2'];
 ind[29] = ret['r_share'];
 ind[30] = ret['r_guide'];
 ind[31] = ret['r_drgmkr'];
 ind[32] = ret['r_theft'];
 ind[33] = ret['r_broken'];
 ind[34] = ret['r_maso'];
 ind[35] = ret['r_bgum'];
 ind[36] = ret['r_ebcstl'];
 ind[37] = ret['r_ebpmv'];
 ind[38] = ret['r_ebgros'];
 ind[39] = ret['r_ebcrow'];
 ind[40] = ret['r_forum'];
 ind[41] = ret['r_jtamer'];
 ind[42] = ret['r_jrangr'];
 ind[43] = ret['r_jermit'];
 ind[44] = ret['r_jcolle'];
 ind[45] = ret['r_jguard'];
 ind[46] = ret['r_jtech'];
 ind[47] = ret['r_dcity'];
 ind[48] = ret['r_dwater'];
 ind[49] = ret['r_dinfec'];
 ind[50] = ret['r_dnucl'];
 ind[51] = ret['r_ddrug'];
 ind[52] = ret['r_surlst'];
 ind[53] = ret['r_suhard'];
 ind[54] = ret['r_mystic'];
 ind[55] = ret['r_doutsd'];
 ind[56] = ret['r_door'];
 ind[57] = ret['r_dhang'];
 ind[58] = ret['r_plundr'];
 ind[59] = ret['r_wondrs'];
 ind[60] = ret['r_repair'];
 ind[61] = ret['r_brep'];
 ind[62] = ret['r_rp'];
 ind[63] = ret['r_cgarb'];
 ind[64] = ret['r_batgun'];
 ind[65] = ret['r_hbuild'];
 ind[66] = ret['r_tronco'];
 ind[67] = ret['r_ptame'];
 ind[68] = ret['r_guard'];
 ind[69] = ret['r_winbas'];
 ind[70] = ret['r_wintop'];
 ind[71] = ret['r_winthi'];
 ind[72] = ret['r_killz'];
 //
 for (var i = 0; i < 73; i++)
 {
 if (typeof ind[i] === 'undefined')
 {
 ind[i] = 0;
 }
 }
 //
 
 var table = document.createElement('table');
 table.id = 'tableau';
 table.title = 'que magnifico!';
 //table.style = "float:left";
 var parent = document.getElementsByClassName('footSearch') [0];
 var premier_fils = parent.firstChild;
 parent.insertBefore(table, premier_fils);
 for (var i = 0; i < 73; i++)
 {
 var cadre = document.createElement('tr');
 cadre.id = i;
 table.appendChild(cadre);
 document.getElementById(i).appendChild(document.createTextNode(ind[i] + '\n'));
 }
}, 1000);


Avant d'utiliser ce script, il est nécessaire de créer un compte ici : http://www.hordes.fr/ (ne demande qu'un pseudo, un mail et un mot de passe, aucune vérification n'est nécessaire). Chaque joueur possède une fiche (âme) dont on retrouve sur la gauche un tableau rempli de pictogramme avec une valeur en dessous de chacune. L'idée du script est ici de récupérer, parmi tous les pictogrammes qu'il est possible d'avoir, la valeur de celui - ci pour un joueur en question.
Pour ce joueur par exemple : http://www.hordes.fr/#ghost/city?go=ghost/user?uid=414048;sk=14df0 , le script renvoie à l'ouverture de la page (en bas) le rendu suivant : http://image.noelshack.com/fichiers/2016/21/1464359994-script-rendu.png.

En résumé, en se rendant sur la fiche d'un joueur, le script nous donne la valeur de tous les pictogrammes que l'on peut avoir pour le joueur en question.

Dans ce script, je souhaiterais améliorer plusieurs choses :

Le fait de devoir se rendre sur la fiche d'un joueur est problématique quand j'ai besoin d'obtenir ces statistiques pour une trentaine de joueurs ou plus. Il faut se rendre sur chacune et c/c à chaque fois. Y a t-il un moyen de sortir tous les chiffres dont j'ai besoin en déclarant par exemple le lien vers la fiche de chaque joueur en amont et en retrouver les résultats dans un endroit spécifique ?
Je n'ai pas besoin de toutes les statistiques. Chaque fois que j'utilise ce script, je n'ai besoin que de la valeur de 2 ou 3 pictogrammes. Y a t-il aussi un moyen de filtrer les valeurs i de ma boucle for ?
C'est à peu près tout ce qui m'intéresse pour le moment. Je n'ai vraiment aucune base et c'est assez difficile de le modifier selon mes envies.

A dispo pour toutes questions,

Eliam.[/i][/i][/i][/i][/i]