#!/usr/bin/env python3

import os
import xml.etree.ElementTree as ET

def kmsDB2Dict():
        path = os.path.join(os.path.dirname(__file__), 'KmsDataBase.xml')
        root = ET.parse(path).getroot()

        kmsdb, child1, child2, child3 = [ [] for _ in range(4) ]

        ## Get winbuilds.
        for winbuild in root.iter('WinBuild'):
                child1.append(winbuild.attrib)
        
        kmsdb.append(child1)
        
        ## Get csvlkitem data.
        child1 = []
        for csvlk in root.iter('CsvlkItem'):
                for activ in csvlk.iter('Activate'):
                        child2.append(activ.attrib['KmsItem'])
                        csvlk.attrib.update({'Activate' : child2})
                child1.append(csvlk.attrib)
                child2 = []
                
        kmsdb.append(child1)

        ## Get appitem data.
        child1 = []
        for app in root.iter('AppItem'):
                for kms in app.iter('KmsItem'):
                        for sku in kms.iter('SkuItem'):
                                child3.append(sku.attrib)
                        kms.attrib.update({'SkuItems' : child3})
                        child2.append(kms.attrib)
                        child3 = []

                app.attrib.update({'KmsItems' : child2})       
                child1.append(app.attrib)
                child2 = []
                
        kmsdb.append(child1)

        return kmsdb