from ftplib import FTP
import os

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
DATA_DIR = os.path.join(BASE_DIR, "")
os.makedirs(DATA_DIR, exist_ok=True)

def fetch_weather_xml():
    ftp = FTP('ftp.bom.gov.au')
    ftp.login()

    files = {
        "IDQ11295.xml": "/anon/gen/fwo/IDQ11295.xml",  # Queensland
        "IDN11060.xml": "/anon/gen/fwo/IDN11060.xml",  # New South Wales
        "IDV10753.xml": "/anon/gen/fwo/IDV10753.xml",  # Victoria
        "IDT16710.xml": "/anon/gen/fwo/IDT16710.xml",  # Tasmania
    }

    for filename, path in files.items():
        print(f"📥 Downloading {filename} ...")
        output_path = os.path.join(DATA_DIR, filename)
        with open(output_path, "wb") as f:
            ftp.retrbinary(f"RETR {path}", f.write)
        print(f"▢ Fetched {filename}.")


    ftp.quit()
    print(f"✅ Fetching complete. {DATA_DIR}")

fetch_weather_xml()

# SINGLE VERSION BELOW

# from ftplib import FTP

# def fetch_weather_xml():
    # ftp = FTP('ftp.bom.gov.au')
    # ftp.login()
    # with open('IDQ11295.xml', 'wb') as f:
        # ftp.retrbinary('RETR /anon/gen/fwo/IDQ11295.xml', f.write)
    # ftp.quit()

# fetch_weather_xml()
