generated from mwc/lab_weather
69 lines
1.7 KiB
Python
69 lines
1.7 KiB
Python
#!/usr/bin/python
|
|
# coding: utf8
|
|
|
|
from __future__ import absolute_import
|
|
import time
|
|
from geocoder.base import OneResult, MultipleResultsQuery
|
|
from geocoder.keys import google_key
|
|
from geocoder.location import Location
|
|
|
|
|
|
class TimezoneResult(OneResult):
|
|
|
|
def __repr__(self):
|
|
return u'<[{}] [{}]>'.format(self.status, self.timeZoneName)
|
|
|
|
@property
|
|
def ok(self):
|
|
return bool(self.timeZoneName)
|
|
|
|
@property
|
|
def timeZoneId(self):
|
|
return self.raw.get('timeZoneId')
|
|
|
|
@property
|
|
def timeZoneName(self):
|
|
return self.raw.get('timeZoneName')
|
|
|
|
@property
|
|
def rawOffset(self):
|
|
return self.raw.get('rawOffset')
|
|
|
|
@property
|
|
def dstOffset(self):
|
|
return self.raw.get('dstOffset')
|
|
|
|
|
|
class TimezoneQuery(MultipleResultsQuery):
|
|
"""
|
|
Google Time Zone API
|
|
====================
|
|
The Time Zone API provides time offset data for locations on the surface of the earth.
|
|
Requesting the time zone information for a specific Latitude/Longitude pair will
|
|
return the name of that time zone, the time offset from UTC, and the Daylight Savings offset.
|
|
|
|
API Reference
|
|
-------------
|
|
https://developers.google.com/maps/documentation/timezone/
|
|
"""
|
|
provider = 'google'
|
|
method = 'timezone'
|
|
|
|
_URL = 'https://maps.googleapis.com/maps/api/timezone/json'
|
|
_RESULT_CLASS = TimezoneResult
|
|
_KEY = google_key
|
|
|
|
def _build_params(self, location, provider_key, **kwargs):
|
|
return {
|
|
'location': str(Location(location)),
|
|
'timestamp': kwargs.get('timestamp', time.time()),
|
|
}
|
|
|
|
def _adapt_results(self, json_response):
|
|
return [json_response]
|
|
|
|
|
|
if __name__ == '__main__':
|
|
g = TimezoneQuery([45.5375801, -75.2465979])
|
|
g.debug()
|