#3271: Support pygeoip for ip lookups
--------------------+-------------------
  Reporter:  Cas    |      Owner:
      Type:  bug    |     Status:  new
  Priority:  minor  |  Milestone:  2.0.4
 Component:  Core   |    Version:  2.0.0
Resolution:         |   Keywords:
--------------------+-------------------
Description changed by Cas:

Old description:

> Alpine linux only packages the pure-python
> [https://pypi.org/project/pygeoip/ pygeoip] as `py3-geoip` which is not
> the same as the [https://pypi.org/project/GeoIP/ MaxMind GeoIP]
> (`python3-geoip` on Ubuntu).
>
> However they packages are compatible with some minor changes:
>
> {{{#!diff
> diff --git deluge/core/preferencesmanager.py
> deluge/core/preferencesmanager.py
> index e3c935c99..19dd3b2fb 100644
> --- deluge/core/preferencesmanager.py
> +++ deluge/core/preferencesmanager.py
> @@ -24,10 +24,15 @@
>  from deluge._libtorrent import lt
>  from deluge.event import ConfigValueChangedEvent
>
> +GeoIP = None
>  try:
> -    import GeoIP
> +    from GeoIP import GeoIP
>  except ImportError:
> -    GeoIP = None
> +    try:
> +        from pygeoip import GeoIP
> +    except:
> +        ImportError:
> +            pass
>
>  try:
>      from urllib.parse import quote_plus
> @@ -464,9 +469,7 @@ def _on_set_geoip_db_location(self, key,
> geoipdb_path):
>          # Load the GeoIP DB for country look-ups if available
>          if os.path.exists(geoipdb_path):
>              try:
> -                self.core.geoip_instance = GeoIP.open(
> -                    geoipdb_path, GeoIP.GEOIP_STANDARD
> -                )
> +                self.core.geoip_instance = GeoIP(geoipdb_path, 0)
>              except AttributeError:
>                  log.warning('GeoIP Unavailable')
>          else:
> }}}

New description:

 Alpine linux only packages the pure-python
 [https://pypi.org/project/pygeoip/ pygeoip] as `py3-geoip` which is not
 the same as the [https://pypi.org/project/GeoIP/ MaxMind GeoIP]
 (`python3-geoip` on Ubuntu).

 However they packages are compatible with some minor changes:

 {{{#!diff
 diff --git deluge/core/preferencesmanager.py
 deluge/core/preferencesmanager.py
 index e3c935c99..19dd3b2fb 100644
 --- deluge/core/preferencesmanager.py
 +++ deluge/core/preferencesmanager.py
 @@ -24,10 +24,15 @@
  from deluge._libtorrent import lt
  from deluge.event import ConfigValueChangedEvent

 +GeoIP = None
  try:
 -    import GeoIP
 +    from GeoIP import GeoIP
  except ImportError:
 -    GeoIP = None
 +    try:
 +        from pygeoip import GeoIP
 +    except ImportError:
 +        pass

  try:
      from urllib.parse import quote_plus
 @@ -464,9 +469,7 @@ def _on_set_geoip_db_location(self, key,
 geoipdb_path):
          # Load the GeoIP DB for country look-ups if available
          if os.path.exists(geoipdb_path):
              try:
 -                self.core.geoip_instance = GeoIP.open(
 -                    geoipdb_path, GeoIP.GEOIP_STANDARD
 -                )
 +                self.core.geoip_instance = GeoIP(geoipdb_path, 0)
              except AttributeError:
                  log.warning('GeoIP Unavailable')
          else:
 }}}

--

--
Ticket URL: <https://dev.deluge-torrent.org/ticket/3271#comment:1>
Deluge <https://deluge-torrent.org/>
Deluge Project

-- 
You received this message because you are subscribed to the Google Groups 
"Deluge Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/deluge-dev.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/deluge-dev/057.456feb1e603fbe11d9dc5098375bc5a9%40deluge-torrent.org.
For more options, visit https://groups.google.com/d/optout.

Reply via email to