diff --git a/coingecko.php b/coingecko.php index 0277a2e..ba7f934 100644 --- a/coingecko.php +++ b/coingecko.php @@ -1,110 +1,66 @@ coingecko.com"; - -// Die Standard-Zeitzone, die verwendet werden soll, setzen. +// Set default timezone date_default_timezone_set('Europe/Berlin'); -// Holt den letzten Wert für die if Abfrage -$xmrdatas = json_decode(file_get_contents("coingecko.json"), true); +// Define the array of currencies +$currencies = [ + "EUR", "BTC", "USD", "GBP", "CHF", "RUB", "CNY", "JPY", "IDR", "KRW", "TRY", "AUD", + "BMD", "CAD", "HKD", "NZD", "SGD", "TWD", "ILS", "PLN", "ZAR", "CZK", "DKK", "NOK", + "SEK", "ARS", "CLP", "PHP", "MXN", "BHD", "KWD", "BRL", "MYR", "VEF", "UAH", "VND", + "BDT", "HUF", "MMK", "NGN", "THB", "AED", "SAR", "PKR", "LKR", "INR", "LTC", "ETH", + "XAG", "XAU" +]; -// Liefert den aktuellen Unix-Zeitstempel -$zeit = time(); +// Fetch the previously stored data +$previousData = json_decode(file_get_contents("coingecko.json"), true); +$currentTime = time(); -// Sind ~30 Minuten vergangen? -if(($zeit - $xmrdatas['time']) >= 5){ - //echo "Gespeicherte Zeit: ".$xmrdatas['time']."
Aktuelle Zeit: ".$zeit; +// Check if five seconds have passed since the last update +if (($currentTime - $previousData['time']) >= 5) { + // Fetch the latest data from CoinGecko API + $apiUrl = 'https://api.coingecko.com/api/v3/simple/price?ids=monero&vs_currencies=' . implode('%2C', array_map('strtolower', $currencies)) . '&include_market_cap=true&include_24hr_vol=true&include_24hr_change=true&include_last_updated_at=true'; - // Initialize CURL - $ch = curl_init('https://api.coingecko.com/api/v3/simple/price?ids=monero&vs_currencies=btc%2Ceth%2Cltc%2Cbch%2Cbnb%2Ceos%2Cxrp%2Cxlm%2Clink%2Cdot%2Cyfi%2Cusd%2Caed%2Cars%2Caud%2Cbdt%2Cbhd%2Cbmd%2Cbrl%2Ccad%2Cchf%2Cclp%2Ccny%2Cczk%2Cdkk%2Ceur%2Cgbp%2Chkd%2Chuf%2Cidr%2Cils%2Cinr%2Cjpy%2Ckrw%2Ckwd%2Clkr%2Cmmk%2Cmxn%2Cmyr%2Cngn%2Cnok%2Cnzd%2Cphp%2Cpkr%2Cpln%2Crub%2Csar%2Csek%2Csgd%2Cthb%2Ctry%2Ctwd%2Cuah%2Cvef%2Cvnd%2Czar%2Cxdr%2Cxag%2Cxau%2Cbits%2Csats&include_market_cap=true&include_24hr_vol=true&include_24hr_change=true&include_last_updated_at=true'); + $ch = curl_init($apiUrl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - - // Store the data: $json = curl_exec($ch); - curl_close($ch); - - // Sortiert/Formatiert die Ausgabe - $sort_array = json_decode($json, true); - $new_sort_array = $sort_array['monero']; - // Zeit wird ergänzt - $new_array['time'] = $zeit; - $new_sort_array['time'] = $zeit; - - foreach ($array as $fiatValue) { - $fiatValue = strtolower($fiatValue); - if (array_key_exists($fiatValue, $sort_array['monero'])) { - $new_array[$fiatValue]['lastValue'] = $sort_array['monero'][$fiatValue]; - $new_array[$fiatValue]['lastDate'] = $zeit; - }else{ - $new_array[$fiatValue]['lastValue'] = $xmrdatas[$fiatValue]['lastValue']; - $new_array[$fiatValue]['lastDate'] = $xmrdatas[$fiatValue]['lastDate']; - } - //print_r($new_array); + if (curl_errno($ch)) { + echo 'Curl error: ' . curl_error($ch); + curl_close($ch); + exit; } + curl_close($ch); - - // Werte in die .json gespeichert - file_put_contents("coingecko.json", json_encode($new_array)); - file_put_contents("coingecko-original.json", json_encode($new_sort_array)); - - // echo "
Sync.
"; - -}//else{ - //echo "Keine Daten, noch zu früh!

"; - //echo "Gespeicherte Zeit: ".$xmrdatas['time']."
Aktuelle Zeit: ".$zeit."

Differenz: ".$zeit - $xmrdatas['time']."

"; -//} -?> + // Decode the fetched data + $fetchedData = json_decode($json, true); + $moneroData = $fetchedData['monero']; + + // Initialize new data array + $newData = ['time' => $currentTime]; + + // Update the data for each currency + foreach ($currencies as $currency) { + $currencyLower = strtolower($currency); + if (isset($moneroData[$currencyLower])) { + $newData[$currencyLower] = [ + 'lastValue' => $moneroData[$currencyLower], + 'lastDate' => $currentTime + ]; + } else { + $newData[$currencyLower] = [ + 'lastValue' => $previousData[$currencyLower]['lastValue'] ?? null, + 'lastDate' => $previousData[$currencyLower]['lastDate'] ?? null + ]; + } + } + + // Save the new data to JSON files + file_put_contents("coingecko.json", json_encode($newData, JSON_PRETTY_PRINT)); + file_put_contents("coingecko-original.json", json_encode($moneroData, JSON_PRETTY_PRINT)); + + echo "Data updated successfully."; +} else { + echo "No data update needed. Last update was less than five seconds ago."; +}