--- a/whois/parser.py Fri Dec 01 18:18:55 2017 -0500
+++ b/whois/parser.py Sat Dec 02 23:34:58 2017 +0100
@@ -266,6 +266,8 @@
return WhoisIl(domain, text)
elif domain.endswith('.in'):
return WhoisIn(domain, text)
+ elif domain.endswith('.cat'):
+ return WhoisCat(domain, text)
else:
return WhoisEntry(domain, text)
@@ -1297,3 +1299,26 @@
raise PywhoisError(text)
else:
WhoisEntry.__init__(self, domain, text, self.regex)
+
+class WhoisCat(WhoisEntry):
+ """Whois parser for .cat domains
+ """
+ regex = {
+ 'domain_name': 'Domain Name: *(.+)',
+ 'registrar': 'Registrar: *(.+)',
+ 'updated_date': 'Updated Date: *(.+)',
+ 'creation_date': 'Creation Date: *(.+)',
+ 'expiration_date': 'Registry Expiry Date: *(.+)',
+ 'name_servers': 'Name Server: *(.+)',
+ 'status': 'Domain status: *(.+)',
+ 'emails': EMAIL_REGEX,
+ }
+
+ def __init__(self, domain, text):
+ if 'NOT FOUND' in text:
+ raise PywhoisError(text)
+ else:
+ # Merge base class regex with specifics
+ self._regex.update(self.regex)
+ self.regex = self._regex
+ WhoisEntry.__init__(self, domain, text, self.regex)