// ==UserScript== // @name CheckAttaque // @namespace groslapin_s_136_fr // @description Plug in anty bash // @include *ogame.gameforge.com/game/* // @version 2.4 // @grant none // ==/UserScript== // loading the "page" page from the message page function getMessage(page) { return $.ajax({ type: 'POST', url: '/game/index.php?page=messages', data: 'messageId=-1&tabid=21&action=107&pagination='+page+'&ajax=1', dataType: 'html', context: document.body, global: false, async:false, success: function(data) { return data; } }).responseText; } function coordToUrl(coord) { var coordClean = coord.substring(1, coord.length-1); var coordTab = coordClean.split(":"); return '/game/index.php?page=galaxy&galaxy='+coordTab[0]+'&system='+coordTab[1]+'&position='+coordTab[2] ; } function formateTitle(date,cpt) { var jourFull = date.split(" ")[0]; var heureFull = date.split(" ")[1].split(":"); var heure = heureFull[0]; var minute = heureFull[1]; return heure+'h'+minute+' le '+ jourFull + ' (p '+cpt+')'; } function isAppendedToday(date) { var jourFull = date.split(" ")[0].split("."); var heureFull = date.split(" ")[1].split(":"); var jour = jourFull[0]; var mois = jourFull[1]; var annee= jourFull[2]; var heure = heureFull[0]; var minute = heureFull[1]; var hier = new Date(); hier.setDate(hier.getDate() -1 ); // on veut hier var raid = new Date(); raid.setFullYear( annee ); raid.setMonth ( mois - 1 ); // le Js est entre 0 et 11 et pas 1 et 12 raid.setDate(jour); raid.setHours(heure); raid.setMinutes(minute); //("date : "+date+"\nhier : "+hier +"\nraid : "+ raid); return raid > hier; } // button for checking var btn = document.createElement("a"); btn.innerHTML="Check Raid"; btn.className="menubutton"; btn.href ="javascript:"; // i don't like href="#" it can make the page moving btn.addEventListener('click', function(){ loadInfo() ;}, false); var li=document.createElement("li"); li.appendChild(btn); var barre = document.getElementById("menuTableTools"); barre.appendChild(li); // create and hidden div for result storing and parsing var div = document.createElement("div"); div.id ="verificationAttaque"; div.style.visibility = "hidden" document.body.appendChild(div); var tabCoord = $.parseJSON($.cookie("tabCoord")); if (tabCoord != 'undefined') { display(); } function loadInfo() { // display a loading gif var info = document.createElement("div"); info.className="adviceWrapper"; info.innerHTML='
'; info.id="id_check_attaque"; var link = document.getElementById("links"); var conteneur = document.getElementById('id_check_attaque'); if (typeof(conteneur) == 'undefined' || conteneur == null) { link.appendChild(info); } else { link.replaceChild(info,conteneur); } // seting some constant like the number of page in the message section var div = document.getElementById("verificationAttaque"); div.innerHTML = getMessage(1); var litab = document.getElementsByClassName('paginator'); var li = litab[litab.length -1]; var maxPage = li.getAttribute("data-page"); var cpt = 1; var ok = true; var tabCoord = {}; var tabCoordHeures = {}; // main loop while (cpt <= maxPage && ok ) { // store the HTML in hidden div div.innerHTML = getMessage(cpt); var lutab = document.getElementsByClassName('ctn_with_trash'); var lu = lutab[lutab.length -1]; var collEnfants = document.getElementsByClassName('msg'); // 1 of 2 child are not of your bisness, and the first is the < << >> > button so start at 3 and +2 for (var i = 0; i < collEnfants.length; i=i+1) { var msg = collEnfants[i]; var mesgtab = msg.getElementsByClassName('msg_date'); var date = mesgtab[0]; if (isAppendedToday(date.innerHTML)) { var locTab = msg.getElementsByClassName('txt_link'); var coord = locTab[0].innerHTML; if (typeof tabCoord[coord] == 'undefined') { tabCoord[coord] = 1; tabCoordHeures[coord] = formateTitle(date.innerHTML,cpt)+'\n'; } else { tabCoord[coord] += 1; tabCoordHeures[coord] += formateTitle(date.innerHTML,cpt)+'\n'; } } else { // on est arrivé sur quelque-chose qui date d'il y a plus d'un jour ok = false; break; } } cpt++; } // end of collecting data time for some display $.cookie("tabCoord", JSON.stringify(tabCoord)); $.cookie('tabCoordHeures', JSON.stringify(tabCoordHeures)); display(); } function display() { var maxRaid = 6; var tabCoord = $.parseJSON($.cookie("tabCoord")); var tabCoordHeures = $.parseJSON($.cookie("tabCoordHeures")); console.log(tabCoord); console.log(tabCoordHeures); var isGood =true; var coordByNbAttaque = {}; for (var coord in tabCoord ) { // pour l'affichage en div if (typeof coordByNbAttaque[tabCoord[coord]] == 'undefined') { coordByNbAttaque[tabCoord[coord]] = ''+coord +'
'; } else { coordByNbAttaque[tabCoord[coord]] +=''+coord +'
'; } // pour l'alert if ( tabCoord[coord] >= maxRaid ) { isGood =false; } } var htmlCount = '
'; if ( isGood ) { htmlCount += 'Pas de risque
'; htmlCount += 'de bash
'; htmlCount += '

'; } else { htmlCount += 'Risque de bash'; htmlCount += '

'; } for (var count in coordByNbAttaque ) { if ( count == "1") { htmlCount += count +' attaque :
' + coordByNbAttaque[count] + '
'; } else if (count < maxRaid ) { htmlCount += count +' attaques :
' + coordByNbAttaque[count] + '
'; } else { htmlCount += ''; htmlCount += count +' attaques :
' + coordByNbAttaque[count] + '
'; htmlCount +='
'; } } htmlCount += '
'; var info = document.createElement("div"); info.className="adviceWrapper"; info.innerHTML=htmlCount; info.id="id_check_attaque"; var link = document.getElementById("links"); var conteneur = document.getElementById('id_check_attaque'); if (typeof(conteneur) == 'undefined' || conteneur == null) { link.appendChild(info); } else { link.replaceChild(info,conteneur); } }