1 Commits

Author SHA1 Message Date
searxng-bot
9d4bc7be91 [data] update searx.data - update_firefox_version.py 2025-12-29 00:18:06 +00:00
9 changed files with 269 additions and 697 deletions

View File

@@ -124,17 +124,14 @@ engine is shown. Most of the options have a default value or even are optional.
``api_key`` : optional
In a few cases, using an API needs the use of a secret key. How to obtain them
is described in the file. Engines that require an API key are set to
``inactive: true`` by default. To enable such an engine, provide the API key
and set ``inactive: false``.
is described in the file.
``disabled`` : optional
To disable by default the engine, but not deleting it. It will allow the user
to manually activate it in the settings.
``inactive``: optional
Remove the engine from the settings (*disabled & removed*). This defaults to ``true`` for engines
that require an API key, please see the ``api_key`` section if you want to enable such an engine.
Remove the engine from the settings (*disabled & removed*).
``language`` : optional
If you want to use another language for a specific engine, you can define it

View File

@@ -4,33 +4,15 @@
Search API
==========
SearXNG supports querying via a simple HTTP API.
Two endpoints, ``/`` and ``/search``, are supported for both GET and POST methods.
The GET method expects parameters as URL query parameters, while the POST method expects parameters as form data.
The search supports both ``GET`` and ``POST``.
If you want to consume the results as JSON, CSV, or RSS, you need to set the
``format`` parameter accordingly. Supported formats are defined in ``settings.yml``, under the ``search`` section.
Requesting an unset format will return a 403 Forbidden error. Be aware that many public instances have these formats disabled.
Furthermore, two endpoints ``/`` and ``/search`` are available for querying.
Endpoints:
``GET /``
``GET /search``
``POST /``
``POST /search``
example cURL calls:
.. code-block:: bash
curl 'https://searx.example.org/search?q=searxng&format=json'
curl -X POST 'https://searx.example.org/search' -d 'q=searxng&format=csv'
curl -L -X POST -d 'q=searxng&format=json' 'https://searx.example.org/'
Parameters
==========

File diff suppressed because it is too large Load Diff

View File

