mirror of
				https://github.com/searxng/searxng
				synced 2024-01-01 19:24:07 +01:00 
			
		
		
		
	update piratebay engine and add comments
This commit is contained in:
		
							parent
							
								
									334a286c18
								
							
						
					
					
						commit
						dae88d862b
					
				
					 2 changed files with 35 additions and 9 deletions
				
			
		|  | @ -1,39 +1,61 @@ | |||
| ## Piratebay (Videos, Music, Files) | ||||
| #  | ||||
| # @website     https://thepiratebay.se | ||||
| # @provide-api no (nothing found) | ||||
| #  | ||||
| # @using-api   no | ||||
| # @results     HTML (using search portal) | ||||
| # @stable      yes (HTML can change) | ||||
| # @parse       url, title, content, seed, leech, magnetlink | ||||
| 
 | ||||
| from urlparse import urljoin | ||||
| from cgi import escape | ||||
| from urllib import quote | ||||
| from lxml import html | ||||
| from operator import itemgetter | ||||
| 
 | ||||
| categories = ['videos', 'music'] | ||||
| # engine dependent config | ||||
| categories = ['videos', 'music', 'files'] | ||||
| paging = True | ||||
| 
 | ||||
| # search-url | ||||
| url = 'https://thepiratebay.se/' | ||||
| search_url = url + 'search/{search_term}/{pageno}/99/{search_type}' | ||||
| search_types = {'videos': '200', | ||||
|                 'music': '100', | ||||
|                 'files': '0'} | ||||
| 
 | ||||
| # piratebay specific type-definitions | ||||
| search_types = {'files': '0',                 | ||||
|                 'music': '100', | ||||
|                 'videos': '200'} | ||||
| 
 | ||||
| # specific xpath variables | ||||
| magnet_xpath = './/a[@title="Download this torrent using magnet"]' | ||||
| content_xpath = './/font[@class="detDesc"]//text()' | ||||
| 
 | ||||
| paging = True | ||||
| 
 | ||||
| 
 | ||||
| # do search-request | ||||
| def request(query, params): | ||||
|     search_type = search_types.get(params['category'], '200') | ||||
|     search_type = search_types.get(params['category'], '0') | ||||
| 
 | ||||
|     params['url'] = search_url.format(search_term=quote(query), | ||||
|                                       search_type=search_type, | ||||
|                                       pageno=params['pageno'] - 1) | ||||
| 
 | ||||
|     return params | ||||
| 
 | ||||
| 
 | ||||
| # get response from search-request | ||||
| def response(resp): | ||||
|     results = [] | ||||
| 
 | ||||
|     dom = html.fromstring(resp.text) | ||||
| 
 | ||||
|     search_res = dom.xpath('//table[@id="searchResult"]//tr') | ||||
| 
 | ||||
|     # return empty array if nothing is found | ||||
|     if not search_res: | ||||
|         return results | ||||
|         return [] | ||||
| 
 | ||||
|     # parse results | ||||
|     for result in search_res[1:]: | ||||
|         link = result.xpath('.//div[@class="detName"]//a')[0] | ||||
|         href = urljoin(url, link.attrib.get('href')) | ||||
|  | @ -41,17 +63,21 @@ def response(resp): | |||
|         content = escape(' '.join(result.xpath(content_xpath))) | ||||
|         seed, leech = result.xpath('.//td[@align="right"]/text()')[:2] | ||||
| 
 | ||||
|         # convert seed to int if possible | ||||
|         if seed.isdigit(): | ||||
|             seed = int(seed) | ||||
|         else: | ||||
|             seed = 0 | ||||
| 
 | ||||
|         # convert leech to int if possible | ||||
|         if leech.isdigit(): | ||||
|             leech = int(leech) | ||||
|         else: | ||||
|             leech = 0 | ||||
| 
 | ||||
|         magnetlink = result.xpath(magnet_xpath)[0] | ||||
| 
 | ||||
|         # append result | ||||
|         results.append({'url': href, | ||||
|                         'title': title, | ||||
|                         'content': content, | ||||
|  | @ -60,4 +86,5 @@ def response(resp): | |||
|                         'magnetlink': magnetlink.attrib['href'], | ||||
|                         'template': 'torrent.html'}) | ||||
| 
 | ||||
|     # return results sorted by seeder | ||||
|     return sorted(results, key=itemgetter('seed'), reverse=True) | ||||
|  |  | |||
|  | @ -82,7 +82,6 @@ engines: | |||
| 
 | ||||
|   - name : piratebay | ||||
|     engine : piratebay | ||||
|     categories : videos, music, files | ||||
|     shortcut : tpb | ||||
| 
 | ||||
|   - name : soundcloud | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Thomas Pointhuber
						Thomas Pointhuber