diff --git a/weboob/backends/geolocip2/__init__.py b/weboob/backends/geolocip2/__init__.py new file mode 100644 index 00000000..833bcb91 --- /dev/null +++ b/weboob/backends/geolocip2/__init__.py @@ -0,0 +1,3 @@ +from .backend import GeolocIp2Backend + +__all__ = ['GeolocIp2Backend'] diff --git a/weboob/backends/geolocip2/backend.py b/weboob/backends/geolocip2/backend.py new file mode 100644 index 00000000..2d23ac27 --- /dev/null +++ b/weboob/backends/geolocip2/backend.py @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- + +# Copyright(C) 2010 Julien Veyssier +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, version 3 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +from __future__ import with_statement + +from weboob.capabilities.geolocip import ICapGeolocIp, IpLocation +from weboob.capabilities.base import NotAvailable +from weboob.tools.backend import BaseBackend +from weboob.tools.browser import BaseBrowser +from weboob.tools.value import ValuesDict, Value + + +__all__ = ['GeolocIp2Backend'] + + +class GeolocIp2Backend(BaseBackend, ICapGeolocIp): + NAME = 'geolocip2' + MAINTAINER = 'Julien Veyssier' + EMAIL = 'julien.veyssier@aiur.fr' + VERSION = '0.4' + LICENSE = 'GPLv3' + DESCRIPTION = u"IP Adresses geolocalisation with the site www.geolocip.com" + BROWSER = BaseBrowser + + def create_default_browser(self): + return self.create_browser() + + def get_location(self, ipaddr): + with self.browser: + + content = self.browser.readurl('http://www.geolocip.com/?s[ip]=%s&commit=locate+IP!' % str(ipaddr)) + + tab = {} + last_line = '' + line = '' + for line in content.split('\n'): + if len(line.split('