on master help sign in
[fix] real support of non wikipedia style mediawikis
909424eAdam Tauber
searx/engines/mediawiki.py+11−8
@@ -24,13 +24,13 @@ number_of_results = 1
24
24
25# search-url
25# search-url
26base_url = 'https://{language}.wikipedia.org/'
26base_url = 'https://{language}.wikipedia.org/'
27−search_url = base_url + 'w/api.php?action=query'\
27+search_postfix = 'w/api.php?action=query'\
28− '&list=search'\
28+ '&list=search'\
29− '&{query}'\
29+ '&{query}'\
30− '&srprop=timestamp'\
30+ '&srprop=timestamp'\
31− '&format=json'\
31+ '&format=json'\
32− '&sroffset={offset}'\
32+ '&sroffset={offset}'\
33− '&srlimit={limit}' # noqa
33+ '&srlimit={limit}'
34
34
35
35
36# do search-request
36# do search-request
@@ -48,12 +48,15 @@ def request(query, params):
48 else:
48 else:
49 language = params['language'].split('_')[0]
49 language = params['language'].split('_')[0]
50
50
51− if len(format_strings) > 1:
51+ # format_string [('https://', 'language', '', None), ('.wikipedia.org/', None, None, None)]
52+ if any(x[1] == 'language' for x in format_strings):
52 string_args['language'] = language
53 string_args['language'] = language
53
54
54 # write search-language back to params, required in response
55 # write search-language back to params, required in response
55 params['language'] = language
56 params['language'] = language
56
57
58+ search_url = base_url + search_postfix
59+
57 params['url'] = search_url.format(**string_args)
60 params['url'] = search_url.format(**string_args)
58
61
59 return params
62 return params