Aggiunto indicatore per anzianità ultimo aggiornamento

This commit is contained in:
loviuz 2022-12-11 13:12:19 +01:00
parent 196052b7e2
commit 71ae3cb217
1 changed files with 19 additions and 8 deletions

View File

@ -5,13 +5,13 @@ include 'vendor/autoload.php';
$client = new \GuzzleHttp\Client(); $client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'http://www.mise.gov.it/images/exportCSV/anagrafica_impianti_attivi.csv'); $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'); $response = $client->request('GET', 'http://www.mise.gov.it/images/exportCSV/prezzo_alle_8.csv');
file_put_contents('prezzo_alle_8.csv', $response->getBody()); file_put_contents('prezzo_alle_8.csv', $response->getBody());
// Lettura template file umap // 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 // Lettura 2 CSV
$csvDistributori = fopen('anagrafica_impianti_attivi.csv', 'r'); $csvDistributori = fopen('anagrafica_impianti_attivi.csv', 'r');
@ -65,7 +65,8 @@ $raggruppamenti_iniziali = [
'GASOLIO ENERGY D' => 'GASOLIO', 'GASOLIO ENERGY D' => 'GASOLIO',
'BENZINA ENERGY 98 OTTANI' => 'BENZINA', 'BENZINA ENERGY 98 OTTANI' => 'BENZINA',
'BENZINA SHELL V POWER' => 'BENZINA', 'BENZINA SHELL V POWER' => 'BENZINA',
'SSP98' => 'BENZINA' 'SSP98' => 'BENZINA',
'GASOLIO PLUS' => 'GASOLIO'
]; ];
$raggruppamenti = []; $raggruppamenti = [];
@ -96,7 +97,7 @@ while (($line = fgetcsv($csvPrezzi, 0, ';')) !== false) {
$prezzo = (float)$line[2]; $prezzo = (float)$line[2];
$isSelf = (int)$line[3]; $isSelf = (int)$line[3];
$ultimo_aggiornamento = $line[4]; $ultimo_aggiornamento = $line[4];
$prezzi[ $idimpianto ][] = [ $prezzi[ $idimpianto ][] = [
'tipo' => strtoupper($tipo), 'tipo' => strtoupper($tipo),
'prezzo' => $prezzo, 'prezzo' => $prezzo,
@ -113,7 +114,7 @@ fgetcsv($csvDistributori);
fgetcsv($csvDistributori); fgetcsv($csvDistributori);
// Costruzione dati umap // Costruzione dati umap
while(($line = fgetcsv($csvDistributori, 0, ';')) !== FALSE){ while (($line = fgetcsv($csvDistributori, 0, ';')) !== false) {
$idimpianto = $line[0]; $idimpianto = $line[0];
$name = $line[2]; $name = $line[2];
$lat = $line[8] !== 'NULL' ? $line[8] : null; $lat = $line[8] !== 'NULL' ? $line[8] : null;
@ -129,11 +130,21 @@ while(($line = fgetcsv($csvDistributori, 0, ';')) !== FALSE){
foreach ($prezzi[$idimpianto] as $idx => $prezzo) { foreach ($prezzi[$idimpianto] as $idx => $prezzo) {
$tipo = $prezzo['tipo'].($prezzo['isSelf'] ? ' (self)' : ' (servito)'); $tipo = $prezzo['tipo'].($prezzo['isSelf'] ? ' (self)' : ' (servito)');
$tipo_raggruppato = $raggruppamenti[ $tipo ]; $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] = [ $prezzi_per_tipo[$tipo_raggruppato][$idimpianto][$tipo] = [
'idimpianto' => $idimpianto, 'idimpianto' => $idimpianto,
'ultimo_aggiornamento' => $prezzo['ultimo_aggiornamento'], 'ultimo_aggiornamento' => $prezzo['ultimo_aggiornamento'],
'nome' => $name, 'nome' => $name,
'icon' => $icon,
'prezzo' => (float)$prezzo['prezzo'], 'prezzo' => (float)$prezzo['prezzo'],
'lat' => $lat, 'lat' => $lat,
'lon' => $lon 'lon' => $lon
@ -166,7 +177,7 @@ foreach ($prezzi_per_tipo as $tipo_raggruppato => $idimpianti) {
"properties" => [ "properties" => [
"idImpianto" => $idimpianto, "idImpianto" => $idimpianto,
'description' => "**".$impianto['nome']."**\n".implode("\n", $descriptions)."\n*Ultimo agg.: ".$impianto['ultimo_aggiornamento'].'*', '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" => [ "geometry" => [
"type" => "Point", "type" => "Point",
@ -203,7 +214,7 @@ $json_response = json_encode($umap, JSON_PRETTY_PRINT);
// Salvataggio file umap // Salvataggio file umap
if (isset($_GET['response'])) { if (isset($_GET['response'])) {
echo $json_response; echo $json_response;
} else { } else {
file_put_contents( 'data.umap', $json_response ); file_put_contents('data.umap', $json_response);
} }