whois/parser.py
changeset 67 25bab46f7281
parent 66 07bc0807492c
child 75 81859268375c
equal deleted inserted replaced
66:07bc0807492c 67:25bab46f7281
    43 
    43 
    44 
    44 
    45 def datetime_parse(s):
    45 def datetime_parse(s):
    46     for known_format in KNOWN_FORMATS:
    46     for known_format in KNOWN_FORMATS:
    47         try:
    47         try:
    48             s = datetime.strptime(s.strip(), known_format)
    48             s = datetime.strptime(s, known_format)
    49             break
    49             break
    50         except ValueError as e:
    50         except ValueError as e:
    51             pass  # Wrong format, keep trying
    51             pass  # Wrong format, keep trying
    52     return s
    52     return s
    53 
    53 
    55     """Convert any date string found in WHOIS to a datetime object.
    55     """Convert any date string found in WHOIS to a datetime object.
    56     """
    56     """
    57     if DATEUTIL:
    57     if DATEUTIL:
    58         try:
    58         try:
    59             return dp.parse(
    59             return dp.parse(
    60                 s.strip(),
    60                 s,
    61                 tzinfos=tz_data,
    61                 tzinfos=tz_data,
    62                 dayfirst=dayfirst,
    62                 dayfirst=dayfirst,
    63                 yearfirst=yearfirst
    63                 yearfirst=yearfirst
    64             ).replace(tzinfo=None)
    64             ).replace(tzinfo=None)
    65         except Exception:
    65         except Exception:
   112         """
   112         """
   113         for attr, regex in self._regex.items():
   113         for attr, regex in self._regex.items():
   114             if regex:
   114             if regex:
   115                 values = []
   115                 values = []
   116                 for value in re.findall(regex, self.text, re.IGNORECASE):
   116                 for value in re.findall(regex, self.text, re.IGNORECASE):
   117                     if isinstance(value, basestring):
   117                     value = value.strip()
       
   118                     if value and isinstance(value, basestring):
   118                         # try casting to date format
   119                         # try casting to date format
   119                         value = cast_date(value.strip(),
   120                         value = cast_date(
   120                                           dayfirst=self.dayfirst,
   121                             value,
   121                                           yearfirst=self.yearfirst)
   122                             dayfirst=self.dayfirst,
       
   123                             yearfirst=self.yearfirst)
   122                     if value and value not in values:
   124                     if value and value not in values:
   123                         # avoid duplicates
   125                         # avoid duplicates
   124                         values.append(value)
   126                         values.append(value)
   125                 if len(values) == 1:
   127                 if len(values) == 1:
   126                     values = values[0]
   128                     values = values[0]