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) +); | 
