diff --git a/data.go b/data.go index 1f42b6a..ca6667f 100644 --- a/data.go +++ b/data.go @@ -921,7 +921,7 @@ var countryCurrencies = map[string]string{ "AZ": "AZN", "BA": "BAM", "BB": "BBD", "BD": "BDT", "BE": "EUR", "BF": "XOF", "BG": "BGN", "BH": "BHD", "BI": "BIF", "BJ": "XOF", "BL": "EUR", "BM": "BMD", "BN": "BND", "BO": "BOB", "BQ": "USD", - "BR": "BRL", "BS": "BSD", "BT": "INR", "BV": "NOK", "BW": "BWP", + "BR": "BRL", "BS": "BSD", "BT": "BTN", "BV": "NOK", "BW": "BWP", "BY": "BYN", "BZ": "BZD", "CA": "CAD", "CC": "AUD", "CD": "CDF", "CF": "XAF", "CG": "XAF", "CH": "CHF", "CI": "XOF", "CK": "NZD", "CL": "CLP", "CM": "XAF", "CN": "CNY", "CO": "COP", "CR": "CRC", @@ -941,13 +941,13 @@ var countryCurrencies = map[string]string{ "JP": "JPY", "KE": "KES", "KG": "KGS", "KH": "KHR", "KI": "AUD", "KM": "KMF", "KN": "XCD", "KP": "KPW", "KR": "KRW", "KW": "KWD", "KY": "KYD", "KZ": "KZT", "LA": "LAK", "LB": "LBP", "LC": "XCD", - "LI": "CHF", "LK": "LKR", "LR": "LRD", "LS": "ZAR", "LT": "EUR", + "LI": "CHF", "LK": "LKR", "LR": "LRD", "LS": "LSL", "LT": "EUR", "LU": "EUR", "LV": "EUR", "LY": "LYD", "MA": "MAD", "MC": "EUR", "MD": "MDL", "ME": "EUR", "MF": "EUR", "MG": "MGA", "MH": "USD", "MK": "MKD", "ML": "XOF", "MM": "MMK", "MN": "MNT", "MO": "MOP", "MP": "USD", "MQ": "EUR", "MR": "MRU", "MS": "XCD", "MT": "EUR", "MU": "MUR", "MV": "MVR", "MW": "MWK", "MX": "MXN", "MY": "MYR", - "MZ": "MZN", "NA": "ZAR", "NC": "XPF", "NE": "XOF", "NF": "AUD", + "MZ": "MZN", "NA": "NAD", "NC": "XPF", "NE": "XOF", "NF": "AUD", "NG": "NGN", "NI": "NIO", "NL": "EUR", "NO": "NOK", "NP": "NPR", "NR": "AUD", "NU": "NZD", "NZ": "NZD", "OM": "OMR", "PA": "USD", "PE": "PEN", "PF": "XPF", "PG": "PGK", "PH": "PHP", "PK": "PKR", diff --git a/gen.go b/gen.go index 8e44f67..a69ebbc 100644 --- a/gen.go +++ b/gen.go @@ -396,6 +396,7 @@ func generateCountryCurrencies(dir string) (map[string]string, error) { Supplemental struct { CurrencyData struct { Region map[string][]map[string]struct { + From string `json:"_from"` To string `json:"_to"` Tender string `json:"_tender"` } @@ -414,11 +415,16 @@ func generateCountryCurrencies(dir string) (map[string]string, error) { } lastCurrencyCode := "" + lastFrom := "" for _, currencyUsage := range currencies { for currencyCode, usageInfo := range currencyUsage { - // If there's no "to" date, then this currency is still in use. - if usageInfo.To == "" && usageInfo.Tender != "false" { + if usageInfo.To != "" || usageInfo.Tender == "false" { + // Currency no longer in use, skip. + continue + } + if lastFrom == "" || usageInfo.From > lastFrom { lastCurrencyCode = currencyCode + lastFrom = usageInfo.From } } }