Voici le code php:
Code : Tout sélectionner
<?php
ini_set('memory_limit', '512M');
// Configuration
$username = '';
$password = '';
$region = '1';
$strikes_dir = 'https://' . $username . ':' . $password . 'urldusite' . $region . '/';
$end_time = time();
$time_span = 3600; // 1 heure
$local_strikes_file = 'local.json';
// Renouvellement du fichier de données local si nécessaire
If (!file_exists($local_strikes_file) || filemtime($local_strikes_file) < $end_time - 60) {
touch($local_strikes_file);
$l_time = $end_time - $time_span;
$tmp_strikes = [];
$run_time = $l_time;
While ($run_time < $end_time + 600) {
$filename = $strikes_dir . gmdate("Y/m/d/H/", $run_time) . ($run_time / 600 % 6) . '0.json';
error_log("Tentative d'ouverture du fichier : $filename");
If ($file = @fopen($filename, 'r')) {
error_log("Fichier ouvert avec succès : $filename");
While ($line = fgets($file)) {
$json = json_decode($line);
If ($json && isset($json->time)) {
$json->time /= 1000000000;
If ($json->time >= $l_time) {
// Supprimer les signatures si nécessaire
If (isset($json->sig)) {
unset($json->sig);
}
$tmp_strikes[] = $json;
}
}
unset($json)
}
fclose($file);
} Else {
error_log("Échec de l'ouverture du fichier : $filename");
}
$run_time += 600;
}
// Écrire les données dans local.json
file_put_contents($local_strikes_file, json_encode($tmp_strikes, JSON_PRETTY_PRINT));
}
// Chargement des données
$strikes = [];
$data = file_get_contents($local_strikes_file);
If ($data !== false) {
$strikes = json_decode($data);
If ($strikes === null) {
error_log("Erreur lors du décodage JSON : " . json_last_error_msg());
$strikes = [];
}
} Else {
error_log("Erreur lors de la lecture du fichier local.json");
}
// Retourner les données au format JSON
header('Content-Type: application/json');
echo json_encode($strikes);
?>
Voici la partie PB que j'ai réussi à faire pour le moment:
Code : Tout sélectionner
; Définition des constantes et des variables
Define username.s = "" ; Remplacez par votre nom d'utilisateur
Define password.s = "" ; Remplacez par votre mot de passe
Define region.s = "1" ; Exemple de région
Define strikes_dir.s = "https://" + username + ":" + password + "URLduServeur" + region + "/"
Define end_time = Date()
Define time_span = 3600 ; 1 heure
Define local_strikes_file.s = "local.json"
Define l_time = end_time - time_span
Define run_time
; Boucle pour télécharger les fichiers JSON
run_time = l_time
If run_time < end_time + 600
; Vérifie que run_time n'est pas 0 avant d'effectuer la division
Define index = (run_time / 600) % 6 ; Utiliser un index basé sur run_time
Define filename.s = strikes_dir + FormatDate("%yyyy/%mm/%dd/%hh/", run_time) + Str(index) + "0.json"
EndIf
ReceiveHTTPFile(filename, "strikes.json")