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:

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
 
?>
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.

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.