mirror of
				https://github.com/searxng/searxng.git
				synced 2025-11-03 19:17:07 -05:00 
			
		
		
		
	Unfortunately, it is quite slow so it is disabled. Furthermore, the display of number of files is wrong on digbt.org, so it is not displayed on searx.
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""
 | 
						|
 DigBT (Videos, Music, Files)
 | 
						|
 | 
						|
 @website     https://digbt.org
 | 
						|
 @provide-api no
 | 
						|
 | 
						|
 @using-api   no
 | 
						|
 @results     HTML (using search portal)
 | 
						|
 @stable      no (HTML can change)
 | 
						|
 @parse       url, title, content, magnetlink
 | 
						|
"""
 | 
						|
 | 
						|
from urlparse import urljoin
 | 
						|
from lxml import html
 | 
						|
from searx.engines.xpath import extract_text
 | 
						|
from searx.utils import get_torrent_size
 | 
						|
 | 
						|
categories = ['videos', 'music', 'files']
 | 
						|
paging = True
 | 
						|
 | 
						|
URL = 'https://digbt.org'
 | 
						|
SEARCH_URL = URL + '/search/{query}-time-{pageno}'
 | 
						|
FILESIZE = 3
 | 
						|
FILESIZE_MULTIPLIER = 4
 | 
						|
 | 
						|
 | 
						|
def request(query, params):
 | 
						|
    params['url'] = SEARCH_URL.format(query=query, pageno=params['pageno'])
 | 
						|
 | 
						|
    return params
 | 
						|
 | 
						|
 | 
						|
def response(resp):
 | 
						|
    dom = html.fromstring(resp.content)
 | 
						|
    search_res = dom.xpath('.//td[@class="x-item"]')
 | 
						|
 | 
						|
    if not search_res:
 | 
						|
        return list()
 | 
						|
 | 
						|
    results = list()
 | 
						|
    for result in search_res:
 | 
						|
        url = urljoin(URL, result.xpath('.//a[@title]/@href')[0])
 | 
						|
        title = result.xpath('.//a[@title]/text()')[0]
 | 
						|
        content = extract_text(result.xpath('.//div[@class="files"]'))
 | 
						|
        files_data = extract_text(result.xpath('.//div[@class="tail"]')).split()
 | 
						|
        filesize = get_torrent_size(files_data[FILESIZE], files_data[FILESIZE_MULTIPLIER])
 | 
						|
        magnetlink = result.xpath('.//div[@class="tail"]//a[@class="title"]/@href')[0]
 | 
						|
 | 
						|
        results.append({'url': url,
 | 
						|
                        'title': title,
 | 
						|
                        'content': content,
 | 
						|
                        'filesize': filesize,
 | 
						|
                        'magnetlink': magnetlink,
 | 
						|
                        'seed': 'N/A',
 | 
						|
                        'leech': 'N/A',
 | 
						|
                        'template': 'torrent.html'})
 | 
						|
 | 
						|
    return results
 |