diff -r d6fcfa5acc7b -r 0b2e70f3f537 whois/parser.py --- a/whois/parser.py Thu Jun 02 13:56:11 2016 -0700 +++ b/whois/parser.py Thu Jun 02 13:57:58 2016 -0700 @@ -206,6 +206,8 @@ return WhoisBg(domain, text) elif domain.endswith('.de'): return WhoisDe(domain, text) + elif domain.endswith('.at'): + return WhoisAt(domain, text) elif domain.endswith('.ca'): return WhoisCa(domain, text) elif domain.endswith('.be'): @@ -773,6 +775,26 @@ else: WhoisEntry.__init__(self, domain, text, self.regex) +class WhoisAt(WhoisEntry): + """Whois parser for .at domains + """ + regex = { + 'name': 'personname: *(.+)', + 'org': 'organization: *(.+)', + 'address': 'street address: *(.+)', + 'zipcode': 'postal code: *(.+)', + 'city': 'city: *(.+)', + 'country': 'country: *(.+)', + 'phone': 'phone: *(.+)', + 'fax': 'fax-no: *(.+)', + 'changed': 'changed: *(.+)', + } + + def __init__(self, domain, text): + if 'Status: free' in text: + raise PywhoisError(text) + else: + WhoisEntry.__init__(self, domain, text, self.regex) class WhoisBe(WhoisEntry): """Whois parser for .be domains