import tarfile
import os
import io
import boto3
import requests

from urllib.parse import urlparse
from datetime import datetime, timedelta


s3 = boto3.resource(
    's3',
    region_name='us-east-2'
)

secrets_client = boto3.client('secretsmanager')

yesterday = datetime.now() - timedelta(1)
date = yesterday.strftime('%Y%m%d')

# Define the URL to download
url = f"https://download.maxmind.com/geoip/databases/GeoIP2-City/download?date={date}&edition_id=GeoIP2-City&suffix=tar.gz"

# MaxMind credentials
username = os.environ.get("MAXMIND_ACCOUNT")
password = os.environ.get('MAXMIND_KEY')

print ('username: ', username)
print ('password: ', password)

def handler(event, context):
    response = requests.get(url, auth=(username, password), allow_redirects=True)
    buffer = io.BytesIO(response.content)
    with tarfile.open(fileobj=buffer, mode='r:gz') as tar:
        for member in tar.getmembers():
            if member.isfile():
                file_content = tar.extractfile(member).read()
                file_name = member.name
                print(f"Filename: {file_name}")
                if '.mmdb' in member.name:
                    ob = s3.Object('suno-prod-maxmind-database', f'GeoIP2-City.mmdb')
                    ob.put(Body=file_content)
            else:
                print(f"{member.name} is a directory; skipping.")
