Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
searx-engine
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gargantext
searx-engine
Commits
1b10abfc
Commit
1b10abfc
authored
Nov 01, 2017
by
Noémi Ványi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
minor fixes of doi resolver
Closes #1047
parent
575159b1
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
19 additions
and
32 deletions
+19
-32
oa_doi_rewrite.py
searx/plugins/oa_doi_rewrite.py
+4
-5
preferences.py
searx/preferences.py
+1
-1
preferences.html
searx/templates/oscar/preferences.html
+12
-17
webapp.py
searx/webapp.py
+2
-9
No files found.
searx/plugins/oa_doi_rewrite.py
View file @
1b10abfc
from
flask_babel
import
gettext
from
flask_babel
import
gettext
import
re
import
re
from
searx.url_utils
import
urlparse
,
parse_qsl
from
searx.url_utils
import
urlparse
,
parse_qsl
from
flask
import
request
from
searx
import
settings
from
searx
import
settings
...
@@ -26,12 +25,12 @@ def extract_doi(url):
...
@@ -26,12 +25,12 @@ def extract_doi(url):
return
None
return
None
def
get_doi_resolver
():
def
get_doi_resolver
(
args
,
preference_doi_resolver
):
doi_resolvers
=
settings
[
'doi_resolvers'
]
doi_resolvers
=
settings
[
'doi_resolvers'
]
doi_resolver
=
request
.
args
.
get
(
'doi_resolver'
,
request
.
preferences
.
get_value
(
'doi_resolver'
)
)[
0
]
doi_resolver
=
args
.
get
(
'doi_resolver'
,
preference_doi_resolver
)[
0
]
if
doi_resolver
not
in
doi_resolvers
:
if
doi_resolver
not
in
doi_resolvers
:
doi_resolvers
=
settings
[
'default_doi_resolver'
]
doi_resolvers
=
settings
[
'default_doi_resolver'
]
return
doi_resolver
s
[
doi_resolver
]
return
doi_resolver
def
on_result
(
request
,
search
,
result
):
def
on_result
(
request
,
search
,
result
):
...
@@ -40,6 +39,6 @@ def on_result(request, search, result):
...
@@ -40,6 +39,6 @@ def on_result(request, search, result):
for
suffix
in
(
'/'
,
'.pdf'
,
'/full'
,
'/meta'
,
'/abstract'
):
for
suffix
in
(
'/'
,
'.pdf'
,
'/full'
,
'/meta'
,
'/abstract'
):
if
doi
.
endswith
(
suffix
):
if
doi
.
endswith
(
suffix
):
doi
=
doi
[:
-
len
(
suffix
)]
doi
=
doi
[:
-
len
(
suffix
)]
result
[
'url'
]
=
get_doi_resolver
()
+
doi
result
[
'url'
]
=
get_doi_resolver
(
request
.
args
,
request
.
preferences
.
get_value
(
'doi_resolver'
)
)
+
doi
result
[
'parsed_url'
]
=
urlparse
(
result
[
'url'
])
result
[
'parsed_url'
]
=
urlparse
(
result
[
'url'
])
return
True
return
True
searx/preferences.py
View file @
1b10abfc
...
@@ -15,7 +15,7 @@ LANGUAGE_CODES = [l[0] for l in languages]
...
@@ -15,7 +15,7 @@ LANGUAGE_CODES = [l[0] for l in languages]
LANGUAGE_CODES
.
append
(
'all'
)
LANGUAGE_CODES
.
append
(
'all'
)
DISABLED
=
0
DISABLED
=
0
ENABLED
=
1
ENABLED
=
1
DOI_RESOLVERS
=
[
r
for
r
in
settings
[
'doi_resolvers'
]
.
keys
()]
DOI_RESOLVERS
=
list
(
settings
[
'doi_resolvers'
])
class
MissingArgumentException
(
Exception
):
class
MissingArgumentException
(
Exception
):
...
...
searx/templates/oscar/preferences.html
View file @
1b10abfc
...
@@ -118,6 +118,18 @@
...
@@ -118,6 +118,18 @@
<option
value=
"0"
{%
if
not
results_on_new_tab
%}
selected=
"selected"
{%
endif
%}
>
{{ _('Off')}}
</option>
<option
value=
"0"
{%
if
not
results_on_new_tab
%}
selected=
"selected"
{%
endif
%}
>
{{ _('Off')}}
</option>
</select>
</select>
{{ preferences_item_footer(info, label, rtl) }}
{{ preferences_item_footer(info, label, rtl) }}
{% set label = _('Open Access DOI resolver') %}
{% set info = _('Redirect to open-access versions of publications when available (plugin required)') %}
{{ preferences_item_header(info, label, rtl) }}
<select
class=
"form-control"
id=
'doi_resolver'
name=
'doi_resolver'
>
{% for doi_resolver_name,doi_resolver_url in doi_resolvers.items() %}
<option
value=
"{{ doi_resolver_name }}"
{%
if
doi_resolver_name =
=
current_doi_resolver
%}
selected=
"selected"
{%
endif
%}
>
{{ doi_resolver_name }} - {{ doi_resolver_url }}
</option>
{% endfor %}
</select>
{{ preferences_item_footer(info, label, rtl) }}
</div>
</div>
</fieldset>
</fieldset>
</div>
</div>
...
@@ -223,23 +235,6 @@
...
@@ -223,23 +235,6 @@
</div>
</div>
</div>
</div>
{% endfor %}
{% endfor %}
<div
class=
"panel panel-default"
>
<div
class=
"panel-heading"
>
<h3
class=
"panel-title"
>
{{ _('OA DOI rewrite') }}
</h3>
</div>
<div
class=
"panel-body"
>
<div
class=
"col-xs-6 col-sm-4 col-md-6"
>
{{ _('Avoid paywalls by redirecting to open-access versions of publications when available') }}
</div>
<div
class=
"col-xs-6 col-sm-4 col-md-6"
>
<select
class=
"form-control"
id=
'doi_resolver'
name=
'doi_resolver'
>
{% for doi_resolver_name,doi_resolver_url in doi_resolvers.items() %}
<option
value=
"{{ doi_resolver_name }}"
{%
if
doi_resolver_name =
=
current_doi_resolver
%}
selected=
"selected"
{%
endif
%}
>
{{ doi_resolver_name }} - {{ doi_resolver_url }}
</option>
{% endfor %}
</select>
</div>
</div>
</div>
</div>
</div>
</fieldset>
</fieldset>
</div>
</div>
...
...
searx/webapp.py
View file @
1b10abfc
...
@@ -66,6 +66,7 @@ from searx.search import SearchWithPlugins, get_search_query_from_webapp
...
@@ -66,6 +66,7 @@ from searx.search import SearchWithPlugins, get_search_query_from_webapp
from
searx.query
import
RawTextQuery
from
searx.query
import
RawTextQuery
from
searx.autocomplete
import
searx_bang
,
backends
as
autocomplete_backends
from
searx.autocomplete
import
searx_bang
,
backends
as
autocomplete_backends
from
searx.plugins
import
plugins
from
searx.plugins
import
plugins
from
searx.plugins.oa_doi_rewrite
import
get_doi_resolver
from
searx.preferences
import
Preferences
,
ValidationException
from
searx.preferences
import
Preferences
,
ValidationException
from
searx.answerers
import
answerers
from
searx.answerers
import
answerers
from
searx.url_utils
import
urlencode
,
urlparse
,
urljoin
from
searx.url_utils
import
urlencode
,
urlparse
,
urljoin
...
@@ -164,14 +165,6 @@ def get_locale():
...
@@ -164,14 +165,6 @@ def get_locale():
return
locale
return
locale
def
get_doi_resolver
():
doi_resolvers
=
settings
[
'doi_resolvers'
]
doi_resolver
=
request
.
args
.
get
(
'doi_resolver'
,
request
.
preferences
.
get_value
(
'doi_resolver'
))[
0
]
if
doi_resolver
not
in
doi_resolvers
:
doi_resolvers
=
settings
[
'default_doi_resolver'
]
return
doi_resolver
# code-highlighter
# code-highlighter
@
app
.
template_filter
(
'code_highlighter'
)
@
app
.
template_filter
(
'code_highlighter'
)
def
code_highlighter
(
codelines
,
language
=
None
):
def
code_highlighter
(
codelines
,
language
=
None
):
...
@@ -704,7 +697,7 @@ def preferences():
...
@@ -704,7 +697,7 @@ def preferences():
themes
=
themes
,
themes
=
themes
,
plugins
=
plugins
,
plugins
=
plugins
,
doi_resolvers
=
settings
[
'doi_resolvers'
],
doi_resolvers
=
settings
[
'doi_resolvers'
],
current_doi_resolver
=
get_doi_resolver
(),
current_doi_resolver
=
get_doi_resolver
(
request
.
args
,
request
.
preferences
.
get_value
(
'doi_resolver'
)
),
allowed_plugins
=
allowed_plugins
,
allowed_plugins
=
allowed_plugins
,
theme
=
get_current_theme_name
(),
theme
=
get_current_theme_name
(),
preferences_url_params
=
request
.
preferences
.
get_as_url_params
(),
preferences_url_params
=
request
.
preferences
.
get_as_url_params
(),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment