added eu domain
authorRichard Penman
Wed, 05 Mar 2014 14:55:43 -0500
changeset 20 54fb35d6d1ae
parent 19 187df5b7a44a
child 21 c0b7560f6446
added eu domain
whois/parser.py
--- a/whois/parser.py	Wed Mar 05 14:52:03 2014 -0500
+++ b/whois/parser.py	Wed Mar 05 14:55:43 2014 -0500
@@ -76,7 +76,7 @@
                 if isinstance(value, basestring):
                     # try casting to date format
                     value = cast_date(value.strip())
-                if value not in values:
+                if value and value not in values:
                     # avoid duplicates
                     values.append(value)
             if len(values) == 1:
@@ -134,6 +134,8 @@
             return WhoisPl(domain, text)
         elif domain.endswith('.br'):
             return WhoisBr(domain,text)
+        elif domain.endswith('.eu'):
+            return WhoisEu(domain,text)
         elif domain.endswith('.kr'):
             return WhoisKr(domain,text)
         else:
@@ -488,6 +490,27 @@
            WhoisEntry.__init__(self, domain, text, self.regex)
 
 
+class WhoisEu(WhoisEntry):
+    """Whois parser for .eu domains
+    """
+    regex = {
+        'domain_name': r'Domain:\s*([^\n\r]+)',
+        'tech_name': r'Technical:\s*Name:\s*([^\n\r]+)',
+        'tech_org': r'Technical:\s*Name:\s*[^\n\r]+\s*Organisation:\s*([^\n\r]+)',
+        'tech_phone': r'Technical:\s*Name:\s*[^\n\r]+\s*Organisation:\s*[^\n\r]+\s*Language:\s*[^\n\r]+\s*Phone:\s*([^\n\r]+)',
+        'tech_fax': r'Technical:\s*Name:\s*[^\n\r]+\s*Organisation:\s*[^\n\r]+\s*Language:\s*[^\n\r]+\s*Phone:\s*[^\n\r]+\s*Fax:\s*([^\n\r]+)',
+        'tech_email': r'Technical:\s*Name:\s*[^\n\r]+\s*Organisation:\s*[^\n\r]+\s*Language:\s*[^\n\r]+\s*Phone:\s*[^\n\r]+\s*Fax:\s*[^\n\r]+\s*Email:\s*([^\n\r]+)',
+        'registrar': r'Registrar:\s*Name:\s*([^\n\r]+)',
+        'name_servers': r'Name servers:\s*([^\n\r]+)\s*([^\n\r]*)\s*([^\n\r]*)\s*([^\n\r]*)\s*([^\n\r]*)\s*([^\n\r]*)\s*([^\n\r]*)\s*([^\n\r]*)\s*([^\n\r]*)\s*Keys',  # list of name servers
+    }
+
+    def __init__(self, domain, text):
+        if text.strip() == 'Status: AVAILABLE':
+            raise PywhoisError(text)
+        else:
+            WhoisEntry.__init__(self, domain, text, self.regex)
+
+
 class WhoisBr(WhoisEntry):
    """Whois parser for .br domains
    """