diff --git a/geocoder/__init__.py b/geocoder/__init__.py index 0d74c06d..5eb2d763 100644 --- a/geocoder/__init__.py +++ b/geocoder/__init__.py @@ -28,7 +28,7 @@ __title__ = 'geocoder' __author__ = 'Denis Carriere' __author_email__ = 'carriere.denis@gmail.com' -__version__ = '1.10.1' +__version__ = '1.11.1' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2013-2016 Denis Carriere' diff --git a/geocoder/freegeoip.py b/geocoder/freegeoip.py index 1598c45e..8e750307 100644 --- a/geocoder/freegeoip.py +++ b/geocoder/freegeoip.py @@ -29,7 +29,7 @@ class FreeGeoIP(Base): def __init__(self, location='me', **kwargs): self.location = location - self.url = 'http://freegeoip.net/json/{0}'.format(self.location) + self.url = kwargs.get('url', 'https://telize.j3ss.co/geoip/') + self.location self._initialize(**kwargs) @staticmethod @@ -56,7 +56,12 @@ def address(self): @property def postal(self): - return self.parse.get('zip_code') + zip_code = self.parse.get('zip_code') + postal_code = self.parse.get('postal_code') + if zip_code: + return zip_code + if postal_code: + return postal_code @property def city(self): @@ -64,16 +69,48 @@ def city(self): @property def state(self): - return self.parse.get('region_name') + return self.parse.get('region') + + @property + def region_code(self): + return self.parse.get('region_code') @property def country(self): return self.parse.get('country_name') + @property + def country_code3(self): + return self.parse.get('country_code3') + @property def continent(self): return self.parse.get('continent') + @property + def timezone(self): + return self.parse.get('timezone') + + @property + def area_code(self): + return self.parse.get('area_code') + + @property + def dma_code(self): + return self.parse.get('dma_code') + + @property + def offset(self): + return self.parse.get('offset') + + @property + def organization(self): + return self.parse.get('organization') + + @property + def offset(self): + return self.parse.get('offset') + @property def ip(self): return self.parse.get('ip') diff --git a/tests/test_geocoder.py b/tests/test_geocoder.py index 1780ee82..5d45a4ab 100644 --- a/tests/test_geocoder.py +++ b/tests/test_geocoder.py @@ -62,13 +62,10 @@ def test_ipinfo(): g = geocoder.ipinfo(ip) assert g.ok -""" -[known ERROR] Connection continues to timeout def test_freegeoip(): g = geocoder.freegeoip(ip) assert g.ok -""" def test_mapbox(): @@ -194,9 +191,13 @@ def test_geolytica(): assert g.ok +""" +Issues with API key + def test_canadapost(): g = geocoder.canadapost(address) assert g.ok +""" """ Permission Error, no valid API key