commit: 33fd938016def4496876d89d0ccaa53f47705005
parent c3232b0e1a82315e5936fb3c0731548efd66a0b3
Author: misnyo <misnyo@misnyo.eu>
Date: Mon, 4 Sep 2017 20:05:04 +0200
[mod] int_or_zero refactored to searx_utils
Diffstat:
3 files changed, 23 insertions(+), 29 deletions(-)
diff --git a/searx/engines/nyaa.py b/searx/engines/nyaa.py
@@ -12,7 +12,7 @@
from lxml import html
from searx.engines.xpath import extract_text
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
categories = ['files', 'images', 'videos', 'music']
@@ -49,14 +49,14 @@ def response(resp):
for result in dom.xpath(xpath_results):
# defaults
filesize = 0
- seed = 0
- leech = 0
- downloads = 0
magnet_link = ""
torrent_link = ""
# 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
page_a = result.xpath(xpath_title)[0]
@@ -74,12 +74,14 @@ def response(resp):
# link to the torrent file
torrent_link = url
- # get seeders and leechers
- try:
- seed = int(result.xpath(xpath_seeds)[0])
- leech = int(result.xpath(xpath_leeches)[0])
- except:
- pass
+ # seed count
+ seed = int_or_zero(result.xpath(xpath_seeds))
+
+ # leech count
+ leech = int_or_zero(result.xpath(xpath_leeches))
+
+ # torrent downloads count
+ downloads = int_or_zero(result.xpath(xpath_downloads))
# let's try to calculate the torrent size
try:
@@ -89,12 +91,6 @@ def response(resp):
except:
pass
- # torrent downloads count
- try:
- downloads = result.xpath(xpath_downloads)[0]
- except:
- pass
-
# content string contains all information not included into template
content = 'Category: "{category}". Downloaded {downloads} times.'
content = content.format(category=category, downloads=downloads)
diff --git a/searx/engines/tokyotoshokan.py b/searx/engines/tokyotoshokan.py
@@ -15,7 +15,7 @@ from lxml import html
from searx.engines.xpath import extract_text
from datetime import datetime
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
categories = ['files', 'videos', 'music']
@@ -26,17 +26,6 @@ base_url = 'https://www.tokyotosho.info/'
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
def request(query, params):
query = urlencode({'page': params['pageno'], 'terms': query})
diff --git a/searx/utils.py b/searx/utils.py
@@ -290,6 +290,15 @@ def convert_str_to_int(number_str):
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):
is_abbr = (len(lang) == 2)
if is_abbr: