forked from zaclys/searxng
[fix] url path unquoted check to avoid duplications
This commit is contained in:
parent
cebf5868b3
commit
a07b2b514c
|
@ -21,7 +21,7 @@ import sys
|
|||
from imp import load_source
|
||||
from itertools import izip_longest, chain
|
||||
from operator import itemgetter
|
||||
from urlparse import urlparse
|
||||
from urlparse import urlparse, unquote
|
||||
from datetime import datetime
|
||||
import grequests
|
||||
from flask.ext.babel import gettext
|
||||
|
@ -153,7 +153,9 @@ def score_results(results):
|
|||
results = []
|
||||
# deduplication + scoring
|
||||
for i, res in enumerate(flat_res):
|
||||
|
||||
res['parsed_url'] = urlparse(res['url'])
|
||||
|
||||
res['host'] = res['parsed_url'].netloc
|
||||
|
||||
if res['host'].startswith('www.'):
|
||||
|
@ -172,7 +174,7 @@ def score_results(results):
|
|||
p1 = res['parsed_url'].path[:-1] if res['parsed_url'].path.endswith('/') else res['parsed_url'].path # noqa
|
||||
p2 = new_res['parsed_url'].path[:-1] if new_res['parsed_url'].path.endswith('/') else new_res['parsed_url'].path # noqa
|
||||
if res['host'] == new_res['host'] and\
|
||||
p1 == p2 and\
|
||||
unquote(p1) == unquote(p2) and\
|
||||
res['parsed_url'].query == new_res['parsed_url'].query and\
|
||||
res.get('template') == new_res.get('template'):
|
||||
duplicated = new_res
|
||||
|
@ -222,6 +224,10 @@ def search(query, request, selected_engines, pageno=1, lang='all'):
|
|||
request_params['language'] = lang
|
||||
request_params = engine.request(query.encode('utf-8'), request_params)
|
||||
|
||||
if request_params['url'] is None:
|
||||
# TODO add support of offline engines
|
||||
pass
|
||||
|
||||
callback = make_callback(
|
||||
selected_engine['name'],
|
||||
results,
|
||||
|
|
Loading…
Reference in New Issue