47def response(resp):
48 results = []
49 dom = html.fromstring(resp.text)
50
51 for result in eval_xpath(dom, '//li[contains(@class, "search-result")]'):
52 torrentfile = eval_xpath_getindex(result, './/a[contains(@class, "dl-torrent")]/@href', 0, None)
53 magnet = eval_xpath_getindex(result, './/a[contains(@class, "dl-magnet")]/@href', 0, None)
54 if torrentfile is None or magnet is None:
55 continue
56 title = eval_xpath_getindex(result, './/h5[contains(@class, "title")]', 0, None)
57 url = eval_xpath_getindex(result, './/h5[contains(@class, "title")]/a/@href', 0, None)
58 categ = eval_xpath(result, './/a[contains(@class, "category")]')
59 stats = eval_xpath_list(result, './/div[contains(@class, "stats")]/div', min_len=5)
60
61 params = {
62 'seed': extract_text(stats[3]),
63 'leech': extract_text(stats[2]),
64 'title': extract_text(title),
65 'url': resp.search_params['base_url'] + url,
66 'filesize': get_torrent_size(*extract_text(stats[1]).split()),
67 'magnetlink': magnet,
68 'torrentfile': torrentfile,
69 'metadata': extract_text(categ),
70 'template': "torrent.html",
71 }
72
73 try:
74 params['publishedDate'] = datetime.strptime(extract_text(stats[4]), '%b %d, %Y')
75 except ValueError:
76 pass
77
78 results.append(params)
79
80 return results