[Mod]Superapix

Démarré par machine, 28 Février 2013, 15:45:35

« précédent - suivant »

Anubys

Yep machine, il te va bien ce pseudo en plus :)

Euh, tu penses que ça serait possible d'ajouter à ton mods une petite options.

Ça serait juste une sorte d'alerte, pour savoir quand l'API d'ogame se mets à jour. Comme ça, une fois qu'on verrait cette alerte avec un maj de superapix, on aurait les dernières informations toutes fraiches.

Plutôt que de le lancer comme ça sans savoir si l'API est à jour ou non...

machine

Citation de: Anubys le 17 Mars 2013, 11:54:17
Yep machine, il te va bien ce pseudo en plus :)

Euh, tu penses que ça serait possible d'ajouter à ton mods une petite options.

Ça serait juste une sorte d'alerte, pour savoir quand l'API d'ogame se mets à jour. Comme ça, une fois qu'on verrait cette alerte avec un maj de superapix, on aurait les dernières informations toutes fraiches.

Plutôt que de le lancer comme ça sans savoir si l'API est à jour ou non...

c possible :)

demande a faire sur bitbucket :

https://bitbucket.org/machine/mod-superapix/issues/new

Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/

Anubys

C'est fait.

J'me suis peut être emballé mais ça serait le must ce que j'ai proposé :)

pitch314

En fait c'est facile car on connait les périodes de mise à jour et la date des informations courante.


