function showEzFeedMenub() { // document.getElementById("context-ezfeedb").hidden = gContextMenu.onImage; } function initEzFeedb() { //this.strings = document.getElementById("ezfeedb-strings"); document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", showEzFeedMenub, false); } function ezFeedParseb(e) { var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] .getService(Components.interfaces.nsIPromptService); var vrs_getWin = document.commandDispatcher.focusedWindow; var cur_fic = vrs_getWin.location.href; /*if(cur_fic.indexOf("astroempires.com") == -1) { promptService.alert(window, "erreur", "Vous n'etes pas sur astro empires"); return; }*/ var site_url = "beta.gazier.net"; //var site_url = "localhost"; var page_to_load = "", msg_err = ""; var source = vrs_getWin.document.getElementsByTagName("body")[0].innerHTML; source = source.replace(/\r+|\n+/g,''); source = source.replace(/
/gi, "§"); source = source.replace(/
/gi, "§"); source = source.replace(/
/gi, "§"); var reg, ar; try{ if(cur_fic.indexOf("/base.") != -1) { var location = null; var astro_type = null; var terrain = null; var base_name = null; var carac_name = new Array("construction", "production", "research", "economy"); var carac_value = new Array(); var owner_name = null; var owner_guild = null; var owner_id = null; var occupied_by = null; var structure_names = new Array(); var structure_values = new Array(); var defense_names = new Array(); var defense_values = new Array(); var ret = ""; // location reg = /map\.aspx\?loc=(B[0-9]{2}:[0-9]{2}:[0-9]{2}:[0-9]{2})/i; ar = reg.exec(source); if(ar) location = ar[1]; ret += "location = "+location+";\n"; if(location == null) { promptService.alert(window, "erreur", "Impossible de recuperer les données de la page :\n-location introuvable"); return; } // astro type + terrain reg = /Astro Type\: \ \;<\/b>([a-z]*)§/i; ar = reg.exec(source); if(ar) astro_type = ar[1]; ret += "astro_type = "+astro_type+";\n"; reg = /Terrain\: \ \;<\/b>([a-z]*)§/i; ar = reg.exec(source); if(ar) terrain = ar[1]; ret += "terrain = "+terrain+";\n"; if(terrain == null || astro_type == null) { promptService.alert(window, "erreur", "Impossible de recuperer les données de la page :\n-type de planete introuvable"); return; } // base_name reg = /(.)<\/font>([^§]*)§/i; ar = reg.exec(source); if(ar) base_name = ar[1]+ar[2]; ret += "base_name = "+base_name+";\n"; if(base_name == null) { promptService.alert(window, "erreur", "Impossible de recuperer les données de la page :\n-nom de la base trop long"); return; } else if(base_name && base_name.length > 50) { promptService.alert(window, "erreur", "Impossible de recuperer les données de la page :\n-nom de la base trop long (> 50 caracteres), probablement erreur"); return; } // caracteristiques for(var i=0; i < carac_name.length; i++) { reg = new RegExp(''+carac_name[i]+'<\/td>([0-9]*)<\/td>', "i"); ar = reg.exec(source); if(ar) carac_value.push( ar[1]); else carac_value.push('0'); ret += carac_name[i]+" = "+carac_value[i]+";\n"; } //owner reg = /Base Owner<\/td>(\[[^\]]*\]|)\s*([^<]*)<\/a>/i; ar = reg.exec(source); if(ar){ owner_id = ar[1]; ret += "owner_id = "+owner_id+";\n"; owner_guild = ar[2]; ret += "owner_guild = "+owner_guild+";\n"; owner_name = ar[3]; ret += "owner_name = "+owner_name+";\n"; } else { promptService.alert(window, "erreur", "Impossible de recuperer les données de la page :\n-owner introuvable"); return; } //occupant reg = /Occupied by<\/td>(\[[^\]]*\]|)\s*([^<]*)<\/a>/i; ar = reg.exec(source); if(ar){ occupier_id = ar[1]; ret += "occupier_id = "+occupier_id+";\n"; occupier_guild = ar[2]; ret += "occupier_guild = "+occupier_guild+";\n"; occupier_name = ar[3]; ret += "occupier_name = "+occupier_name+";\n"; } // suppression de toute la partie avant les structures reg = /Structures<\/th>Level<\/th><\/th>/; ar = reg.exec(source); if(ar && ar.index > 0) { source = source.substring(ar.index); reg = /(.*)<\/td>(.*)<\/td><\/td>(.*)<\/td>(.*)<\/td><\/tr>/; ar = reg.exec(source); if(ar){ structure_names = ar[1].split("§"); structure_values = ar[2].split("§"); defense_names = ar[3].split("§"); defense_values = ar[4].split("§"); for(i=0; i < defense_values.length; i++) // on nettoie les niveaux des défenses { def = defense_values[i]; reg = /([0-9.,]*)\s\/\s([0-9.,]*)/; var ar2 = reg.exec(def); if(ar2) defense_values[i] = Math.ceil(parseInt(ar2[2])/5); } for(i=0; i < structure_names.length; i++) if(structure_names[i] != "") ret += "bat. : "+structure_names[i]+" = "+structure_values[i]+";\n"; for(i=0; i < defense_names.length; i++) if(defense_names[i] != "") ret += "def. : "+defense_names[i]+" = "+defense_values[i]+";\n"; } } page_to_load = "http://"+site_url+"/update_base.php?datas="+encodeURIComponent(ret); } // ************************************************************************************************************************** // ************************************************************************************************************************** // ************************************************************************************************************************** else if(cur_fic.indexOf("/combat.") != -1) { var list_table = source.split("Attack Force<\/th><\/tr>Player<\/td>/i; ar = reg.exec(tmp); if(ar) { attaquant = ar[1]; p1 = ar["index"]; } reg = /Defensive Force<\/th><\/tr>Player<\/td>/i; ar = reg.exec(tmp); if(ar) { defenseur = ar[1]; p2 = ar["index"]; } reg = /Command Centers<\/td>([0-9]+)<\/td><\/tr>/i; ar = reg.exec(tmp); if(ar) { if(ar["index"] < p2) att_cc = ar[1]; else def_cc = ar[1]; } if(attaquant > 0 && defenseur > 0) { page_to_load = "http://"+site_url+"/update_level.php?att="+attaquant+"&def="+defenseur+"&att_cc="+att_cc+"&def_cc="+def_cc; for(var player=1; player <= 2; player++) { var list_unit = new Array(); tmp = list_table[player+1]; var tmp2 = tmp.split("");; for(var i=1; i < tmp2.length; i++) { reg = /([A-Za-z ]+)<\/td>([0-9.]+)<\/th>\?<\/th>([0-9.]+)<\/td>([0-9.]+)<\/td>([0-9.]+)<\/td>/i; ar = reg.exec(tmp2[i]); if(ar) list_unit.push(ar[1]+":"+ar[2]+":"+ar[3]+":"+ar[4]+":"+ar[5]); } if(player == 1) page_to_load += "&att_unit"; else page_to_load += "&def_unit"; page_to_load += "="+encodeURIComponent(list_unit.join(";")); } } else msg_err = "\nparticipant au combat non trouvé :\nattaquant : "+attaquant+"\ndefenseur : "+defenseur+"\n\n"+tmp; } else msg_err = "\nle nombre de tableau dans la page des combats ne correspond pas"; } } catch(err){promptService.alert(window, "erreur", err);} if(page_to_load != "") { if(vrs_getWin.document.getElementById("update_atlas")) vrs_getWin.document.getElementById("update_atlas").src = page_to_load; else vrs_getWin.document.getElementsByTagName("body")[0].innerHTML += "