diff options
Diffstat (limited to 'db/currencies.php')
-rw-r--r-- | db/currencies.php | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/db/currencies.php b/db/currencies.php new file mode 100644 index 0000000..7df3993 --- /dev/null +++ b/db/currencies.php @@ -0,0 +1,43 @@ +<?php + +$currencySymbols = []; +$handle = fopen('https://raw.githubusercontent.com/bengourley/currency-symbol-map/master/map.js', 'r'); +while ($line = fgets($handle)) { + preg_match("/(\w+): '(.+)'/", $line, $match); + + if (isset($match[1])) { + $currencySymbols[$match[1]] = $match[2]; + } +} + +$currencyNames = json_decode(file_get_contents('https://openexchangerates.org/api/currencies.json'), true); + +$decimals = [ + 'JPY' => 0, + 'KRW' => 0, +]; + +$currencies = []; +$apiResponse = json_decode(file_get_contents('https://api.frankfurter.app/latest?base=eur'), true); +$currencies['last_updated'] = $apiResponse['date']; +foreach ($apiResponse['rates'] as $code => $rate) { + $currencies['map'][$code] = [ + 'rate' => $rate, + 'symbol' => $currencySymbols[$code], + 'name' => $currencyNames[$code], + 'decimals' => $decimals[$code] ?? 2, + ]; +} + +// add EUR +$currencies['map']['EUR'] = [ + 'rate' => 1, + 'symbol' => $currencySymbols['EUR'], + 'name' => $currencyNames['EUR'], + 'decimals' => 2, +]; + +file_put_contents( + __DIR__ . '/_generated/currencies.json', + json_encode($currencies) +); |