import os
import re

import ox

from django.core.management.base import BaseCommand
from django.conf import settings


class Command(BaseCommand):
    """
    """
    help = 'update geoip database'
    args = ''

    def handle(self, **options):
        force = False
        path = settings.GEOIP_PATH / 'GeoLite2-City.mmdb'
        index = ox.net.read_url('https://db-ip.com/db/download/ip-to-city-lite').decode()
        match = re.compile('href=[\'"](http.*.mmdb.gz)').findall(index)
        if match:
            url = match[0]
            print('download', url)
            ox.net.save_url(url, "%s.gz" % path)
            if os.path.exists(path):
                os.unlink(path)
            os.system('gunzip "%s.gz"' % path)
        else:
            print('failed to download GeoLite2-City.mmdb')