Browse Source

Merge pull request #201 from return42/drop-torrentz

[drop] engine torrentz: torrentz2.eu and torrentz2.is are offline
Alexandre Flament 3 years ago
parent
commit
4f09c7ba0c
2 changed files with 1 additions and 106 deletions
  1. 0 99
      searx/engines/torrentz.py
  2. 1 7
      searx/settings.yml

+ 0 - 99
searx/engines/torrentz.py

@@ -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

+ 1 - 7
searx/settings.yml

@@ -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