]> git.ipfire.org Git - ipfire.org.git/blame - src/backend/countries.py
wiki: Only match usernames when a word starts with @
[ipfire.org.git] / src / backend / countries.py
CommitLineData
9068dba1 1#!/usr/bin/python
9068dba1 2
df731215 3import iso3166
9068dba1 4
f110a9ff
MT
5ZONES = {
6 # Europe
7 "EU": ["AD", "AL", "AT", "AX", "BA", "BE", "BG", "BY", "CH", "CZ", "DE", "DK", "EE",
8 "ES", "EU", "FI", "FO", "FR", "FX", "GB", "GG", "GI", "GR", "HR", "HU", "IE",
9 "IM", "IS", "IT", "JE", "LI", "LT", "LU", "LV", "MC", "MD", "ME", "MK", "MT",
10 "NL", "NO", "PL", "PT", "RO", "RS", "RU", "SE", "SI", "SJ", "SK", "SM", "TR",
11 "UA", "VA"],
12
13 # Asia
14 "AS": ["AE", "AF", "AM", "AP", "AZ", "BD", "BH", "BN", "BT", "CC", "CN", "CX", "CY",
15 "GE", "HK", "ID", "IL", "IN", "IO", "IQ", "IR", "JO", "JP", "KG", "KH", "KP",
16 "KR", "KW", "KZ", "LA", "LB", "LK", "MM", "MN", "MO", "MV", "MY", "NP", "OM",
17 "PH", "PK", "PS", "QA", "SA", "SG", "SY", "TH", "TJ", "TL", "TM", "TW", "UZ",
18 "VN", "YE"],
19
20 # North America
21 "NA": ["AG", "AI", "AN", "AW", "BB", "BL", "BM", "BS", "BZ", "CA", "CR", "CU", "DM",
22 "DO", "GD", "GL", "GP", "GT", "HN", "HT", "JM", "KN", "KY", "LC", "MF", "MQ",
23 "MS", "MX", "NI", "PA", "PM", "PR", "SV", "TC", "TT", "US", "VC", "VG", "VI"],
24
25 # South America
26 "SA": ["AR", "BO", "BR", "CL", "CO", "EC", "FK", "GF", "GY", "PE", "PY", "SR", "UY", "VE"],
27
28 # Africa
29 "AF": ["AO", "BF", "BI", "BJ", "BW", "CD", "CF", "CG", "CI", "CM", "CV", "DJ", "DZ",
30 "EG", "EH", "ER", "ET", "GA", "GH", "GM", "GN", "GQ", "GW", "KE", "KM", "LR",
31 "LS", "LY", "MA", "MG", "ML", "MR", "MU", "MW", "MZ", "NA", "NE", "NG", "RE",
32 "RW", "SC", "SD", "SH", "SL", "SN", "SO", "ST", "SZ", "TD", "TG", "TN", "TZ",
33 "UG", "YT", "ZA", "ZM", "ZW"],
34
35 # Antartica
36 "AN": ["AQ", "BV", "GS", "HM", "TF"],
37
38 # Oceania
39 "OC": ["AS", "AU", "CK", "FJ", "FM", "GU", "KI", "MH", "MP", "NC", "NF", "NR", "NU", "NZ",
40 "PF", "PG", "PN", "PW", "SB", "TK", "TO", "TV", "UM", "VU", "WF", "WS"],
41}
42
92c4b559
MT
43EU_COUNTRIES = (
44 "BE",
45 "BG",
46 "CZ",
47 "DK",
48 "DE",
49 "EE",
50 "IE",
51 "EL",
52 "ES",
53 "FR",
54 "FR",
55 "GB",
56 "HR",
57 "IT",
58 "CY",
59 "LV",
60 "LT",
61 "LU",
62 "HU",
63 "MT",
64 "NL",
65 "AT",
66 "PL",
67 "PT",
68 "RO",
69 "SI",
70 "SK",
71 "FI",
72 "SE",
73)
74
df731215
MT
75def get_name(code):
76 try:
77 return iso3166.countries_by_alpha2[code].name
78 except KeyError:
79 return code
9068dba1
MT
80
81def get_all(locale=None):
df731215 82 return sorted(iso3166.countries, key=lambda c: c.name)
f110a9ff
MT
83
84def get_zone(country_code):
85 for zone in ZONES:
86 if country_code in ZONES[zone]:
87 return zone
88
89def get_in_zone(zone):
90 try:
91 return ZONES[zone]
92 except KeyError:
93 return []