mirror of
				https://github.com/searxng/searxng
				synced 2024-01-01 19:24:07 +01:00 
			
		
		
		
	[drop] engine torrentz: torrentz2.eu and torrentz2.is are offline
[1] https://torrentfreak.com/torrentz2-eu-domain-suspended-by-registry-on-public-prosecutors-order-200628/ Suggested-by: @rasos https://github.com/searx/searx/issues/1875#issuecomment-877755872 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
		
							parent
							
								
									438357a5b8
								
							
						
					
					
						commit
						513c73a309
					
				
					 2 changed files with 1 additions and 106 deletions
				
			
		|  | @ -1,99 +0,0 @@ | |||
| # SPDX-License-Identifier: AGPL-3.0-or-later | ||||
| """ | ||||
|  Torrentz2.is (BitTorrent meta-search engine) | ||||
| """ | ||||
| 
 | ||||
| import re | ||||
| from urllib.parse import urlencode | ||||
| from lxml import html | ||||
| from datetime import datetime | ||||
| from searx.utils import extract_text, get_torrent_size | ||||
| 
 | ||||
| # about | ||||
| about = { | ||||
|     "website": 'https://torrentz2.is/', | ||||
|     "wikidata_id": 'Q1156687', | ||||
|     "official_api_documentation": 'https://torrentz.is/torrentz.btsearch', | ||||
|     "use_official_api": False, | ||||
|     "require_api_key": False, | ||||
|     "results": 'HTML', | ||||
| } | ||||
| 
 | ||||
| # engine dependent config | ||||
| categories = ['files'] | ||||
| paging = True | ||||
| 
 | ||||
| # search-url | ||||
| # https://torrentz2.is/search?f=EXAMPLE&p=6 | ||||
| base_url = 'https://torrentz2.is/' | ||||
| search_url = base_url + 'search?{query}' | ||||
| 
 | ||||
| 
 | ||||
| # do search-request | ||||
| def request(query, params): | ||||
|     page = params['pageno'] - 1 | ||||
|     query = urlencode({'f': query, 'p': page}) | ||||
|     params['url'] = search_url.format(query=query) | ||||
|     return params | ||||
| 
 | ||||
| 
 | ||||
| # get response from search-request | ||||
| def response(resp): | ||||
|     results = [] | ||||
| 
 | ||||
|     dom = html.fromstring(resp.text) | ||||
| 
 | ||||
|     for result in dom.xpath('//div[@class="results"]/dl'): | ||||
|         name_cell = result.xpath('./dt')[0] | ||||
|         title = extract_text(name_cell) | ||||
| 
 | ||||
|         # skip rows that do not contain a link to a torrent | ||||
|         links = name_cell.xpath('./a') | ||||
|         if len(links) != 1: | ||||
|             continue | ||||
| 
 | ||||
|         # extract url and remove a slash in the beginning | ||||
|         link = links[0].attrib.get('href').lstrip('/') | ||||
| 
 | ||||
|         seed = 0 | ||||
|         leech = 0 | ||||
|         try: | ||||
|             seed = int(result.xpath('./dd/span[4]/text()')[0].replace(',', '')) | ||||
|             leech = int(result.xpath('./dd/span[5]/text()')[0].replace(',', '')) | ||||
|         except: | ||||
|             pass | ||||
| 
 | ||||
|         params = { | ||||
|             'url': base_url + link, | ||||
|             'title': title, | ||||
|             'seed': seed, | ||||
|             'leech': leech, | ||||
|             'template': 'torrent.html' | ||||
|         } | ||||
| 
 | ||||
|         # let's try to calculate the torrent size | ||||
|         try: | ||||
|             filesize_info = result.xpath('./dd/span[3]/text()')[0] | ||||
|             filesize, filesize_multiplier = filesize_info.split() | ||||
|             filesize = get_torrent_size(filesize, filesize_multiplier) | ||||
| 
 | ||||
|             params['filesize'] = filesize | ||||
|         except: | ||||
|             pass | ||||
| 
 | ||||
|         # does our link contain a valid SHA1 sum? | ||||
|         if re.compile('[0-9a-fA-F]{40}').match(link): | ||||
|             # add a magnet link to the result | ||||
|             params['magnetlink'] = 'magnet:?xt=urn:btih:' + link | ||||
| 
 | ||||
|         # extract and convert creation date | ||||
|         try: | ||||
|             date_ts = result.xpath('./dd/span[2]')[0].attrib.get('title') | ||||
|             date = datetime.fromtimestamp(float(date_ts)) | ||||
|             params['publishedDate'] = date | ||||
|         except: | ||||
|             pass | ||||
| 
 | ||||
|         results.append(params) | ||||
| 
 | ||||
|     return results | ||||
|  | @ -1134,7 +1134,7 @@ engines: | |||
|     engine: solidtorrents | ||||
|     shortcut: solid | ||||
|     timeout: 3.0 | ||||
|     disabled: true | ||||
|     disabled: false | ||||
| 
 | ||||
|   # For this demo of the sqlite engine download: | ||||
|   #   https://liste.mediathekview.de/filmliste-v2.db.bz2 | ||||
|  | @ -1156,12 +1156,6 @@ engines: | |||
|   #      ORDER BY duration DESC | ||||
|   #   disabled: false | ||||
| 
 | ||||
|   - name: torrentz | ||||
|     engine: torrentz | ||||
|     shortcut: tor | ||||
|     url: https://torrentz2.eu/ | ||||
|     timeout: 3.0 | ||||
| 
 | ||||
|   # Requires Tor | ||||
|   - name: torch | ||||
|     engine: xpath | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Markus Heiser
						Markus Heiser