forked from Icycoide/searxng
remove 'all' option from search languages
This commit is contained in:
parent
46fb0d860e
commit
4d1770398a
56 changed files with 166 additions and 249 deletions
|
@ -26,7 +26,7 @@ xpath_results = '//ul[@class="mw-search-results"]/li'
|
|||
xpath_link = './/div[@class="mw-search-result-heading"]/a'
|
||||
|
||||
|
||||
# cut 'en' from 'en_US', 'de' from 'de_CH', and so on
|
||||
# cut 'en' from 'en-US', 'de' from 'de-CH', and so on
|
||||
def locale_to_lang_code(locale):
|
||||
if locale.find('-') >= 0:
|
||||
locale = locale.split('-')[0]
|
||||
|
@ -36,7 +36,7 @@ def locale_to_lang_code(locale):
|
|||
# wikis for some languages were moved off from the main site, we need to make
|
||||
# requests to correct URLs to be able to get results in those languages
|
||||
lang_urls = {
|
||||
'all': {
|
||||
'en': {
|
||||
'base': 'https://wiki.archlinux.org',
|
||||
'search': '/index.php?title=Special:Search&offset={offset}&{query}'
|
||||
},
|
||||
|
@ -67,7 +67,7 @@ lang_urls = {
|
|||
def get_lang_urls(language):
|
||||
if language in lang_urls:
|
||||
return lang_urls[language]
|
||||
return lang_urls['all']
|
||||
return lang_urls['en']
|
||||
|
||||
|
||||
# Language names to build search requests for
|
||||
|
|
|
@ -32,10 +32,7 @@ search_string = 'search?{query}&first={offset}'
|
|||
def request(query, params):
|
||||
offset = (params['pageno'] - 1) * 10 + 1
|
||||
|
||||
if params['language'] != 'all':
|
||||
lang = params['language'].split('-')[0].upper()
|
||||
else:
|
||||
lang = 'EN'
|
||||
lang = params['language'].split('-')[0].upper()
|
||||
|
||||
query = u'language:{} {}'.format(lang, query.decode('utf-8')).encode('utf-8')
|
||||
|
||||
|
|
|
@ -71,10 +71,7 @@ def request(query, params):
|
|||
|
||||
offset = (params['pageno'] - 1) * 10 + 1
|
||||
|
||||
if params['language'] == 'all':
|
||||
language = 'en-US'
|
||||
else:
|
||||
language = params['language']
|
||||
language = params['language']
|
||||
|
||||
params['url'] = _get_url(query, language, offset, params['time_range'])
|
||||
|
||||
|
|
|
@ -32,10 +32,7 @@ supported_languages_url = 'https://api.dailymotion.com/languages'
|
|||
|
||||
# do search-request
|
||||
def request(query, params):
|
||||
if params['language'] == 'all':
|
||||
locale = 'en-US'
|
||||
else:
|
||||
locale = params['language']
|
||||
locale = params['language']
|
||||
|
||||
params['url'] = search_url.format(
|
||||
query=urlencode({'search': query, 'localization': locale}),
|
||||
|
|
|
@ -44,9 +44,7 @@ content_xpath = './/a[@class="result__snippet"]'
|
|||
# match query's language to a region code that duckduckgo will accept
|
||||
def get_region_code(lang, lang_list=None):
|
||||
# custom fixes for languages
|
||||
if lang == 'all':
|
||||
region_code = None
|
||||
elif lang[:2] == 'ja':
|
||||
if lang[:2] == 'ja':
|
||||
region_code = 'jp-jp'
|
||||
elif lang[:2] == 'sl':
|
||||
region_code = 'sl-sl'
|
||||
|
@ -82,12 +80,8 @@ def request(query, params):
|
|||
offset = (params['pageno'] - 1) * 30
|
||||
|
||||
region_code = get_region_code(params['language'])
|
||||
if region_code:
|
||||
params['url'] = url.format(
|
||||
query=urlencode({'q': query, 'kl': region_code}), offset=offset, dc_param=offset)
|
||||
else:
|
||||
params['url'] = url.format(
|
||||
query=urlencode({'q': query}), offset=offset, dc_param=offset)
|
||||
params['url'] = url.format(
|
||||
query=urlencode({'q': query, 'kl': region_code}), offset=offset, dc_param=offset)
|
||||
|
||||
if params['time_range'] in time_range_dict:
|
||||
params['url'] += time_range_url.format(range=time_range_dict[params['time_range']])
|
||||
|
|
|
@ -53,12 +53,8 @@ def request(query, params):
|
|||
safesearch = params['safesearch'] - 1
|
||||
|
||||
region_code = get_region_code(params['language'], lang_list=supported_languages)
|
||||
if region_code:
|
||||
params['url'] = images_url.format(
|
||||
query=urlencode({'q': query, 'l': region_code}), offset=offset, safesearch=safesearch, vqd=vqd)
|
||||
else:
|
||||
params['url'] = images_url.format(
|
||||
query=urlencode({'q': query}), offset=offset, safesearch=safesearch, vqd=vqd)
|
||||
params['url'] = images_url.format(
|
||||
query=urlencode({'q': query, 'l': region_code}), offset=offset, safesearch=safesearch, vqd=vqd)
|
||||
|
||||
return params
|
||||
|
||||
|
|
|
@ -40,10 +40,7 @@ def request(query, params):
|
|||
offset = (params['pageno'] - 1) * number_of_results + 1
|
||||
categorie = search_category.get(params['category'], 'web')
|
||||
|
||||
if params['language'] == 'all':
|
||||
language = 'en'
|
||||
else:
|
||||
language = params['language'].split('_')[0]
|
||||
language = params['language'].split('-')[0]
|
||||
|
||||
# if language is not supported, put it in english
|
||||
if language != 'en' and\
|
||||
|
|
|
@ -49,12 +49,9 @@ supported_languages_url = 'https://gigablast.com/search?&rxikd=1'
|
|||
def request(query, params):
|
||||
offset = (params['pageno'] - 1) * number_of_results
|
||||
|
||||
if params['language'] == 'all':
|
||||
language = 'xx'
|
||||
else:
|
||||
language = params['language'].replace('-', '_').lower()
|
||||
if language.split('-')[0] != 'zh':
|
||||
language = language.split('-')[0]
|
||||
language = params['language'].replace('-', '_').lower()
|
||||
if language.split('-')[0] != 'zh':
|
||||
language = language.split('-')[0]
|
||||
|
||||
if params['safesearch'] >= 1:
|
||||
safesearch = 1
|
||||
|
|
|
@ -165,7 +165,8 @@ def extract_text_from_dom(result, xpath):
|
|||
def request(query, params):
|
||||
offset = (params['pageno'] - 1) * 10
|
||||
|
||||
if params['language'] == 'all':
|
||||
# temporary fix until a way of supporting en-US is found
|
||||
if params['language'] == 'en-US':
|
||||
params['language'] = 'en-GB'
|
||||
|
||||
if params['language'][:2] == 'jv':
|
||||
|
|
|
@ -50,9 +50,8 @@ def request(query, params):
|
|||
params['url'] = search_url.format(query=urlencode({'q': query}),
|
||||
search_options=urlencode(search_options))
|
||||
|
||||
if params['language'] != 'all':
|
||||
language_array = params['language'].lower().split('-')
|
||||
params['url'] += '&lr=lang_' + language_array[0]
|
||||
language_array = params['language'].lower().split('-')
|
||||
params['url'] += '&lr=lang_' + language_array[0]
|
||||
|
||||
return params
|
||||
|
||||
|
|
|
@ -45,10 +45,7 @@ def request(query, params):
|
|||
|
||||
format_strings = list(Formatter().parse(base_url))
|
||||
|
||||
if params['language'] == 'all':
|
||||
language = 'en'
|
||||
else:
|
||||
language = params['language'].split('-')[0]
|
||||
language = params['language'].split('-')[0]
|
||||
|
||||
# format_string [('https://', 'language', '', None), ('.wikipedia.org/', None, None, None)]
|
||||
if any(x[1] == 'language' for x in format_strings):
|
||||
|
|
|
@ -35,10 +35,9 @@ def request(query, params):
|
|||
search_string.format(query=urlencode({'q': query}),
|
||||
limit=number_of_results)
|
||||
|
||||
if params['language'] != 'all':
|
||||
language = params['language'].split('_')[0]
|
||||
if language in supported_languages:
|
||||
params['url'] = params['url'] + "&lang=" + language
|
||||
language = params['language'].split('-')[0]
|
||||
if language in supported_languages:
|
||||
params['url'] = params['url'] + "&lang=" + language
|
||||
|
||||
# using searx User-Agent
|
||||
params['headers']['User-Agent'] = searx_useragent()
|
||||
|
|
|
@ -44,18 +44,17 @@ def request(query, params):
|
|||
query=urlencode({'q': query}),
|
||||
offset=offset)
|
||||
|
||||
# add language tag if specified
|
||||
if params['language'] != 'all':
|
||||
if params['language'] == 'no' or params['language'].startswith('no-'):
|
||||
params['language'] = params['language'].replace('no', 'nb', 1)
|
||||
if params['language'].find('-') < 0:
|
||||
# tries to get a country code from language
|
||||
for lang in supported_languages:
|
||||
lc = lang.split('-')
|
||||
if params['language'] == lc[0]:
|
||||
params['language'] = lang
|
||||
break
|
||||
params['url'] += '&locale=' + params['language'].replace('-', '_').lower()
|
||||
# add language tag
|
||||
if params['language'] == 'no' or params['language'].startswith('no-'):
|
||||
params['language'] = params['language'].replace('no', 'nb', 1)
|
||||
if params['language'].find('-') < 0:
|
||||
# tries to get a country code from language
|
||||
for lang in supported_languages:
|
||||
lc = lang.split('-')
|
||||
if params['language'] == lc[0]:
|
||||
params['language'] = lang
|
||||
break
|
||||
params['url'] += '&locale=' + params['language'].replace('-', '_').lower()
|
||||
|
||||
return params
|
||||
|
||||
|
|
|
@ -45,9 +45,8 @@ def request(query, params):
|
|||
params['data'] = {'query': query,
|
||||
'startat': offset}
|
||||
|
||||
# set language if specified
|
||||
if params['language'] != 'all':
|
||||
params['data']['with_language'] = ('lang_' + params['language'].split('-')[0])
|
||||
# set language
|
||||
params['data']['with_language'] = ('lang_' + params['language'].split('-')[0])
|
||||
|
||||
return params
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ def response(resp):
|
|||
search_lang = 'Farsi'
|
||||
elif resp.search_params['language'] == 'pt-BR':
|
||||
search_lang = 'Brazilian'
|
||||
elif resp.search_params['language'] != 'all':
|
||||
else:
|
||||
search_lang = [lc[3]
|
||||
for lc in language_codes
|
||||
if lc[0].split('-')[0] == resp.search_params['language'].split('-')[0]]
|
||||
|
|
|
@ -35,10 +35,7 @@ regex_img_url_remove_start = re.compile(b'^https?://i\.swisscows\.ch/\?link=')
|
|||
|
||||
# do search-request
|
||||
def request(query, params):
|
||||
if params['language'] == 'all':
|
||||
ui_language = 'browser'
|
||||
region = 'browser'
|
||||
elif params['language'].split('-')[0] == 'no':
|
||||
if params['language'].split('-')[0] == 'no':
|
||||
region = 'nb-NO'
|
||||
else:
|
||||
region = params['language']
|
||||
|
|
|
@ -37,12 +37,7 @@ timestamp_xpath = './/span[contains(@class,"_timestamp")]'
|
|||
# do search-request
|
||||
def request(query, params):
|
||||
params['url'] = search_url + urlencode({'q': query})
|
||||
|
||||
# set language if specified
|
||||
if params['language'] != 'all':
|
||||
params['cookies']['lang'] = params['language'].split('-')[0]
|
||||
else:
|
||||
params['cookies']['lang'] = 'en'
|
||||
params['cookies']['lang'] = params['language'].split('-')[0]
|
||||
|
||||
return params
|
||||
|
||||
|
|
|
@ -57,8 +57,6 @@ calendar_name_xpath = './/sup[contains(@class,"wb-calendar-name")]'
|
|||
|
||||
def request(query, params):
|
||||
language = params['language'].split('-')[0]
|
||||
if language == 'all':
|
||||
language = 'en'
|
||||
|
||||
params['url'] = url_search.format(
|
||||
query=urlencode({'label': query, 'language': language}))
|
||||
|
@ -71,8 +69,6 @@ def response(resp):
|
|||
wikidata_ids = html.xpath(wikidata_ids_xpath)
|
||||
|
||||
language = resp.search_params['language'].split('-')[0]
|
||||
if language == 'all':
|
||||
language = 'en'
|
||||
|
||||
# TODO: make requests asynchronous to avoid timeout when result_count > 1
|
||||
for wikidata_id in wikidata_ids[:result_count]:
|
||||
|
|
|
@ -31,7 +31,7 @@ supported_languages_url = 'https://meta.wikimedia.org/wiki/List_of_Wikipedias'
|
|||
# set language in base_url
|
||||
def url_lang(lang):
|
||||
lang = lang.split('-')[0]
|
||||
if lang == 'all' or lang not in supported_languages:
|
||||
if lang not in supported_languages:
|
||||
language = 'en'
|
||||
else:
|
||||
language = lang
|
||||
|
|
|
@ -51,9 +51,7 @@ def request(query, params):
|
|||
limit=number_of_results,
|
||||
search_type=search_type)
|
||||
|
||||
# add language tag if specified
|
||||
if params['language'] != 'all':
|
||||
params['url'] += '&lr=lang_' + params['language'].split('-')[0]
|
||||
params['url'] += '&lr=lang_' + params['language'].split('-')[0]
|
||||
|
||||
return params
|
||||
|
||||
|
|
|
@ -71,9 +71,7 @@ def _get_url(query, offset, language, time_range):
|
|||
|
||||
|
||||
def _get_language(params):
|
||||
if params['language'] == 'all':
|
||||
return 'en'
|
||||
elif params['language'][:2] == 'zh':
|
||||
if params['language'][:2] == 'zh':
|
||||
if params['language'] == 'zh' or params['language'] == 'zh-CH':
|
||||
return 'szh'
|
||||
else:
|
||||
|
|
|
@ -38,10 +38,7 @@ suggestion_xpath = '//div[contains(@class,"VerALSOTRY")]//a'
|
|||
def request(query, params):
|
||||
offset = (params['pageno'] - 1) * 10 + 1
|
||||
|
||||
if params['language'] == 'all':
|
||||
language = 'en'
|
||||
else:
|
||||
language = params['language'].split('_')[0]
|
||||
language = params['language'].split('-')[0]
|
||||
|
||||
params['url'] = search_url.format(offset=offset,
|
||||
query=urlencode({'p': query}),
|
||||
|
|
|
@ -34,9 +34,7 @@ def request(query, params):
|
|||
params['url'] = search_url.format(query=urlencode({'q': query}),
|
||||
api_key=api_key)
|
||||
|
||||
# add language tag if specified
|
||||
if params['language'] != 'all':
|
||||
params['url'] += '&relevanceLanguage=' + params['language'].split('-')[0]
|
||||
params['url'] += '&relevanceLanguage=' + params['language'].split('-')[0]
|
||||
|
||||
return params
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue