@@ -1,13 +1,21 @@
11# SPDX-License-Identifier: AGPL-3.0-or-later
2+"""APKMirror
23"""
3− APK Mirror
4−"""
4+
5+# pylint: disable=invalid-name, missing-function-docstring
56
67from urllib.parse import urlencode
78from lxml import html
8−from searx.utils import extract_text, eval_xpath_list, eval_xpath_getindex
99
10−# about
10+from searx import logger
11+from searx.utils import (
12+ eval_xpath_list,
13+ eval_xpath_getindex,
14+ extract_text,
15+)
16+
17+logger = logger.getChild('APKMirror engine')
18+
1119about = {
1220 "website": 'https://www.apkmirror.com',
1321 "wikidata_id": None,
@@ -18,11 +26,8 @@ about = {
1826}
1927
2028# engine dependent config
21−categories = ['it']
29+categories = ['files']
2230paging = True
23−
24−# I am not 100% certain about this, as apkmirror appears to be a wordpress site,
25−# which might support time_range searching. If you want to implement it, go ahead.
2631time_range_support = False
2732
2833# search-url
@@ -30,37 +35,34 @@ base_url = 'https://www.apkmirror.com'
3035search_url = base_url + '/?post_type=app_release&searchtype=apk&page={pageno}&{query}'
3136
3237
33−# do search-request
3438def request(query, params):
35−
36− params['url'] = search_url.format(pageno=params['pageno'],
37− query=urlencode({'s': query}))
39+ params['url'] = search_url.format(
40+ pageno = params['pageno'],
41+ query = urlencode({'s': query}),
42+ )
43+ logger.debug("query_url --> %s", params['url'])
3844 return params
3945
4046
41−# get response from search-request
4247def response(resp):
4348 results = []
4449
4550 dom = html.fromstring(resp.text)
4651
4752 # parse results
48− for result in eval_xpath_list(dom, './/div[@id="content"]/div[@class="listWidget"]//div[@class="appRow"]'):
53+ for result in eval_xpath_list(dom, "//div[@id='content']//div[@class='listWidget']/div/div[@class='appRow']"):
4954
5055 link = eval_xpath_getindex(result, './/h5/a', 0)
56+
5157 url = base_url + link.attrib.get('href') + '#downloads'
5258 title = extract_text(link)
53− thumbnail_src = base_url\
54− + eval_xpath_getindex(result, './/img', 0).attrib.get('src').replace('&w=32&h=32', '&w=64&h=64')
55−
59+ img_src = base_url + eval_xpath_getindex(result, './/img/@src', 0)
5660 res = {
5761 'url': url,
5862 'title': title,
59− 'thumbnail_src': thumbnail_src
63+ 'img_src': img_src
6064 }
6165
62− # append result
6366 results.append(res)
6467
65− # return results
6668 return results