code: def parse_first_row(row, url_instance):
          
          tags = row.xpath(Parser.FIRST_ROW_XPATH)
          category_url = url_instance.combine(tags[0].get('href'))
          title = unicode(tags[1].text)
          # work with the incomplete URL to get str_id
          torrent_url = tags[1].get('href')
          str_id = torrent_url.split('details/')[1]
          str_id = str_id[:-1] if str_id.endswith('/') else str_id
          # complete the torrent URL with BASE_URL
          torrent_url = url_instance.combine(torrent_url)
  
          # means that torrent has external property
          if len(tags) == 3:
              # monkey patch the missing external query param
              category_url += '&external=1'
              tracked_by = '(external)'
          else:
              tracked_by = 'Demonoid'
          return [str_id, title, tracked_by, category_url, torrent_url]
docs: Static method that parses a given table row element by executing `Parser.FIRST_ROW_XPATH` and scrapping torrent's
          id, title, tracked by status, category url and torrent url. Used specifically with a torrent's first table row.
  
          :param lxml.HtmlElement row: row to parse
          :param urls.Url url_instance: Url used to combine base url's with scrapped links from tr
          :return: scrapped id, title, tracked by status, category url and torrent url
          :rtype: list