mirror of
https://github.com/searxng/searxng
synced 2024-01-01 19:24:07 +01:00
One reason for the often seen CAPTCHA of the startpage requests are the
incomplete requests SearXNG sends to startpage.com. To avoid CAPTCHA we need to
send a well formed HTTP POST request with a cookie, we need to form a request
that is identical to the request build by startpage.com itself:
- in the cookie the **region** is selected
- in the POST arguments the **language** is selected
Based on the *engine_properties* boilerplate, SearXNG's startpage engine now
implements a `_fetch_engine_properties()` function to fetch regions & languages
from startpage.com.
This patch is a complete new implementation of the request() function, reversed
engineered from the startpage.com page. The new implementation adds
- time-range support
- save-search support
to the startpage engine which has been missed in the past.
The locale code 'no_NO' from startpage does not exists and is mapped to nb-NO.
For reference see languages-subtag at iana [1], `no` is the macrolanguage::
type: language
Subtag: nb
Description: Norwegian Bokmål
Added: 2005-10-16
Suppress-Script: Latn
Macrolanguage: no
Additional hints:
- To fetch languages from startpage, this patch makes use of the
EngineProperties implemented in 7bf0d46c
- Te get Startpage's locale & language, the function get_engine_locale from
|
||
|---|---|---|
| .. | ||
| answerers | ||
| data | ||
| engines | ||
| infopage | ||
| metrics | ||
| network | ||
| plugins | ||
| search | ||
| shared | ||
| static | ||
| templates/simple | ||
| translations | ||
| __init__.py | ||
| autocomplete.py | ||
| babel_extract.py | ||
| compat.py | ||
| exceptions.py | ||
| external_bang.py | ||
| external_urls.py | ||
| flaskfix.py | ||
| languages.py | ||
| locales.py | ||
| preferences.py | ||
| query.py | ||
| redislib.py | ||
| results.py | ||
| searxng.msg | ||
| settings.yml | ||
| settings_defaults.py | ||
| settings_loader.py | ||
| unixthreadname.py | ||
| utils.py | ||
| version.py | ||
| webadapter.py | ||
| webapp.py | ||
| webutils.py | ||