import os
import json
import requests
import traceback
import shutil

import xmltodict

import xml.etree.ElementTree as ET








def download_file( url ):
    #url='http://www.geo.euskadi.eus/contenidos/prevision_tiempo/met_forecast/opendata/met_forecast.xml'
    name=os.path.basename(url)
    fname='../dat/'+ name
    tname='/tmp/'+ name


    try:
        non=os.path.abspath(os.path.dirname(os.sys.argv[0]))
        os.chdir(non)

        if not os.path.exists('../dat'):
            os.makedirs('../dat')

        with open(tname, "wb") as file:
            response = requests.get(url)
            file.write(response.content)
        print("finish download. tname: %s stat: %s" %(tname,str(os.stat(tname)) ))

        if os.path.isfile(tname) and os.path.getsize(tname) > 0:
            tree1 = ET.parse(tname)
            shutil.move(tname, fname  )
            return fname

    except Exception as e:
        print("xml deskarga errorea. " + str(e))
        print(traceback.print_exc())
        return None
    

def met_forecast():
    url='http://www.geo.euskadi.eus/contenidos/prevision_tiempo/met_forecast/opendata/met_forecast.xml'
    fxml=download_file( url )
    if fxml:
        with open(fxml, 'rb' ) as f:
            #efemeride_guztiak = json.load(f)
            rd=xmltodict.parse( f.read() )
            print(json.dumps(rd, indent=4))

met_forecast()