Added support for .ai domains
authorsoulmachine <soulmachine@gmail.com>
Tue, 29 Aug 2017 23:09:05 -0700
changeset 133 29e9190319e5
parent 131 193a62737030
child 134 3ff7f09ea24a
Added support for .ai domains
whois/parser.py
whois/whois.py
--- a/whois/parser.py	Thu Aug 24 15:52:15 2017 +0000
+++ b/whois/parser.py	Tue Aug 29 23:09:05 2017 -0700
@@ -255,6 +255,8 @@
             return WhoisDk(domain, text)
         elif domain.endswith('.it'):
             return WhoisIt(domain, text)
+        elif domain.endswith('.ai'):
+            return WhoisAi(domain, text)
         else:
             return WhoisEntry(domain, text)
 
@@ -1215,3 +1217,24 @@
             raise PywhoisError(text)
         else:
             WhoisEntry.__init__(self, domain, text, self.regex)
+
+class WhoisAi(WhoisEntry):
+    """Whois parser for .ai domains
+    """
+    regex = {
+        'domain_name':      'Complete Domain Name\.*: *(.+)',
+        'name':             'Name \(Last, First\)\.*: *(.+)',
+        'org':              'Organization Name\.*: *(.+)',
+        'address':          'Street Address\.*: *(.+)',
+        'city':             'City\.*: *(.+)',
+        'state':            'State\.*: *(.+)',
+        'zipcode':          'Postal Code\.*: *(\d+)',
+        'country':          'Country\.*: *(.+)',
+        'name_servers':     'Server Hostname\.*: *(.+)',
+    }
+
+    def __init__(self, domain, text):
+        if 'not registered' in text:
+            raise PywhoisError(text)
+        else:
+            WhoisEntry.__init__(self, domain, text, self.regex)
--- a/whois/whois.py	Thu Aug 24 15:52:15 2017 +0000
+++ b/whois/whois.py	Tue Aug 29 23:09:05 2017 -0700
@@ -59,6 +59,7 @@
     IANAHOST = "whois.iana.org"
     PANDIHOST = "whois.pandi.or.id"
     DENICHOST = "de.whois-servers.net"
+    AI_HOST = "whois.ai"
     DEFAULT_PORT = "nicname"
 
     WHOIS_RECURSE = 0x01
@@ -152,7 +153,10 @@
         tld = domain[-1]
         if tld[0].isdigit():
             return NICClient.ANICHOST
-        return tld + NICClient.QNICHOST_TAIL
+        elif tld == 'ai':
+            return NICClient.AI_HOST
+        else:
+            return tld + NICClient.QNICHOST_TAIL
 
     def whois_lookup(self, options, query_arg, flags):
         """Main entry point: Perform initial lookup on TLD whois server,