py-kms/py2-kms/kmsDB2Dict.py

46 lines
1.4 KiB
Python
Raw Normal View History

#!/usr/bin/env python
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