code: def parse_torrent_properties(table_datas):
          
          output = {'category': table_datas[0].text, 'subcategory': None, 'quality': None, 'language': None}
          for i in range(1, len(table_datas)):
              td = table_datas[i]
              url = td.get('href')
              params = Parser.get_params(url)
              if Parser.is_subcategory(params) and not output['subcategory']:
                  output['subcategory'] = td.text
              elif Parser.is_quality(params) and not output['quality']:
                  output['quality'] = td.text
              elif Parser.is_language(params) and not output['language']:
                  output['language'] = td.text
          return output
docs: Static method that parses a given list of table data elements and using helper methods
          `Parser.is_subcategory`, `Parser.is_quality`, `Parser.is_language`, collects torrent properties.
  
          :param list lxml.HtmlElement table_datas: table_datas to parse
          :return: identified category, subcategory, quality and languages.
          :rtype: dict