code: def parse_line(self, line, lineno):
          
          match = self.RE_TINDERBOXPRINT.match(line) if line else None
          if match:
              line = match.group('line')
  
              for regexp_item in self.TINDERBOX_REGEXP_TUPLE:
                  match = regexp_item['re'].match(line)
                  if match:
                      artifact = match.groupdict()
                      # handle duplicate fields
                      for to_field, from_field in regexp_item['duplicates_fields'].items():
                          # if to_field not present or None copy form from_field
                          if to_field not in artifact or artifact[to_field] is None:
                              artifact[to_field] = artifact[from_field]
                      artifact.update(regexp_item['base_dict'])
                      self.artifact.append(artifact)
                      return
  
              # default case: consider it html content
              # try to detect title/value splitting on <br/>
              artifact = {"content_type": "raw_html", }
              if "<br/>" in line:
                  title, value = line.split("<br/>", 1)
                  artifact["title"] = title
                  artifact["value"] = value
              # or similar long lines if they contain a url
              elif "href" in line and "title" in line:
                  def parse_url_line(line_data):
                      class TpLineParser(HTMLParser):
  
                          def handle_starttag(self, tag, attrs):
                              d = dict(attrs)
                              artifact["url"] = d['href']
                              artifact["title"] = d['title']
  
                          def handle_data(self, data):
                              artifact["value"] = data
  
                      p = TpLineParser()
                      p.feed(line_data)
                      p.close()
  
                  # strip ^M returns on windows lines otherwise
                  # handle_data will yield no data 'value'
                  parse_url_line(line.replace('\r', ''))
              else:
                  artifact["value"] = line
              self.artifact.append(artifact)
docs: Parse a single line of the log