.oO SearXNG Developer Documentation Oo.
Loading...
Searching...
No Matches
steam.py
Go to the documentation of this file.
1
# SPDX-License-Identifier: AGPL-3.0-or-later
2
"""Steam (store) for SearXNG."""
3
4
from
urllib.parse
import
urlencode
5
6
from
searx.utils
import
html_to_text
7
from
searx.result_types
import
EngineResults, MainResult
8
9
about = {
10
"website"
:
'https://store.steampowered.com/'
,
11
"wikidata_id"
:
'Q337535'
,
12
"use_official_api"
:
False
,
13
"require_api_key"
:
False
,
14
"results"
:
'JSON'
,
15
}
16
17
categories = []
18
19
base_url =
"https://store.steampowered.com"
20
21
22
def
request
(query, params):
23
query_params = {
"term"
: query,
"cc"
:
"us"
,
"l"
:
"en"
}
24
params[
'url'
] = f
'{base_url}/api/storesearch/?{urlencode(query_params)}'
25
return
params
26
27
28
def
response
(resp) -> EngineResults:
29
results =
EngineResults
()
30
search_results = resp.json()
31
32
for
item
in
search_results.get(
'items'
, []):
33
app_id = item.get(
'id'
)
34
35
currency = item.get(
'price'
, {}).get(
'currency'
,
'USD'
)
36
price = item.get(
'price'
, {}).get(
'final'
, 0) / 100
37
38
platforms =
', '
.join([platform
for
platform, supported
in
item.get(
'platforms'
, {}).items()
if
supported])
39
40
content = [f
'Price: {price:.2f} {currency}'
, f
'Platforms: {platforms}'
]
41
42
results.add(
43
MainResult
(
44
title=item.get(
'name'
),
45
content=html_to_text(
' | '
.join(content)),
46
url=f
'{base_url}/app/{app_id}'
,
47
thumbnail=item.get(
'tiny_image'
,
''
),
48
)
49
)
50
51
return
results
searx.result_types.EngineResults
Definition
__init__.py:51
searx.result_types._base.MainResult
Definition
_base.py:344
searx.engines.steam.response
EngineResults response(resp)
Definition
steam.py:28
searx.engines.steam.request
request(query, params)
Definition
steam.py:22
searx.result_types
Definition
__init__.py:1
searx.utils
Definition
utils.py:1
searxng
searx
engines
steam.py
Generated on Thu Apr 24 2025 22:38:20 for .oO SearXNG Developer Documentation Oo. by
1.13.2