summaryrefslogtreecommitdiff
path: root/data.py
blob: 200d3ba2d0a4b4a5108399d5f18fc6b5aa017b70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from xml.etree.ElementTree import ElementTree

class WhoisNetwork():
    def __init__(self, name):
        self.name = name
        self.domain = None
        self.ip_blocks = []
        self.data = {}

class WhoisData():
    def __init__(self, config):
        self.networks = []
        self.config = config

    def parse_config(self): pass
    def load_data(self): pass

    def get_networks(self):
        if self.networks == None:
            self.load_data()

        return self.networks

class WhoisDataXML(WhoisData):
    def parse_config():
        self.data_file = self.config.get('Storage', 'xml_file')
        
    def load_data(self):
        root = ElementTree(file=self.data_file).getroot()
        for elem in root:
            network = WhoisNetwork(elem.attrib['name'])
            for e in elem:
                if e.tag == 'ip_block':
                    network.ip_blocks.append(e.text)
                else:
                    network.data[e.tag] = e.text
                    
            self.networks.append(network)
nihil fit ex nihilo