.oO SearXNG Developer Documentation Oo.
Loading...
Searching...
No Matches
scanr_structures.py
Go to the documentation of this file.
1
# SPDX-License-Identifier: AGPL-3.0-or-later
2
"""
3
ScanR Structures (Science)
4
"""
5
6
from
json
import
loads, dumps
7
from
searx.utils
import
html_to_text
8
9
# about
10
about = {
11
"website"
:
'https://scanr.enseignementsup-recherche.gouv.fr'
,
12
"wikidata_id"
:
'Q44105684'
,
13
"official_api_documentation"
:
'https://scanr.enseignementsup-recherche.gouv.fr/opendata'
,
14
"use_official_api"
:
True
,
15
"require_api_key"
:
False
,
16
"results"
:
'JSON'
,
17
}
18
19
# engine dependent config
20
categories = [
'science'
]
21
paging =
True
22
page_size = 20
23
24
# search-url
25
url =
'https://scanr.enseignementsup-recherche.gouv.fr/'
26
search_url = url +
'api/structures/search'
27
28
29
# do search-request
30
def
request
(query, params):
31
32
params[
'url'
] = search_url
33
params[
'method'
] =
'POST'
34
params[
'headers'
][
'Content-type'
] =
"application/json"
35
params[
'data'
] = dumps(
36
{
37
"query"
: query,
38
"searchField"
:
"ALL"
,
39
"sortDirection"
:
"ASC"
,
40
"sortOrder"
:
"RELEVANCY"
,
41
"page"
: params[
'pageno'
],
42
"pageSize"
: page_size,
43
}
44
)
45
46
return
params
47
48
49
# get response from search-request
50
def
response
(resp):
51
results = []
52
53
search_res = loads(resp.text)
54
55
# return empty array if there are no results
56
if
search_res.get(
'total'
, 0) < 1:
57
return
[]
58
59
# parse results
60
for
result
in
search_res[
'results'
]:
61
if
'id'
not
in
result:
62
continue
63
64
# is it thumbnail or img_src??
65
thumbnail =
None
66
if
'logo'
in
result:
67
thumbnail = result[
'logo'
]
68
if
thumbnail[0] ==
'/'
:
69
thumbnail = url + thumbnail
70
71
content =
None
72
if
'highlights'
in
result:
73
content = result[
'highlights'
][0][
'value'
]
74
75
# append result
76
results.append(
77
{
78
'url'
: url +
'structure/'
+ result[
'id'
],
79
'title'
: result[
'label'
],
80
'thumbnail'
: thumbnail,
81
'content'
: html_to_text(content),
82
}
83
)
84
85
# return results
86
return
results
searx.engines.scanr_structures.request
request(query, params)
Definition
scanr_structures.py:30
searx.engines.scanr_structures.response
response(resp)
Definition
scanr_structures.py:50
searx.utils
Definition
utils.py:1
searxng
searx
engines
scanr_structures.py
Generated on Sat Nov 16 2024 00:10:57 for .oO SearXNG Developer Documentation Oo. by
1.12.0