mirror of
https://github.com/autistic-symposium/web3-starter-py.git
synced 2025-05-16 21:52:12 -04:00
35 lines
845 B
Python
35 lines
845 B
Python
import pytz
|
|
import datetime
|
|
from geopy.geocoders import Nominatim
|
|
from timezonefinder import TimezoneFinder
|
|
|
|
|
|
def _find_timezone(lat, lon) -> int:
|
|
obj = TimezoneFinder()
|
|
tzone = obj.timezone_at(lng=lon, lat=lat)
|
|
timezone = datetime.datetime.now(pytz.timezone(tzone)).strftime('%z')
|
|
try:
|
|
timezone = int(timezone[:-2])
|
|
except:
|
|
print('Error formatting timezone {}'.format(timezone))
|
|
return timezone
|
|
|
|
|
|
def get_location(data) -> dict:
|
|
try:
|
|
city = data['city']
|
|
except:
|
|
print('Data is ill-formatted: {}'.format(data))
|
|
|
|
geolocator = Nominatim(user_agent="$choices")
|
|
location = geolocator.geocode(city)
|
|
|
|
data = {
|
|
'lat': location.latitude,
|
|
'lon': location.longitude,
|
|
'tzone': _find_timezone(location.latitude, location.longitude)
|
|
}
|
|
|
|
return data
|
|
|
|
|