mirror of
				https://github.com/searxng/searxng.git
				synced 2025-11-04 03:27:06 -05:00 
			
		
		
		
	[mod] int_or_zero refactored to searx_utils
This commit is contained in:
		
							parent
							
								
									c3232b0e1a
								
							
						
					
					
						commit
						33fd938016
					
				@ -12,7 +12,7 @@
 | 
				
			|||||||
from lxml import html
 | 
					from lxml import html
 | 
				
			||||||
from searx.engines.xpath import extract_text
 | 
					from searx.engines.xpath import extract_text
 | 
				
			||||||
from searx.url_utils import urlencode
 | 
					from searx.url_utils import urlencode
 | 
				
			||||||
from searx.utils import get_torrent_size
 | 
					from searx.utils import get_torrent_size, int_or_zero
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# engine dependent config
 | 
					# engine dependent config
 | 
				
			||||||
categories = ['files', 'images', 'videos', 'music']
 | 
					categories = ['files', 'images', 'videos', 'music']
 | 
				
			||||||
@ -49,14 +49,14 @@ def response(resp):
 | 
				
			|||||||
    for result in dom.xpath(xpath_results):
 | 
					    for result in dom.xpath(xpath_results):
 | 
				
			||||||
        # defaults
 | 
					        # defaults
 | 
				
			||||||
        filesize = 0
 | 
					        filesize = 0
 | 
				
			||||||
        seed = 0
 | 
					 | 
				
			||||||
        leech = 0
 | 
					 | 
				
			||||||
        downloads = 0
 | 
					 | 
				
			||||||
        magnet_link = ""
 | 
					        magnet_link = ""
 | 
				
			||||||
        torrent_link = ""
 | 
					        torrent_link = ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # category in which our torrent belongs
 | 
					        # category in which our torrent belongs
 | 
				
			||||||
        category = result.xpath(xpath_category)[0].attrib.get('title')
 | 
					        try:
 | 
				
			||||||
 | 
					            category = result.xpath(xpath_category)[0].attrib.get('title')
 | 
				
			||||||
 | 
					        except:
 | 
				
			||||||
 | 
					            pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # torrent title
 | 
					        # torrent title
 | 
				
			||||||
        page_a = result.xpath(xpath_title)[0]
 | 
					        page_a = result.xpath(xpath_title)[0]
 | 
				
			||||||
@ -74,12 +74,14 @@ def response(resp):
 | 
				
			|||||||
                # link to the torrent file
 | 
					                # link to the torrent file
 | 
				
			||||||
                torrent_link = url
 | 
					                torrent_link = url
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # get seeders and leechers
 | 
					        # seed count
 | 
				
			||||||
        try:
 | 
					        seed = int_or_zero(result.xpath(xpath_seeds))
 | 
				
			||||||
            seed = int(result.xpath(xpath_seeds)[0])
 | 
					
 | 
				
			||||||
            leech = int(result.xpath(xpath_leeches)[0])
 | 
					        # leech count
 | 
				
			||||||
        except:
 | 
					        leech = int_or_zero(result.xpath(xpath_leeches))
 | 
				
			||||||
            pass
 | 
					
 | 
				
			||||||
 | 
					        # torrent downloads count
 | 
				
			||||||
 | 
					        downloads = int_or_zero(result.xpath(xpath_downloads))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # let's try to calculate the torrent size
 | 
					        # let's try to calculate the torrent size
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
@ -89,12 +91,6 @@ def response(resp):
 | 
				
			|||||||
        except:
 | 
					        except:
 | 
				
			||||||
            pass
 | 
					            pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # torrent downloads count
 | 
					 | 
				
			||||||
        try:
 | 
					 | 
				
			||||||
            downloads = result.xpath(xpath_downloads)[0]
 | 
					 | 
				
			||||||
        except:
 | 
					 | 
				
			||||||
            pass
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # content string contains all information not included into template
 | 
					        # content string contains all information not included into template
 | 
				
			||||||
        content = 'Category: "{category}". Downloaded {downloads} times.'
 | 
					        content = 'Category: "{category}". Downloaded {downloads} times.'
 | 
				
			||||||
        content = content.format(category=category, downloads=downloads)
 | 
					        content = content.format(category=category, downloads=downloads)
 | 
				
			||||||
 | 
				
			|||||||
@ -15,7 +15,7 @@ from lxml import html
 | 
				
			|||||||
from searx.engines.xpath import extract_text
 | 
					from searx.engines.xpath import extract_text
 | 
				
			||||||
from datetime import datetime
 | 
					from datetime import datetime
 | 
				
			||||||
from searx.url_utils import urlencode
 | 
					from searx.url_utils import urlencode
 | 
				
			||||||
from searx.utils import get_torrent_size
 | 
					from searx.utils import get_torrent_size, int_or_zero
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# engine dependent config
 | 
					# engine dependent config
 | 
				
			||||||
categories = ['files', 'videos', 'music']
 | 
					categories = ['files', 'videos', 'music']
 | 
				
			||||||
@ -26,17 +26,6 @@ base_url = 'https://www.tokyotosho.info/'
 | 
				
			|||||||
search_url = base_url + 'search.php?{query}'
 | 
					search_url = base_url + 'search.php?{query}'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# convert a variable to integer or return 0 if it's not a number
 | 
					 | 
				
			||||||
def int_or_zero(num):
 | 
					 | 
				
			||||||
    if isinstance(num, list):
 | 
					 | 
				
			||||||
        if len(num) < 1:
 | 
					 | 
				
			||||||
            return 0
 | 
					 | 
				
			||||||
        num = num[0]
 | 
					 | 
				
			||||||
    if num.isdigit():
 | 
					 | 
				
			||||||
        return int(num)
 | 
					 | 
				
			||||||
    return 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# do search-request
 | 
					# do search-request
 | 
				
			||||||
def request(query, params):
 | 
					def request(query, params):
 | 
				
			||||||
    query = urlencode({'page': params['pageno'], 'terms': query})
 | 
					    query = urlencode({'page': params['pageno'], 'terms': query})
 | 
				
			||||||
 | 
				
			|||||||
@ -290,6 +290,15 @@ def convert_str_to_int(number_str):
 | 
				
			|||||||
        return 0
 | 
					        return 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# convert a variable to integer or return 0 if it's not a number
 | 
				
			||||||
 | 
					def int_or_zero(num):
 | 
				
			||||||
 | 
					    if isinstance(num, list):
 | 
				
			||||||
 | 
					        if len(num) < 1:
 | 
				
			||||||
 | 
					            return 0
 | 
				
			||||||
 | 
					        num = num[0]
 | 
				
			||||||
 | 
					    return convert_str_to_int(num)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def is_valid_lang(lang):
 | 
					def is_valid_lang(lang):
 | 
				
			||||||
    is_abbr = (len(lang) == 2)
 | 
					    is_abbr = (len(lang) == 2)
 | 
				
			||||||
    if is_abbr:
 | 
					    if is_abbr:
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user