diff --git a/searx/plugins/oa_doi_rewrite.py b/searx/plugins/oa_doi_rewrite.py index eef29f10..02a71294 100644 --- a/searx/plugins/oa_doi_rewrite.py +++ b/searx/plugins/oa_doi_rewrite.py @@ -29,7 +29,7 @@ def get_doi_resolver(args, preference_doi_resolver): doi_resolvers = settings['doi_resolvers'] doi_resolver = args.get('doi_resolver', preference_doi_resolver)[0] if doi_resolver not in doi_resolvers: - doi_resolvers = settings['default_doi_resolver'] + doi_resolver = settings['default_doi_resolver'] doi_resolver_url = doi_resolvers[doi_resolver] return doi_resolver_url @@ -40,7 +40,7 @@ def on_result(request, search, result): doi = extract_doi(result['parsed_url']) if doi and len(doi) < 50: - for suffix in ('/', '.pdf', '/full', '/meta', '/abstract'): + for suffix in ('/', '.pdf', '.xml', '/full', '/meta', '/abstract'): if doi.endswith(suffix): doi = doi[:-len(suffix)] result['url'] = get_doi_resolver(request.args, request.preferences.get_value('doi_resolver')) + doi diff --git a/searx/preferences.py b/searx/preferences.py index a9f16ff7..1c4aab33 100644 --- a/searx/preferences.py +++ b/searx/preferences.py @@ -387,7 +387,7 @@ class Preferences: } ), 'doi_resolver': MultipleChoiceSetting( - ['oadoi.org'], + [settings['default_doi_resolver'], ], is_locked('doi_resolver'), choices=DOI_RESOLVERS ), diff --git a/searx/settings.yml b/searx/settings.yml index 84aca86f..50bccb1e 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -1395,4 +1395,4 @@ doi_resolvers : doai.io : 'https://dissem.in/' sci-hub.tw : 'https://sci-hub.tw/' -default_doi_resolver : 'sci-hub.tw' +default_doi_resolver : 'oadoi.org' diff --git a/searx/templates/oscar/preferences.html b/searx/templates/oscar/preferences.html index 6d593840..3f9192e2 100644 --- a/searx/templates/oscar/preferences.html +++ b/searx/templates/oscar/preferences.html @@ -165,7 +165,7 @@ {{ preferences_item_header(info, label, rtl, 'doi_resolver') }} {%- for doi_resolver_name,doi_resolver_url in doi_resolvers.items() -%} - {%- endfor -%}