* Avoir les périodes de mise à jour des différents dossiers. =>http://board.ogame.fr/board1474-ogame-le-jeu/board641-les-cr-ations-ogamiennes/board642-logiciels-tableurs/1053082-ogame-api/
(il pourrait être possible, comme option du superapix, que l'user peut augmenter la période mise à jour (ex : période de mise à jour des classements joueur "toute les heures", le définir à tout les jours))

* Avoir sauvegarder les dates des informations (players.xml, universe.xml, playerData.xml, hightscore.xml, alliance.xml) (Dans un fichier ou dans la bdd -> les timestamp)

* Comportement de la mise à jour :
  - Rapatrier seulement la première ligne du fichier xml voulu
  - Lire la date (timestamp)
  - Comparer timestamp avec la date enregistrer et la période de rafraichissement (timestamp > saveDate + periode)
     - Si timestamp < alors on ne lance pas la mise à jour et on avertit "pas de mise à jour"
     - Si timestamp > alors on peut lancer la mise à jour (puis on sauvegarde les nouvelles dates)


Machine si ça peux d'aider {^_^}
Si tu veux rapatrier qu'une seule ligne et pas tout le fichier en entier (inutile) et que tu sais pas, dis le moi je te donnerai une fonction très utile.
mods  : "Production", "Build.Tech HOF"(bthof) et "Temps de vol"
OGSpy v3
OGSpy v5 (gestion BDD et sécurité)

machine

la fonction me botterait

sinon j enregistre le timestamp de tous les xml telechargé ...
du coup je n ai qu a utiliser une fonction deja existante ...

( mais je prends ta fonction :p )

Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/

pitch314

Ma fonction :
/**
* Lit les n premiers octect/caractère d'un fichier.
* @param string $url L'emplace du fichier ou son adresse URL
* @param int $lenght La longueur en octet lu. (Attention à un longueur trop grande (>8192 soit 4ko))
* @return NULL si pas lu, sinon la caractère lu.
*/
function read_part_file($url, $lenght) {
 
  $file = fopen($url, "rb");
  if ($file) {
    $result = fread($file, $lenght);
    fclose($file);
    return $result;
  }
  return NULL;
}


Exemple d'utilisation :
$name = 'http://uni64.ogame.fr/api/localization.xml';
$result = read_part_file($name, 256);
if ($result) {
//Truc à faire avec le résult
    echo $result;
} else {
    echo 'Echec';
}

Résultat :
Citation<?xml version="1.0" encoding="UTF-8"?>
<localization xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://uni64.ogame.fr/api/xsd localization.xsd" timestamp="1363544371" serverId="fr64"><techs><name id="1">Mine de métal</name><

Je pense que 256 est une bonne valeur.
mods  : "Production", "Build.Tech HOF"(bthof) et "Temps de vol"
OGSpy v3
OGSpy v5 (gestion BDD et sécurité)

machine

Citation de: pitch314 le 17 Mars 2013, 21:14:22
Ma fonction :
/**
* Lit les n premiers octect/caractère d'un fichier.
* @param string $url L'emplace du fichier ou son adresse URL
* @param int $lenght La longueur en octet lu. (Attention à un longueur trop grande (>8192 soit 4ko))
* @return NULL si pas lu, sinon la caractère lu.
*/
function read_part_file($url, $lenght) {
 
  $file = fopen($url, "rb");
  if ($file) {
    $result = fread($file, $lenght);
    fclose($file);
    return $result;
  }
  return NULL;
}


Exemple d'utilisation :
$name = 'http://uni64.ogame.fr/api/localization.xml';
$result = read_part_file($name, 256);
if ($result) {
//Truc à faire avec le résult
    echo $result;
} else {
    echo 'Echec';
}

Résultat :
Je pense que 256 est une bonne valeur.

coool, je ne pensais pas que c'etait possible sur un fichier distant ... :)

pourquoi la limite de 4ko ?

Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/

pitch314

Ce n'est pas vraiment une limite, c'est juste à certain comportement obscure de fread

Citationstring fread ( resource $handle , int $length )

fread() lit jusqu'à length octets dans le fichier référencé par handle. La lecture s'arrête lorsqu'une des conditions suivantes apparaît :

  *  length octets ont été lus
  *  la fin du fichier est atteinte
  *  un paquet devient disponible ou le temps socket timeout est passé (pour les flux réseau)
  *  si le flux est lu depuis le buffer, et qu'il ne représente pas un fichier plein, alors au moins une lecture d'un nombre d'octets équivalent à la taille du bloc (habituellement 8192) est réalisée ; suivants les données du buffer précédent, la taille des données retournées peut être supérieure à la taille du bloc.
mods  : "Production", "Build.Tech HOF"(bthof) et "Temps de vol"
OGSpy v3
OGSpy v5 (gestion BDD et sécurité)

Ed la poignee

Bonsoir à tous,

Tout fonctionne à merveille également pour moi (enfin je pense, je n'ai pas vérifier ss par ss ^^).

Bravo pour votre boulot !

Juste une petite chose, est-ce qu'il serait possible d'afficher un genre de résultat du style : "maj classements, galaxies etc ... réussie (ou non d'ailleurs)" ?
Cela pourrait permettre une sorte de vérification ?

Merci encore en tous cas !

Anubys

19 Mars 2013, 07:00:11 #114 Dernière édition: 19 Mars 2013, 07:05:07 par Anubys
Tu as les dates à la fin de la mise à jour pour chaque lecture de l'API.

EDIT : Petit bug, la mise à jour avec l'API m'enlève les lunes :D Exemple moi, sur 12 lunes j'en ai plus une seule.

machine

@Ed la poignee : tu peux faire une demande sur bitbucket ???

@anubys pareil pour ton bug, il passera prioritaire ...

les autres utilisateurs vous confirmez le bug d anu ???
( de mon coté, la maj se fait le mercredi, je v pouvoir verifier sur ovh le bug )

ps : pas de dev cette semaine ( je serai un peu court ( sauf insomnie ... ))

enjoy


Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/

roms0406

Pas de bug pour les lunes de mon côté ;)

lililou

AH oui! comme Anubys, les lunes n'existent plus sur ma carto.

machine

ola les copains


pb resolu chez moi

avant le tag, si vous pouviez tester ....
1) via autoupdate, faite un telechargement depuis le "trunk"
2) installez le..
3) lancez la mise a jour
4) verifiez la presence des lunes
5) remontez l information


d'avance merci

Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/

bdd_1

Ok pour l'affichage des lunes.
MAC - OGSpy 3.2.0 - Xtense 2.6.2 - OGXtense GM 2.6.1.0 - FF41.0.2 - free.fr