[fix] guess country code if not specified in duckduckgo engine

This commit is contained in:
marc 2016-07-14 16:36:52 -05:00
parent 8fc4b8156a
commit aac4ed6971
1 changed files with 8 additions and 1 deletions

View File

@ -16,6 +16,7 @@
from urllib import urlencode from urllib import urlencode
from lxml.html import fromstring from lxml.html import fromstring
from searx.engines.xpath import extract_text from searx.engines.xpath import extract_text
from searx.languages import language_codes
# engine dependent config # engine dependent config
categories = ['general'] categories = ['general']
@ -44,8 +45,14 @@ def request(query, params):
# country code goes first # country code goes first
locale = locale[1].lower() + '-' + locale[0].lower() locale = locale[1].lower() + '-' + locale[0].lower()
else: else:
# doesn't actually do anything because ddg requires both country and language # tries to get a country code from language
locale = locale[0].lower() locale = locale[0].lower()
lang_codes = [x[0] for x in language_codes]
for lc in lang_codes:
lc = lc.split('_')
if locale == lc[0]:
locale = lc[1].lower() + '-' + lc[0].lower()
break
if locale: if locale:
params['url'] = url.format( params['url'] = url.format(