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]