@@ -345,7 +345,6 @@
"af": "Australiese dollar",
"ar": "دولار أسترالي",
"bg": "Австралийски долар",
"bn": "অস্ট্রেলীয় ডলার",
"ca": "dòlar australià",
"cs": "australský dolar",
"cy": "Doler Awstralia",
@@ -567,7 +566,6 @@
"fi": "Bangladeshin taka",
"fr": "taka",
"ga": "taka na Banglaidéise",
"gl": "taka",
"he": "טאקה",
"hr": "Bangladeška taka",
"hu": "bangladesi taka",
@@ -648,7 +646,6 @@
"fi": "Bahrainin dinaari",
"fr": "dinar bahreïnien",
"ga": "dinar Bhairéin",
"gl": "dinar de Bahrain",
"he": "דינר בחרייני",
"hr": "Bahreinski dinar",
"hu": "bahreini dinár",
@@ -972,7 +969,7 @@
"et": "Botswana pula",
"eu": "Pula",
"fi": "Pula",
"fr": "Pula",
"fr": "pula",
"ga": "pula na Botsuáine",
"gl": "Pula",
"he": "פולה",
@@ -1278,10 +1275,6 @@
"uk": "Чилійський песо",
"vi": "Peso Chile"
},
"CNH": {
"en": "renminbi (offshore)",
"es": "yuan offshore"
},
"CNY": {
"af": "Renminbi",
"ar": "رنمينبي",
@@ -1294,7 +1287,7 @@
"da": "Renminbi",
"de": "Renminbi",
"dv": "ރެންމިބީ",
"en": "CNY",
"en": "renminbi",
"eo": "Renminbio",
"es": "yuan chino",
"et": "Renminbi",
@@ -1338,7 +1331,7 @@
"cs": "Kolumbijské peso",
"da": "Colombiansk peso",
"de": "kolumbianischer Peso",
"en": "Colombian peso",
"en": "peso",
"eo": "kolombia peso",
"es": "peso",
"et": "Colombia peeso",
@@ -1422,7 +1415,7 @@
"cy": "peso (Ciwba)",
"da": "Cubanske pesos",
"de": "kubanischer Peso",
"en": "Cuban peso",
"en": "peso",
"eo": "kuba peso",
"es": "peso",
"fi": "Kuuban peso",
@@ -1468,7 +1461,6 @@
"fi": "Kap Verden escudo",
"fr": "escudo cap-verdien",
"ga": "escudo Rinn Verde",
"gl": "escudo caboverdiano",
"he": "אשקודו כף ורדי",
"hr": "Zelenortski eskudo",
"hu": "zöld-foki köztársasági escudo",
@@ -1817,7 +1809,7 @@
"bg": "евро",
"bn": "ইউরো",
"ca": "euro",
"cs": "euro",
"cs": "Euro",
"cy": "Ewro",
"da": "Euro",
"de": "Euro",
@@ -1966,7 +1958,7 @@
"lt": "svaras sterlingų",
"lv": "sterliņu mārciņa",
"ms": "paun sterling",
"nl": "Britse pond",
"nl": "pond sterling",
"oc": "liure esterlina",
"pa": "ਪਾਊਂਡ ਸਟਰਲਿੰਗ",
"pl": "funt szterling",
@@ -2037,7 +2029,7 @@
"eo": "ganaa cedio",
"es": "cedi",
"fi": "Cedi",
"fr": "Cedi",
"fr": "cedi",
"ga": "cedi",
"gl": "Cedi",
"he": "סדי גאני",
@@ -2076,7 +2068,7 @@
"es": "libra gibraltareña",
"et": "Gibraltari nael",
"fi": "Gibraltarin punta",
"fr": "Livre de Gibraltar",
"fr": "livre de Gibraltar",
"ga": "punt Ghiobráltar",
"gl": "Libra de Xibraltar",
"he": "לירה גיברלטרית",
@@ -3590,7 +3582,7 @@
"cy": "tögrög Mongolia",
"da": "Tugrik",
"de": "Tögrög",
"en": "Mongolian tögrög",
"en": "tugrik",
"eo": "mongola tugriko",
"es": "tugrik mongol",
"fi": "Mongolian tugrik",
@@ -3807,7 +3799,7 @@
"bg": "Мексиканско песо",
"ca": "peso mexicà",
"cs": "Mexické peso",
"cy": "peso",
"cy": "peso (Mecsico)",
"de": "Mexikanischer Peso",
"en": "peso",
"eo": "meksika peso",
@@ -3843,7 +3835,7 @@
"tr": "Meksika pesosu",
"tt": "Миксикә писысы",
"uk": "мексиканський песо",
"vi": "peso"
"vi": "Peso México"
},
"MXV": {
"de": "UNIDAD DE INVERSION",
@@ -3856,7 +3848,7 @@
"ar": "رينغيت ماليزي",
"bg": "Малайзийски рингит",
"ca": "ringgit",
"cs": "malajsijský ringgit",
"cs": "Malajsijský ringgit",
"cy": "ringgit Maleisia",
"de": "Ringgit",
"en": "Malaysian ringgit",
@@ -4677,7 +4669,7 @@
"eo": "rusa rublo",
"es": "rublo ruso",
"et": "Venemaa rubla",
"eu": "errusiar errublo",
"eu": "Errusiar errublo",
"fi": "Venäjän rupla",
"fr": "rouble russe",
"ga": "rúbal na Rúise",
@@ -4761,7 +4753,6 @@
"fi": "Saudi-Arabian rial",
"fr": "riyal saoudien",
"ga": "riyal na hAraibe Sádaí",
"gl": "riyal saudita",
"he": "ריאל סעודי",
"hr": "Saudijski rijal",
"hu": "szaúdi riál",
@@ -5424,7 +5415,6 @@
"oc": "dinar tunisian",
"pl": "Dinar tunezyjski",
"pt": "dinar tunisiano",
"ro": "dinar tunisian",
"ru": "тунисский динар",
"sk": "Tuniský dinár",
"sl": "tunizijski dinar",
@@ -5765,7 +5755,7 @@
"en": "US Dollar (Next day)"
},
"UYI": {
"en": "Uruguay Peso en Unidades Indexadas"
"en": "Uruguay peso en Unidades Indexadas"
},
"UYU": {
"af": "Uruguaanse Peso",
@@ -7036,7 +7026,6 @@
"birr etiopia": "ETB",
"birr etíope": "ETB",
"birr éthiopien": "ETB",
"birr éthiopienne": "ETB",
"birr habsyah": "ETB",
"birr na haetóipe": "ETB",
"birre da etiópia": "ETB",
@@ -7223,7 +7212,6 @@
"ceatsal": "GTQ",
"cebelitarık sterlini": "GIP",
"cedi": "GHS",
"cedi du ghana": "GHS",
"cedi ghana": "GHS",
"cedi ghanese": "GHS",
"centr afrika franko": "XAF",
@@ -7291,10 +7279,7 @@
"chilensk peso": "CLP",
"chilské peso": "CLP",
"chinese renminbi": "CNY",
"chinese yuan": [
"CNY",
"CNH"
],
"chinese yuan": "CNY",
"chinesischer renminbi": "CNY",
"ci$": "KYD",
"cibuti frangı": "DJF",
@@ -7304,7 +7289,6 @@
"clp": "CLP",
"clp$": "CLP",
"clps": "CLP",
"cnh": "CNH",
"cny": "CNY",
"co $": "COP",
"co$": "COP",
@@ -7545,6 +7529,7 @@
"203"
],
"cирійський фунт": "SYP",
"d.r.": "EGP",
"da": "DZD",
"dalase": "GMD",
"dalasi": "GMD",
@@ -8224,7 +8209,6 @@
"HKD",
"AUD"
],
"dollars barbados": "BBD",
"dom$": "DOP",
"dominga peso": "DOP",
"dominicaanse peso": "DOP",
@@ -8439,6 +8423,7 @@
"dólares canadenses": "CAD",
"dólares estadounidenses": "USD",
"dólares neozelandeses": "NZD",
"dr": "EGP",
"dram": "AMD",
"dram armean": "AMD",
"dram armenia": "AMD",
@@ -8466,6 +8451,7 @@
"džibučio frankas": "DJF",
"džibutski franak": "DJF",
"džibutský frank": "DJF",
"d£": "EGP",
"e": "SZL",
"e rupee": "INR",
"e.m.u. 6": "XBB",
@@ -8524,7 +8510,6 @@
"ermenistan dramı": "AMD",
"ern": "ERN",
"erreal brasildar": "BRL",
"errublo": "RUB",
"errublo errusiar": "RUB",
"errupia indiar": "INR",
"errupia indonesiar": "IDR",
@@ -10250,7 +10235,6 @@
"manat de turkmenistan": "TMT",
"manat de turkmenistán": "TMT",
"manat del turkmenistan": "TMT",
"manat di azerbeidjan": "AZN",
"manat do azerbaijão": "AZN",
"manat na hasarbaiseáine": "AZN",
"manat newydd tyrcmenestan": "TMT",
@@ -11269,10 +11253,7 @@
"rends": "ZAR",
"renmibi": "CNY",
"renminb": "CNY",
"renminbi": [
"CNH",
"CNY"
],
"renminbi": "CNY",
"renminbi cinese": "CNY",
"renminbi yuan": "CNY",
"renminbio": "CNY",
@@ -12789,14 +12770,10 @@
"yhdistyneiden arabiemiraattien dirhami": "AED",
"yhdysvaltain dollari": "USD",
"ytl": "TRY",
"yuan": [
"CNH",
"CNY"
],
"yuan": "CNY",
"yuan chinezesc": "CNY",
"yuan chino": "CNY",
"yuan cinese": "CNY",
"yuan offshore": "CNH",
"yuan renmimbi": "CNY",
"yuan renminbi": "CNY",
"yuan rmb": "CNY",
@@ -12997,8 +12974,7 @@
"£s": "SYP",
"¥": [
"JPY",
"CNY",
"CNH"
"CNY"
],
"đài tệ": "TWD",
"đại hàn dân quốc weon": "KRW",
@@ -15092,7 +15068,6 @@
"ޕާކިސްތާނީ ރުޕީ": "PKR",
"रू": "NPR",
"रू.": "INR",
"অস্ট্রেলীয় ডলার": "AUD",
"অ্যাঙ্গোলীয় কুয়াঞ্জা": "AOA",
"আইসল্যান্ডীয় ক্রোনা": "ISK",
"আজারবাইজানি মানাত": "AZN",

