Bonsoir,
Le jeu Path of Exile met à disposition une API qui répertorie les objets du jeu mis en vente:
http://www.pathofexile.com/api/public-stash-tabs/?id=
Cette API nous renvoie un fichier JSON qui pour simplifier contient une toute petite partie des ces objets ainsi qu'un "next_change_id" qui permet d'obtenir un autre fichier JSON avec une autre partie des objets et un nouveau "next_change_id", ainsi de suite jusqu'à ce que l'API ne renvoie plus rien.
J'ai réaliser un petit script (en PHP) qui affiche les objets souhaités à partir de cette API:
Le soucis c'est qu'il y a des centaines de millier d'objets et que par conséquent il est impossible de faire transiter toutes ces données à chaque recherche. J'ai dû d'ailleurs limiter mon script à 30 résultats pour ne pas dépasser les 5 secondes de délais.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 <?php $limite = 1; while($limite < 20){ // dans la limite de 20 résultats $listecode = file_get_contents("http://api.pathofexile.com/public-stash-tabs/?id=" . $liste["next_change_id"] . ""); // On récupère le JSON $liste = json_decode($listecode,true); //On décode foreach($liste["stashes"] as $coffre){ // On recherche dans le JSON if($coffre["public"] == true){ //Si il y a un coffre publique foreach($coffre["items"] as $objet){ // On recherche dans le coffre publique if($objet["typeLine"] == "Recurve Bow"){ //Infos de recherche à préciser ici echo $coffre["accountName"] . "</br>"; // on affiche le propriétaire de l'objet echo "Image: <img src=\"" . $objet["icon"] . "\"/></br>"; // on affiche l'image de l'objet $limite++; // on incrémente le nombre de résultat trouvé } } } } }//Fin while ?>
Je dois donc trouver un moyen de contourner ce problème mais j'avoue ne pas avoir d'idées précises.
J'ai pensé créer un fichier JSON géant et le mettre automatiquement à jour avec les nouvelles entrées toutes les minutes, le problème c'est que les objets déjà présents qui seraient vendus et/ou retirés resteraient dans le liste.
Je suis assez perdu je dois dire, donc si quelqu'un a une idée je suis tout ouïe.
Cordialement.
Partager