From 71ae3cb217cee94697fbb8c36d63e328e068646c Mon Sep 17 00:00:00 2001 From: loviuz Date: Sun, 11 Dec 2022 13:12:19 +0100 Subject: [PATCH] =?UTF-8?q?Aggiunto=20indicatore=20per=20anzianit=C3=A0=20?= =?UTF-8?q?ultimo=20aggiornamento?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- generate.php | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/generate.php b/generate.php index eb95cf5..68e3a11 100644 --- a/generate.php +++ b/generate.php @@ -5,13 +5,13 @@ include 'vendor/autoload.php'; $client = new \GuzzleHttp\Client(); $response = $client->request('GET', 'http://www.mise.gov.it/images/exportCSV/anagrafica_impianti_attivi.csv'); -file_put_contents('anagrafica_impianti_attivi.csv', $response->getBody() ); +file_put_contents('anagrafica_impianti_attivi.csv', $response->getBody()); $response = $client->request('GET', 'http://www.mise.gov.it/images/exportCSV/prezzo_alle_8.csv'); file_put_contents('prezzo_alle_8.csv', $response->getBody()); // Lettura template file umap -$umap = json_decode( file_get_contents('template.umap'), 1 ); +$umap = json_decode(file_get_contents('template.umap'), 1); // Lettura 2 CSV $csvDistributori = fopen('anagrafica_impianti_attivi.csv', 'r'); @@ -65,7 +65,8 @@ $raggruppamenti_iniziali = [ 'GASOLIO ENERGY D' => 'GASOLIO', 'BENZINA ENERGY 98 OTTANI' => 'BENZINA', 'BENZINA SHELL V POWER' => 'BENZINA', - 'SSP98' => 'BENZINA' + 'SSP98' => 'BENZINA', + 'GASOLIO PLUS' => 'GASOLIO' ]; $raggruppamenti = []; @@ -96,7 +97,7 @@ while (($line = fgetcsv($csvPrezzi, 0, ';')) !== false) { $prezzo = (float)$line[2]; $isSelf = (int)$line[3]; $ultimo_aggiornamento = $line[4]; - + $prezzi[ $idimpianto ][] = [ 'tipo' => strtoupper($tipo), 'prezzo' => $prezzo, @@ -113,7 +114,7 @@ fgetcsv($csvDistributori); fgetcsv($csvDistributori); // Costruzione dati umap -while(($line = fgetcsv($csvDistributori, 0, ';')) !== FALSE){ +while (($line = fgetcsv($csvDistributori, 0, ';')) !== false) { $idimpianto = $line[0]; $name = $line[2]; $lat = $line[8] !== 'NULL' ? $line[8] : null; @@ -129,11 +130,21 @@ while(($line = fgetcsv($csvDistributori, 0, ';')) !== FALSE){ foreach ($prezzi[$idimpianto] as $idx => $prezzo) { $tipo = $prezzo['tipo'].($prezzo['isSelf'] ? ' (self)' : ' (servito)'); $tipo_raggruppato = $raggruppamenti[ $tipo ]; + $giorni_ritardo_aggiornamento = strtotime($ultimo_aggiornamento)/60/60/24 - time()/60/60/24; + + // Emoji per indicare la data di ultimo aggiornamento + $icon = '🔴'; + if ($giorni_ritardo_aggiornamento <= 3) { + $icon = '🟢'; + } elseif ($giorni_ritardo_aggiornamento > 3 && $giorni_ritardo_aggiornamento <= 7) { + $icon = '🟠'; + } $prezzi_per_tipo[$tipo_raggruppato][$idimpianto][$tipo] = [ 'idimpianto' => $idimpianto, 'ultimo_aggiornamento' => $prezzo['ultimo_aggiornamento'], 'nome' => $name, + 'icon' => $icon, 'prezzo' => (float)$prezzo['prezzo'], 'lat' => $lat, 'lon' => $lon @@ -166,7 +177,7 @@ foreach ($prezzi_per_tipo as $tipo_raggruppato => $idimpianti) { "properties" => [ "idImpianto" => $idimpianto, 'description' => "**".$impianto['nome']."**\n".implode("\n", $descriptions)."\n*Ultimo agg.: ".$impianto['ultimo_aggiornamento'].'*', - 'name' => min($prezzi).' - '.max($prezzi).' €' + 'name' => $impianto['icon'].' '.min($prezzi).' - '.max($prezzi).' €' ], "geometry" => [ "type" => "Point", @@ -203,7 +214,7 @@ $json_response = json_encode($umap, JSON_PRETTY_PRINT); // Salvataggio file umap if (isset($_GET['response'])) { - echo $json_response; + echo $json_response; } else { - file_put_contents( 'data.umap', $json_response ); + file_put_contents('data.umap', $json_response); }