# GetFires gets passed the selection criteria for display
# and controls the fetch data, geofencing and merging of 
# fire data.  It then passes it back to the main application
# to display on the webpage.

import os
from urllib.request import urlopen
from TRG.Programs import FireLocations
from TRG.Programs import LargeFires
from NEWAFireInfo.settings import BASE_DIR

#def main(sellevel):
def inciwebcheck(name, inciweb):
    if inciweb.find('sort-value="' + name.title() + '"') !=-1:
        tempinciweb = inciweb[inciweb.find('sort-value="' + name.title() + '"'):]
        tempinciweb = tempinciweb[:tempinciweb.find('">' + name.title() + '</a>')]
        tempinciweb = tempinciweb[tempinciweb.find('/incident/')+10:]
        tempinciweb = tempinciweb[:tempinciweb.find('/')]
    else:
        tempinciweb = ''

    return tempinciweb

def main(allfires, kmllist, override):

    link = "https://inciweb.nwcg.gov/accessible-view/"

    f = urlopen(link)
    myfile = f.read()
    inciweb = myfile.decode()

    if override == "1":
        override = True
    else:
        override = False
    if allfires == 0:
        values = FireLocations.main(kmllist)
        values2 = LargeFires.main(kmllist, override)

    if allfires == 1:
        kmllist = ['1'] + kmllist
        values = FireLocations.main(kmllist)
        values2 = LargeFires.main(kmllist, override)

    # Merge WildCAD.csv & NIFC.csv files to GetFires.csv
    rvalues = []

        # Update WildCAD data and write to GeoFires
    nopull = []
    for i in range(len(values)):
        values[i] = values[i] + ['']
        if len(values[i]) < 14:
            pass
        else:
            if values[i][7].find('x') == True:
                latlong = ','
            else:
                latlong = values[i][7]

            for j in range(len(values2)):
                values2[j] = values2[j] + ['']
                if values[i][1].find(values2[j][1]) != -1:
                    nopull = nopull + [values2[j][1]]
                    if values2[j][3] == 'WF':
                        values[i][3] = 'Wildfire'
                    values[i][4] = values2[j][4]
                    latlong = values2[j][7]
                    values[i][10] = values2[j][10]
                    values[i][12] = values2[j][12]
                else:
                    if values[i][7].find('x') == True:
                        latlong = ','
                    else:
                        latlong = values[i][7]
                    values[i][12] = values[i][12]

            inciwebnumtemp = inciwebcheck(values[i][2],inciweb)
            if values[i][12].find('IN') != -1:
                values[i][13] = 'alert-danger'
            elif values[i][12].find('NEAR') != -1:
                values[i][13] = 'alert-warning'
            if inciwebcheck(values[i][2],inciweb) != -1:
                inciwebnum = inciwebnumtemp
            else:
                inciwebnum = ''

            rvalues = rvalues + [[values[i][0],values[i][1],values[i][2],values[i][3],values[i][4],values[i][5],values[i][6],latlong,values[i][8],values[i][9],values[i][10],values[i][11],values[i][12],values[i][13], inciwebnum]]

    for k in range(len(values2)):
        inciwebnumtemp = ''
        add = True
        values2[k] = values2[k] + ['']
        for inum in range(len(nopull)):
            if values2[k][1].find(nopull[inum]) != -1:
                add = False
        if add == True:
            if values2[k][3] == 'WF':
                values2[k][3] = 'Wildfire'
                inciwebnumtemp = inciwebcheck(values2[k][2],inciweb)
            latlong = values2[k][7]
            if values2[k][12].find('IN') != -1:
                values2[k][13] = 'alert-danger'
            elif values2[k][12].find('NEAR') != -1:
                values2[k][13] = 'alert-warning'
            if inciwebcheck(values2[k][2],inciweb) != -1:
                inciwebnum = inciwebnumtemp
            else:
                inciwebnum = ''

            rvalues = rvalues + [[values2[k][0],values2[k][1],values2[k][2],values2[k][3],values2[k][4],values2[k][5],values2[k][6],latlong,values2[k][8],values2[k][9],values2[k][10],values2[k][11],values2[k][12],values2[k][13],inciwebnum]]

    return rvalues

#main()
#input()
