risk3sixty/geoapi

Include emoji in response

Closed this issue ยท 2 comments

It'd be neet if country was also returned with a flag of the country.

True, this would be neat, and easy to implement as well!

On the other hand, it's really easy to get the emoji using a few lines of code, so do we really need this lib to do it for us? For example, in Python:

import flag # https://pypi.org/project/emoji-country-flag/
import requests

r = requests.get('https://geo.risk3sixty.com/me').json()
my_country_code = r['country']
my_flag = flag.flag(my_country_code)
print(f"I'm in Guatemala ({my_country_code}). Per geoapi, here's my flag: {my_flag}")

Running this script:

โžœ  ~ python3 country_codes.py
I'm in Guatemala (GT). According to geoapi, here's my flag: ๐Ÿ‡ฌ๐Ÿ‡น

FWIW, reading the code, I see they get the IP via the NPM package, geoip-lite. This API simply serves the result of that library's lookup method verbatim.

So if you wanted such a change, maybe it would be better to propose it in the geoip-lite repo! It can be found here: https://github.com/geoip-lite/node-geoip.

They don't even need to rely on some dependency (like I did in the Python code above). You can use such a library to generate your own map of country codes to emojis, like so:

โžœ ~ python3 country_codes.py
{'AD': '๐Ÿ‡ฆ๐Ÿ‡ฉ',
'AE': '๐Ÿ‡ฆ๐Ÿ‡ช',
'AF': '๐Ÿ‡ฆ๐Ÿ‡ซ',
'AG': '๐Ÿ‡ฆ๐Ÿ‡ฌ',
'AI': '๐Ÿ‡ฆ๐Ÿ‡ฎ',
'AL': '๐Ÿ‡ฆ๐Ÿ‡ฑ',
'AM': '๐Ÿ‡ฆ๐Ÿ‡ฒ',
'AN': '๐Ÿ‡ฆ๐Ÿ‡ณ',
'AO': '๐Ÿ‡ฆ๐Ÿ‡ด',
'AQ': '๐Ÿ‡ฆ๐Ÿ‡ถ',
'AR': '๐Ÿ‡ฆ๐Ÿ‡ท',
'AS': '๐Ÿ‡ฆ๐Ÿ‡ธ',
'AT': '๐Ÿ‡ฆ๐Ÿ‡น',
'AU': '๐Ÿ‡ฆ๐Ÿ‡บ',
'AW': '๐Ÿ‡ฆ๐Ÿ‡ผ',
'AX': '๐Ÿ‡ฆ๐Ÿ‡ฝ',
'AZ': '๐Ÿ‡ฆ๐Ÿ‡ฟ',
'BA': '๐Ÿ‡ง๐Ÿ‡ฆ',
'BB': '๐Ÿ‡ง๐Ÿ‡ง',
'BD': '๐Ÿ‡ง๐Ÿ‡ฉ',
'BE': '๐Ÿ‡ง๐Ÿ‡ช',
'BF': '๐Ÿ‡ง๐Ÿ‡ซ',
'BG': '๐Ÿ‡ง๐Ÿ‡ฌ',
'BH': '๐Ÿ‡ง๐Ÿ‡ญ',
'BI': '๐Ÿ‡ง๐Ÿ‡ฎ',
'BJ': '๐Ÿ‡ง๐Ÿ‡ฏ',
'BL': '๐Ÿ‡ง๐Ÿ‡ฑ',
'BM': '๐Ÿ‡ง๐Ÿ‡ฒ',
'BN': '๐Ÿ‡ง๐Ÿ‡ณ',
'BO': '๐Ÿ‡ง๐Ÿ‡ด',
'BR': '๐Ÿ‡ง๐Ÿ‡ท',
'BS': '๐Ÿ‡ง๐Ÿ‡ธ',
'BT': '๐Ÿ‡ง๐Ÿ‡น',
'BV': '๐Ÿ‡ง๐Ÿ‡ป',
'BW': '๐Ÿ‡ง๐Ÿ‡ผ',
'BY': '๐Ÿ‡ง๐Ÿ‡พ',
'BZ': '๐Ÿ‡ง๐Ÿ‡ฟ',
'CA': '๐Ÿ‡จ๐Ÿ‡ฆ',
'CC': '๐Ÿ‡จ๐Ÿ‡จ',
'CD': '๐Ÿ‡จ๐Ÿ‡ฉ',
'CF': '๐Ÿ‡จ๐Ÿ‡ซ',
'CG': '๐Ÿ‡จ๐Ÿ‡ฌ',
'CH': '๐Ÿ‡จ๐Ÿ‡ญ',
'CI': '๐Ÿ‡จ๐Ÿ‡ฎ',
'CK': '๐Ÿ‡จ๐Ÿ‡ฐ',
'CL': '๐Ÿ‡จ๐Ÿ‡ฑ',
'CM': '๐Ÿ‡จ๐Ÿ‡ฒ',
'CN': '๐Ÿ‡จ๐Ÿ‡ณ',
'CO': '๐Ÿ‡จ๐Ÿ‡ด',
'CR': '๐Ÿ‡จ๐Ÿ‡ท',
'CU': '๐Ÿ‡จ๐Ÿ‡บ',
'CV': '๐Ÿ‡จ๐Ÿ‡ป',
'CX': '๐Ÿ‡จ๐Ÿ‡ฝ',
'CY': '๐Ÿ‡จ๐Ÿ‡พ',
'CZ': '๐Ÿ‡จ๐Ÿ‡ฟ',
'DE': '๐Ÿ‡ฉ๐Ÿ‡ช',
'DJ': '๐Ÿ‡ฉ๐Ÿ‡ฏ',
'DK': '๐Ÿ‡ฉ๐Ÿ‡ฐ',
'DM': '๐Ÿ‡ฉ๐Ÿ‡ฒ',
'DO': '๐Ÿ‡ฉ๐Ÿ‡ด',
'DZ': '๐Ÿ‡ฉ๐Ÿ‡ฟ',
'EC': '๐Ÿ‡ช๐Ÿ‡จ',
'EE': '๐Ÿ‡ช๐Ÿ‡ช',
'EG': '๐Ÿ‡ช๐Ÿ‡ฌ',
'EH': '๐Ÿ‡ช๐Ÿ‡ญ',
'ER': '๐Ÿ‡ช๐Ÿ‡ท',
'ES': '๐Ÿ‡ช๐Ÿ‡ธ',
'ET': '๐Ÿ‡ช๐Ÿ‡น',
'El': '๐Ÿ‡ช๐Ÿ‡ฑ',
'FI': '๐Ÿ‡ซ๐Ÿ‡ฎ',
'FJ': '๐Ÿ‡ซ๐Ÿ‡ฏ',
'FK': '๐Ÿ‡ซ๐Ÿ‡ฐ',
'FM': '๐Ÿ‡ซ๐Ÿ‡ฒ',
'FO': '๐Ÿ‡ซ๐Ÿ‡ด',
'FR': '๐Ÿ‡ซ๐Ÿ‡ท',
'GA': '๐Ÿ‡ฌ๐Ÿ‡ฆ',
'GB': '๐Ÿ‡ฌ๐Ÿ‡ง',
'GD': '๐Ÿ‡ฌ๐Ÿ‡ฉ',
'GE': '๐Ÿ‡ฌ๐Ÿ‡ช',
'GF': '๐Ÿ‡ฌ๐Ÿ‡ซ',
'GG': '๐Ÿ‡ฌ๐Ÿ‡ฌ',
'GH': '๐Ÿ‡ฌ๐Ÿ‡ญ',
'GI': '๐Ÿ‡ฌ๐Ÿ‡ฎ',
'GL': '๐Ÿ‡ฌ๐Ÿ‡ฑ',
'GM': '๐Ÿ‡ฌ๐Ÿ‡ฒ',
'GN': '๐Ÿ‡ฌ๐Ÿ‡ณ',
'GP': '๐Ÿ‡ฌ๐Ÿ‡ต',
'GQ': '๐Ÿ‡ฌ๐Ÿ‡ถ',
'GR': '๐Ÿ‡ฌ๐Ÿ‡ท',
'GS': '๐Ÿ‡ฌ๐Ÿ‡ธ',
'GT': '๐Ÿ‡ฌ๐Ÿ‡น',
'GU': '๐Ÿ‡ฌ๐Ÿ‡บ',
'GW': '๐Ÿ‡ฌ๐Ÿ‡ผ',
'GY': '๐Ÿ‡ฌ๐Ÿ‡พ',
'HK': '๐Ÿ‡ญ๐Ÿ‡ฐ',
'HM': '๐Ÿ‡ญ๐Ÿ‡ฒ',
'HN': '๐Ÿ‡ญ๐Ÿ‡ณ',
'HR': '๐Ÿ‡ญ๐Ÿ‡ท',
'HT': '๐Ÿ‡ญ๐Ÿ‡น',
'HU': '๐Ÿ‡ญ๐Ÿ‡บ',
'ID': '๐Ÿ‡ฎ๐Ÿ‡ฉ',
'IE': '๐Ÿ‡ฎ๐Ÿ‡ช',
'IL': '๐Ÿ‡ฎ๐Ÿ‡ฑ',
'IM': '๐Ÿ‡ฎ๐Ÿ‡ฒ',
'IN': '๐Ÿ‡ฎ๐Ÿ‡ณ',
'IO': '๐Ÿ‡ฎ๐Ÿ‡ด',
'IQ': '๐Ÿ‡ฎ๐Ÿ‡ถ',
'IR': '๐Ÿ‡ฎ๐Ÿ‡ท',
'IS': '๐Ÿ‡ฎ๐Ÿ‡ธ',
'IT': '๐Ÿ‡ฎ๐Ÿ‡น',
'JE': '๐Ÿ‡ฏ๐Ÿ‡ช',
'JM': '๐Ÿ‡ฏ๐Ÿ‡ฒ',
'JO': '๐Ÿ‡ฏ๐Ÿ‡ด',
'JP': '๐Ÿ‡ฏ๐Ÿ‡ต',
'KE': '๐Ÿ‡ฐ๐Ÿ‡ช',
'KG': '๐Ÿ‡ฐ๐Ÿ‡ฌ',
'KH': '๐Ÿ‡ฐ๐Ÿ‡ญ',
'KI': '๐Ÿ‡ฐ๐Ÿ‡ฎ',
'KM': '๐Ÿ‡ฐ๐Ÿ‡ฒ',
'KN': '๐Ÿ‡ฐ๐Ÿ‡ณ',
'KP': '๐Ÿ‡ฐ๐Ÿ‡ต',
'KR': '๐Ÿ‡ฐ๐Ÿ‡ท',
'KW': '๐Ÿ‡ฐ๐Ÿ‡ผ',
'KY': '๐Ÿ‡ฐ๐Ÿ‡พ',
'KZ': '๐Ÿ‡ฐ๐Ÿ‡ฟ',
'LA': '๐Ÿ‡ฑ๐Ÿ‡ฆ',
'LB': '๐Ÿ‡ฑ๐Ÿ‡ง',
'LC': '๐Ÿ‡ฑ๐Ÿ‡จ',
'LI': '๐Ÿ‡ฑ๐Ÿ‡ฎ',
'LK': '๐Ÿ‡ฑ๐Ÿ‡ฐ',
'LR': '๐Ÿ‡ฑ๐Ÿ‡ท',
'LS': '๐Ÿ‡ฑ๐Ÿ‡ธ',
'LT': '๐Ÿ‡ฑ๐Ÿ‡น',
'LU': '๐Ÿ‡ฑ๐Ÿ‡บ',
'LV': '๐Ÿ‡ฑ๐Ÿ‡ป',
'LY': '๐Ÿ‡ฑ๐Ÿ‡พ',
'MA': '๐Ÿ‡ฒ๐Ÿ‡ฆ',
'MC': '๐Ÿ‡ฒ๐Ÿ‡จ',
'MD': '๐Ÿ‡ฒ๐Ÿ‡ฉ',
'ME': '๐Ÿ‡ฒ๐Ÿ‡ช',
'MF': '๐Ÿ‡ฒ๐Ÿ‡ซ',
'MG': '๐Ÿ‡ฒ๐Ÿ‡ฌ',
'MH': '๐Ÿ‡ฒ๐Ÿ‡ญ',
'MK': '๐Ÿ‡ฒ๐Ÿ‡ฐ',
'ML': '๐Ÿ‡ฒ๐Ÿ‡ฑ',
'MM': '๐Ÿ‡ฒ๐Ÿ‡ฒ',
'MN': '๐Ÿ‡ฒ๐Ÿ‡ณ',
'MO': '๐Ÿ‡ฒ๐Ÿ‡ด',
'MP': '๐Ÿ‡ฒ๐Ÿ‡ต',
'MQ': '๐Ÿ‡ฒ๐Ÿ‡ถ',
'MR': '๐Ÿ‡ฒ๐Ÿ‡ท',
'MS': '๐Ÿ‡ฒ๐Ÿ‡ธ',
'MT': '๐Ÿ‡ฒ๐Ÿ‡น',
'MU': '๐Ÿ‡ฒ๐Ÿ‡บ',
'MV': '๐Ÿ‡ฒ๐Ÿ‡ป',
'MW': '๐Ÿ‡ฒ๐Ÿ‡ผ',
'MX': '๐Ÿ‡ฒ๐Ÿ‡ฝ',
'MY': '๐Ÿ‡ฒ๐Ÿ‡พ',
'MZ': '๐Ÿ‡ฒ๐Ÿ‡ฟ',
'NA': '๐Ÿ‡ณ๐Ÿ‡ฆ',
'NC': '๐Ÿ‡ณ๐Ÿ‡จ',
'NE': '๐Ÿ‡ณ๐Ÿ‡ช',
'NF': '๐Ÿ‡ณ๐Ÿ‡ซ',
'NG': '๐Ÿ‡ณ๐Ÿ‡ฌ',
'NI': '๐Ÿ‡ณ๐Ÿ‡ฎ',
'NL': '๐Ÿ‡ณ๐Ÿ‡ฑ',
'NO': '๐Ÿ‡ณ๐Ÿ‡ด',
'NP': '๐Ÿ‡ณ๐Ÿ‡ต',
'NR': '๐Ÿ‡ณ๐Ÿ‡ท',
'NU': '๐Ÿ‡ณ๐Ÿ‡บ',
'NZ': '๐Ÿ‡ณ๐Ÿ‡ฟ',
'OM': '๐Ÿ‡ด๐Ÿ‡ฒ',
'PA': '๐Ÿ‡ต๐Ÿ‡ฆ',
'PE': '๐Ÿ‡ต๐Ÿ‡ช',
'PF': '๐Ÿ‡ต๐Ÿ‡ซ',
'PG': '๐Ÿ‡ต๐Ÿ‡ฌ',
'PH': '๐Ÿ‡ต๐Ÿ‡ญ',
'PK': '๐Ÿ‡ต๐Ÿ‡ฐ',
'PL': '๐Ÿ‡ต๐Ÿ‡ฑ',
'PM': '๐Ÿ‡ต๐Ÿ‡ฒ',
'PN': '๐Ÿ‡ต๐Ÿ‡ณ',
'PR': '๐Ÿ‡ต๐Ÿ‡ท',
'PS': '๐Ÿ‡ต๐Ÿ‡ธ',
'PT': '๐Ÿ‡ต๐Ÿ‡น',
'PW': '๐Ÿ‡ต๐Ÿ‡ผ',
'PY': '๐Ÿ‡ต๐Ÿ‡พ',
'QA': '๐Ÿ‡ถ๐Ÿ‡ฆ',
'RE': '๐Ÿ‡ท๐Ÿ‡ช',
'RO': '๐Ÿ‡ท๐Ÿ‡ด',
'RS': '๐Ÿ‡ท๐Ÿ‡ธ',
'RU': '๐Ÿ‡ท๐Ÿ‡บ',
'RW': '๐Ÿ‡ท๐Ÿ‡ผ',
'SA': '๐Ÿ‡ธ๐Ÿ‡ฆ',
'SB': '๐Ÿ‡ธ๐Ÿ‡ง',
'SC': '๐Ÿ‡ธ๐Ÿ‡จ',
'SD': '๐Ÿ‡ธ๐Ÿ‡ฉ',
'SE': '๐Ÿ‡ธ๐Ÿ‡ช',
'SG': '๐Ÿ‡ธ๐Ÿ‡ฌ',
'SH': '๐Ÿ‡ธ๐Ÿ‡ญ',
'SI': '๐Ÿ‡ธ๐Ÿ‡ฎ',
'SJ': '๐Ÿ‡ธ๐Ÿ‡ฏ',
'SK': '๐Ÿ‡ธ๐Ÿ‡ฐ',
'SL': '๐Ÿ‡ธ๐Ÿ‡ฑ',
'SM': '๐Ÿ‡ธ๐Ÿ‡ฒ',
'SN': '๐Ÿ‡ธ๐Ÿ‡ณ',
'SO': '๐Ÿ‡ธ๐Ÿ‡ด',
'SR': '๐Ÿ‡ธ๐Ÿ‡ท',
'SS': '๐Ÿ‡ธ๐Ÿ‡ธ',
'ST': '๐Ÿ‡ธ๐Ÿ‡น',
'SV': '๐Ÿ‡ธ๐Ÿ‡ป',
'SY': '๐Ÿ‡ธ๐Ÿ‡พ',
'SZ': '๐Ÿ‡ธ๐Ÿ‡ฟ',
'TC': '๐Ÿ‡น๐Ÿ‡จ',
'TD': '๐Ÿ‡น๐Ÿ‡ฉ',
'TF': '๐Ÿ‡น๐Ÿ‡ซ',
'TG': '๐Ÿ‡น๐Ÿ‡ฌ',
'TH': '๐Ÿ‡น๐Ÿ‡ญ',
'TJ': '๐Ÿ‡น๐Ÿ‡ฏ',
'TK': '๐Ÿ‡น๐Ÿ‡ฐ',
'TL': '๐Ÿ‡น๐Ÿ‡ฑ',
'TM': '๐Ÿ‡น๐Ÿ‡ฒ',
'TN': '๐Ÿ‡น๐Ÿ‡ณ',
'TO': '๐Ÿ‡น๐Ÿ‡ด',
'TR': '๐Ÿ‡น๐Ÿ‡ท',
'TT': '๐Ÿ‡น๐Ÿ‡น',
'TV': '๐Ÿ‡น๐Ÿ‡ป',
'TW': '๐Ÿ‡น๐Ÿ‡ผ',
'TZ': '๐Ÿ‡น๐Ÿ‡ฟ',
'UA': '๐Ÿ‡บ๐Ÿ‡ฆ',
'UG': '๐Ÿ‡บ๐Ÿ‡ฌ',
'UM': '๐Ÿ‡บ๐Ÿ‡ฒ',
'US': '๐Ÿ‡บ๐Ÿ‡ธ',
'UY': '๐Ÿ‡บ๐Ÿ‡พ',
'UZ': '๐Ÿ‡บ๐Ÿ‡ฟ',
'VA': '๐Ÿ‡ป๐Ÿ‡ฆ',
'VC': '๐Ÿ‡ป๐Ÿ‡จ',
'VE': '๐Ÿ‡ป๐Ÿ‡ช',
'VG': '๐Ÿ‡ป๐Ÿ‡ฌ',
'VI': '๐Ÿ‡ป๐Ÿ‡ฎ',
'VN': '๐Ÿ‡ป๐Ÿ‡ณ',
'VU': '๐Ÿ‡ป๐Ÿ‡บ',
'WF': '๐Ÿ‡ผ๐Ÿ‡ซ',
'WS': '๐Ÿ‡ผ๐Ÿ‡ธ',
'YE': '๐Ÿ‡พ๐Ÿ‡ช',
'YT': '๐Ÿ‡พ๐Ÿ‡น',
'ZA': '๐Ÿ‡ฟ๐Ÿ‡ฆ',
'ZM': '๐Ÿ‡ฟ๐Ÿ‡ฒ',
'ZW': '๐Ÿ‡ฟ๐Ÿ‡ผ'}

full script: https://gist.github.com/darighost/b38236f236bb581a4b56093ffe14fa01

Two of these are broken, but that can be fixed manually but someone with (even more) time and dedication than me.

I hope this is helpful, love this API btw.

Fair point.