Exemple #1
0
class DNSEver(object):

    ready = False
    nameservers = []

    def __init__(self, username=None, password=None):
        self.browser = Browser()
        if any((username, password,)):
            self.open()
            self.login(username, password)

    def open(self):
        self.browser.open('http://kr.dnsever.com')
        self._open = True

    def login(self, username, password):
        self.browser.select_form(name='form')
        self.browser['login_id'] = username
        self.browser['login_password'] = password
        self.browser.submit()
        self.browser.open('/start.html')
        self.browser.select_form(name='form')
        self.skey = self.browser['skey']
        self.doc = l.document_fromstring(self.browser.response().read())
       
        # get nameservers
        self.nameservers = zip(
            ['{0}dnsever.com'.format(el.text) for el in self.doc.cssselect(
                '#nsinfobox td:not(.mn) > b')],
            [el.text for el in self.doc.cssselect(
                '#nsinfobox td.mn table tr:nth-child(3n-1) td:nth-child(2)')]
        )

        # get domains
        self.domains = DomainCollection(Domain(el.text) for el in self.doc.cssselect('.domainName a'))
        self.ready = True
        self.domains.session = self

    def get_items(menu):
        # TODO: implement
        return menu

    def checked_values(menu, values):
        # TODO: impelement
        return values

    def api(self, command, values=None):
        # TODO: implement
        if command in ['add_a', 'change_a', 'delete_a']:
            selected_menu = 'edita'

        self.browser.post('/start.html', {
            'command': command,
            'selected_menu': selected_menu,
            'skey': self.skey,
            'check[]': self.checked_values(selected_menu, values)
        })

    def __iter__(self):
        return self.domains

    def __getitem__(self, key):
        return self.domains[key]