searxng/utils
Markus Heiser 2499899554 [mod] Google: reversed engineered & upgrade to data_type: traits_v1
Partial reverse engineering of the Google engines including a improved language
and region handling based on the engine.traits_v1 data.

When ever possible the implementations of the Google engines try to make use of
the async REST APIs.  The get_lang_info() has been generalized to a
get_google_info() function / especially the region handling has been improved by
adding the cr parameter.

searx/data/engine_traits.json
  Add data type "traits_v1" generated by the fetch_traits() functions from:

  - Google (WEB),
  - Google images,
  - Google news,
  - Google scholar and
  - Google videos

  and remove data from obsolete data type "supported_languages".

  A traits.custom type that maps region codes to *supported_domains* is fetched
  from https://www.google.com/supported_domains

searx/autocomplete.py:
  Reversed engineered autocomplete from Google WEB.  Supports Google's languages and
  subdomains.  The old API suggestqueries.google.com/complete has been replaced
  by the async REST API: https://{subdomain}/complete/search?{args}

searx/engines/google.py
  Reverse engineering and extensive testing ..
  - fetch_traits():  Fetch languages & regions from Google properties.
  - always use the async REST API (formally known as 'use_mobile_ui')
  - use *supported_domains* from traits
  - improved the result list by fetching './/div[@data-content-feature]'
    and parsing the type of the various *content features* --> thumbnails are
    added

searx/engines/google_images.py
  Reverse engineering and extensive testing ..
  - fetch_traits():  Fetch languages & regions from Google properties.
  - use *supported_domains* from traits
  - if exists, freshness_date is added to the result
  - issue 1864: result list has been improved a lot (due to the new cr parameter)

searx/engines/google_news.py
  Reverse engineering and extensive testing ..
  - fetch_traits():  Fetch languages & regions from Google properties.
    *supported_domains* is not needed but a ceid list has been added.
  - different region handling compared to Google WEB
  - fixed for various languages & regions (due to the new ceid parameter) /
    avoid CONSENT page
  - Google News do no longer support time range
  - result list has been fixed: XPath of pub_date and pub_origin

searx/engines/google_videos.py
  - fetch_traits():  Fetch languages & regions from Google properties.
  - use *supported_domains* from traits
  - add paging support
  - implement a async request ('asearch': 'arc' & 'async':
    'use_ac:true,_fmt:html')
  - simplified code (thanks to '_fmt:html' request)
  - issue 1359: fixed xpath of video length data

searx/engines/google_scholar.py
  - fetch_traits():  Fetch languages & regions from Google properties.
  - use *supported_domains* from traits
  - request(): include patents & citations
  - response(): fixed CAPTCHA detection (Scholar has its own CATCHA manager)
  - hardening XPath to iterate over results
  - fixed XPath of pub_type (has been change from gs_ct1 to gs_cgt2 class)
  - issue 1769 fixed: new request implementation is no longer incompatible

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-03-24 10:37:42 +01:00
..
templates [mod] Google: reversed engineered & upgrade to data_type: traits_v1 2023-03-24 10:37:42 +01:00
brand.env [fix] brand - partial revert of e82e37ce6 2021-11-19 14:01:58 +01:00
build_env.py [fix] typos / reported by @kianmeng in searx PR-3366 2022-09-27 18:32:14 +02:00
filtron.sh [mod] fix minor leftovers from PR #1332 2022-07-30 16:13:47 +02:00
lib.sh Fix checksum virtualenv checks. 2023-01-03 18:44:55 -06:00
lib_go.sh [mod] Tools to install and maintain golang [1] binaries & packages. 2021-11-16 18:00:47 +01:00
lib_nvm.sh [fix] make nvm.env exit with error when VERBOSE is unset 2023-02-11 13:18:07 +01:00
lib_redis.sh [utils/searxng.sh] implement new script to install SearXNG 2022-07-30 13:39:35 +02:00
lib_static.sh theme: remove __common__ 2022-05-07 19:40:48 +02:00
lxc-searxng.env [LXC] ubuntu 21.10 upgrade to ubuntu 22.04 LTS [1] 2023-02-01 09:30:13 +01:00
lxc.sh [LXC] ubuntu 21.10 upgrade to ubuntu 22.04 LTS [1] 2023-02-01 09:30:13 +01:00
makefile.include [mod] replace makefile boilerplate by 'manage' script 2021-04-23 11:26:22 +02:00
makefile.lxc [mod] LXC_ENV_FOLDER moved from ./lxc to ./lxc-env 2020-12-26 11:43:18 +01:00
morty.sh [mod] fix minor leftovers from PR #1332 2022-07-30 16:13:47 +02:00
searx.sh [mod] fix minor leftovers from PR #1332 2022-07-30 16:13:47 +02:00
searxng.sh [fix] typos in utils/searxng.sh 2023-01-08 10:08:53 +01:00
searxng_check.py move searx.shared.redisdb to searx.redisdb 2022-12-10 09:26:38 +01:00