logo

searx

My custom branche(s) on searx, a meta-search engine git clone https://hacktivis.me/git/searx.git
commit: 1cf870c02447a636d8b21057934e69afd5289ba2
parent f8a5f7d6751ad72c877d6008f1a7d9792ba911f6
Author: dalf <alex@al-f.net>
Date:   Thu, 12 Feb 2015 12:30:03 +0100

[fix] kickass engine : change the hostname to kickass.to (since kickass.so doesn't respond).
Close #197 perhaps not in clean way. Explaination :
In fact 301 responses are followed, except the hook is called for each HTTP response,
the first time for the HTTP 301 response then for HTTP 200 response.
Since the kickass engine excepts a real result, the engine crashes, AND the requests lib stops here.
Add a simple test at the begining of the result function allows pass the first response and handle correctly the second response (the real one)

May be a proper way is to add this test in search.py ?

Code inside requests :
https://github.com/kennethreitz/requests/blob/53d02381e22436b6d0757eb305eb1a960f82d361/requests/sessions.py#L579
and line 591

Diffstat:

Msearx/engines/kickass.py5++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/searx/engines/kickass.py b/searx/engines/kickass.py @@ -20,7 +20,7 @@ categories = ['videos', 'music', 'files'] paging = True # search-url -url = 'https://kickass.so/' +url = 'https://kickass.to/' search_url = url + 'search/{search_term}/{pageno}/' # specific xpath variables @@ -45,6 +45,9 @@ def request(query, params): def response(resp): results = [] + if resp.is_redirect: + return results + dom = html.fromstring(resp.text) search_res = dom.xpath('//table[@class="data"]//tr')