File diff suppressed because it is too large Load Diff

View File

@@ -2319,6 +2319,11 @@
"symbol": "kJ/(kg K)",
"to_si_factor": 1000.0
},
"Q108888186": {
"si_name": "Q11570",
"symbol": "eV/c²",
"to_si_factor": 1.782661921627898e-36
},
"Q108888198": {
"si_name": "Q11570",
"symbol": "keV/c²",
@@ -4389,11 +4394,6 @@
"symbol": "m²",
"to_si_factor": 1.0
},
"Q25376902": {
"si_name": null,
"symbol": "Mbp",
"to_si_factor": null
},
"Q25377184": {
"si_name": "Q25377184",
"symbol": "kg/m²",
@@ -5344,6 +5344,11 @@
"symbol": "bhp EDR",
"to_si_factor": 12.958174
},
"Q3984193": {
"si_name": "Q25269",
"symbol": "TeV",
"to_si_factor": 1.602176634e-07
},
"Q39978339": {
"si_name": "Q25377184",
"symbol": "kg/cm²",

View File

@@ -2,18 +2,10 @@
# pylint: disable=invalid-name
"""360Search search engine for searxng"""
import typing as t
from urllib.parse import urlencode
from lxml import html
from searx import logger
from searx.enginelib import EngineCache
from searx.utils import extract_text
from searx.network import get as http_get
if t.TYPE_CHECKING:
from searx.extended_types import SXNG_Response
# Metadata
about = {
@@ -34,35 +26,6 @@ time_range_dict = {'day': 'd', 'week': 'w', 'month': 'm', 'year': 'y'}
# Base URL
base_url = "https://www.so.com"
COOKIE_CACHE_KEY = "cookie"
COOKIE_CACHE_EXPIRATION_SECONDS = 3600
CACHE: EngineCache
"""Stores cookies from 360search to avoid re-fetching them on every request."""
def setup(engine_settings: dict[str, t.Any]) -> bool:
"""Initialization of the engine.
- Instantiate a cache for this engine (:py:obj:`CACHE`).
"""
global CACHE # pylint: disable=global-statement
# table name needs to be quoted to start with digits, so "cache" has been added to avoid sqlite complaining
CACHE = EngineCache("cache" + engine_settings["name"])
return True
def get_cookie(url: str) -> str:
cookie: str | None = CACHE.get(COOKIE_CACHE_KEY)
if cookie:
return cookie
resp: SXNG_Response = http_get(url, timeout=10, allow_redirects=False)
headers = resp.headers
cookie = headers['set-cookie'].split(";")[0]
CACHE.set(key=COOKIE_CACHE_KEY, value=cookie, expire=COOKIE_CACHE_EXPIRATION_SECONDS)
return cookie
def request(query, params):
@@ -73,13 +36,8 @@ def request(query, params):
if time_range_dict.get(params['time_range']):
query_params["adv_t"] = time_range_dict.get(params['time_range'])
params["url"] = f"{base_url}/s?{urlencode(query_params)}"
# get token by calling the query page
logger.debug("querying url: %s", params["url"])
cookie = get_cookie(params["url"])
logger.debug("obtained cookie: %s", cookie)
params['headers'] = {'Cookie': cookie}
params["url"] = f"{base_url}/s?{urlencode(query_params)}"
return params

View File

@@ -51,7 +51,6 @@ def request(query, params):
}
params["url"] = f"{base_url}?{urlencode(query_params)}"
params["headers"]["Referer"] = "https://www.bilibili.com"
params["cookies"] = cookie
return params

View File

@@ -341,7 +341,6 @@ engines:
- name: 360search
engine: 360search
shortcut: 360so
timeout: 10.0
disabled: true
- name: 360search videos
@@ -481,14 +480,14 @@ engines:
shortcut: ask
disabled: true
- name: azure
engine: azure
shortcut: az
categories: [it, cloud]
# azure_tenant_id: "your_tenant_id"
# azure_client_id: "your_client_id"
# azure_client_secret: "your_client_secret"
inactive: true
# - name: azure
# engine: azure
# shortcut: az
# categories: [it, cloud]
# azure_tenant_id: "your_tenant_id"
# azure_client_id: "your_client_id"
# azure_client_secret: "your_client_secret"
# disabled: true
# tmp suspended: dh key too small
# - name: base
@@ -650,7 +649,7 @@ engines:
# cf_ai_model_assistant: 'prompts_for_assistant_role'
# cf_ai_model_system: 'prompts_for_system_role'
timeout: 30
inactive: true
disabled: true
- name: core.ac.uk
engine: core
@@ -784,20 +783,20 @@ engines:
require_api_key: false
results: HTML
- name: elasticsearch
shortcut: els
engine: elasticsearch
# base_url: http://localhost:9200
# username: elastic
# password: changeme
# index: my-index
# enable_http: true
# available options: match, simple_query_string, term, terms, custom
query_type: match
# if query_type is set to custom, provide your query here
# custom_query_json: {"query":{"match_all": {}}}
# show_metadata: false
inactive: true
# - name: elasticsearch
# shortcut: els
# engine: elasticsearch
# base_url: http://localhost:9200
# username: elastic
# password: changeme
# index: my-index
# enable_http: true
# # available options: match, simple_query_string, term, terms, custom
# query_type: match
# # if query_type is set to custom, provide your query here
# # custom_query_json: {"query":{"match_all": {}}}
# # show_metadata: false
# disabled: true
- name: wikidata
engine: wikidata
@@ -875,12 +874,12 @@ engines:
require_api_key: false
results: HTML
- name: ebay
engine: ebay
shortcut: eb
base_url: 'https://www.ebay.com'
inactive: true
timeout: 5
# - name: ebay
# engine: ebay
# shortcut: eb
# base_url: 'https://www.ebay.com'
# disabled: true
# timeout: 5
- name: 1x
engine: www1x
@@ -901,16 +900,12 @@ engines:
- name: flickr
categories: images
shortcut: fl
engine: flickr_noapi
- name: flickr_api
# You can use the engine using the official stable API, but you need an API
# key, see: https://www.flickr.com/services/apps/create/
engine: flickr
categories: images
shortcut: fla
# engine: flickr
# api_key: 'apikey' # required!
inactive: true
# Or you can use the html non-stable engine, activated by default
engine: flickr_noapi
- name: free software directory
engine: mediawiki
@@ -924,13 +919,13 @@ engines:
website: https://directory.fsf.org/
wikidata_id: Q2470288
- name: freesound
engine: freesound
shortcut: fnd
timeout: 15.0
# API key required, see: https://freesound.org/docs/api/overview.html
# api_key: MyAPIkey
inactive: true
# - name: freesound
# engine: freesound
# shortcut: fnd
# disabled: true
# timeout: 15.0
# API key required, see: https://freesound.org/docs/api/overview.html
# api_key: MyAPIkey
- name: frinkiac
engine: frinkiac
@@ -985,7 +980,7 @@ engines:
- name: github code
engine: github_code
shortcut: ghc
inactive: true
disabled: true
ghc_auth:
# type is one of:
# * none
@@ -1272,9 +1267,9 @@ engines:
# https://github.com/LibreTranslate/LibreTranslate?tab=readme-ov-file#mirrors
base_url:
- https://libretranslate.com/translate
# api_key: ''
# api_key: abc123
shortcut: lt
inactive: true
disabled: true
- name: lingva
engine: lingva
@@ -1311,7 +1306,7 @@ engines:
shortcut: mar
# To get an API key, please follow the instructions at
# - https://about.marginalia-search.com/article/api/
# api_key: ''
# api_key: ...
disabled: true
inactive: true
@@ -2092,19 +2087,19 @@ engines:
# engine in combination with Jackett opens the possibility to query a lot of
# public and private indexers directly from SearXNG. More details at:
# https://docs.searxng.org/dev/engines/online/torznab.html
- name: Torznab EZTV
engine: torznab
shortcut: eztv
# base_url: http://localhost:9117/api/v2.0/indexers/eztv/results/torznab
# enable_http: true # if using localhost
# api_key: xxxxxxxxxxxxxxx
show_magnet_links: true
show_torrent_files: false
# https://github.com/Jackett/Jackett/wiki/Jackett-Categories
torznab_categories: # optional
- 2000
- 5000
inactive: true
#
# - name: Torznab EZTV
# engine: torznab
# shortcut: eztv
# base_url: http://localhost:9117/api/v2.0/indexers/eztv/results/torznab
# enable_http: true # if using localhost
# api_key: xxxxxxxxxxxxxxx
# show_magnet_links: true
# show_torrent_files: false
# # https://github.com/Jackett/Jackett/wiki/Jackett-Categories
# torznab_categories: # optional
# - 2000
# - 5000
# tmp suspended - too slow, too many errors
# - name: urbandictionary
@@ -2152,15 +2147,14 @@ engines:
- name: youtube
shortcut: yt
engine: youtube_noapi
- name: youtube_api
# You can use the engine using the official stable API, but you need an API
# key See: https://console.developers.google.com/project
engine: youtube_api
# api_key: '' # required!
shortcut: yta
inactive: true
#
# engine: youtube_api
# api_key: 'apikey' # required!
#
# Or you can use the html non-stable engine, activated by default
engine: youtube_noapi
- name: dailymotion
engine: dailymotion
@@ -2313,21 +2307,18 @@ engines:
- name: wolframalpha
shortcut: wa
# You can use the engine using the official stable API, but you need an API
# key. See: https://products.wolframalpha.com/api/
#
# engine: wolframalpha_api
# api_key: ''
#
# Or you can use the html non-stable engine, activated by default
engine: wolframalpha_noapi
timeout: 6.0
categories: general
disabled: true
- name: wolframalpha_api
# You can use the engine using the official stable API, but you need an API
# key. See: https://products.wolframalpha.com/api/
engine: wolframalpha_api
# api_key: '' # required!
shortcut: waa
timeout: 6.0
categories: general
inactive: true
- name: dictzone
engine: dictzone
shortcut: dc
@@ -2375,14 +2366,14 @@ engines:
engine: seznam
disabled: true
- name: deepl
engine: deepl
shortcut: dpl
# You can use the engine using the official stable API, but you need an API key
# See: https://www.deepl.com/pro-api?cta=header-pro-api
# api_key: '' # required!
timeout: 5.0
inactive: true
# - name: deepl
# engine: deepl
# shortcut: dpl
# # You can use the engine using the official stable API, but you need an API key
# # See: https://www.deepl.com/pro-api?cta=header-pro-api
# api_key: '' # required!
# timeout: 5.0
# disabled: true
- name: mojeek
shortcut: mjk
@@ -2597,7 +2588,7 @@ engines:
engine: wallhaven
# api_key: abcdefghijklmnopqrstuvwxyz
shortcut: wh
inactive: true
disabled: true
# wikimini: online encyclopedia for children
# The fulltext and title parameter is necessary for Wikimini because