summaryrefslogtreecommitdiff
path: root/searx/engines/acgsou.py
diff options
context:
space:
mode:
Diffstat (limited to 'searx/engines/acgsou.py')
-rw-r--r--searx/engines/acgsou.py27
1 files changed, 12 insertions, 15 deletions
diff --git a/searx/engines/acgsou.py b/searx/engines/acgsou.py
index a436df283..b8b367c24 100644
--- a/searx/engines/acgsou.py
+++ b/searx/engines/acgsou.py
@@ -11,7 +11,7 @@
from urllib.parse import urlencode
from lxml import html
-from searx.utils import extract_text, get_torrent_size
+from searx.utils import extract_text, get_torrent_size, eval_xpath_list, eval_xpath_getindex
# engine dependent config
categories = ['files', 'images', 'videos', 'music']
@@ -37,29 +37,26 @@ def request(query, params):
def response(resp):
results = []
dom = html.fromstring(resp.text)
- for result in dom.xpath(xpath_results):
+ for result in eval_xpath_list(dom, xpath_results):
# defaults
filesize = 0
magnet_link = "magnet:?xt=urn:btih:{}&tr=http://tracker.acgsou.com:2710/announce"
- try:
- category = extract_text(result.xpath(xpath_category)[0])
- except:
- pass
-
- page_a = result.xpath(xpath_title)[0]
+ category = extract_text(eval_xpath_getindex(result, xpath_category, 0, default=[]))
+ page_a = eval_xpath_getindex(result, xpath_title, 0)
title = extract_text(page_a)
href = base_url + page_a.attrib.get('href')
magnet_link = magnet_link.format(page_a.attrib.get('href')[5:-5])
- try:
- filesize_info = result.xpath(xpath_filesize)[0]
- filesize = filesize_info[:-2]
- filesize_multiplier = filesize_info[-2:]
- filesize = get_torrent_size(filesize, filesize_multiplier)
- except:
- pass
+ filesize_info = eval_xpath_getindex(result, xpath_filesize, 0, default=None)
+ if filesize_info:
+ try:
+ filesize = filesize_info[:-2]
+ filesize_multiplier = filesize_info[-2:]
+ filesize = get_torrent_size(filesize, filesize_multiplier)
+ except:
+ pass
# I didn't add download/seed/leech count since as I figured out they are generated randomly everytime
content = 'Category: "{category}".'
content = content.format(category=category)