1
0
mirror of https://github.com/searxng/searxng.git synced 2024-11-05 04:40:11 +01:00
searxng/searx/data/engine_traits.json

4130 lines
94 KiB
JSON
Raw Normal View History

{
"arch linux wiki": {
"all_locale": null,
"custom": {
"title": {
"de": "Spezial:Suche",
"fa": "\u0648\u06cc\u0698\u0647:\u062c\u0633\u062a\u062c\u0648",
"ja": "\u7279\u5225:\u691c\u7d22",
"zh": "Special:\u641c\u7d22"
},
"wiki_netloc": {
"de": "wiki.archlinux.de",
"fa": "wiki.archusers.ir",
"ja": "wiki.archlinux.jp",
"zh": "wiki.archlinuxcn.org"
}
},
"data_type": "traits_v1",
"languages": {
"ar": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629",
"bg": "\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438",
"bs": "Bosanski",
"cs": "\u010ce\u0161tina",
"da": "Dansk",
"de": "Deutsch",
"el": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac",
"en": "English",
"es": "Espa\u00f1ol",
"fa": "\u0641\u0627\u0631\u0633\u06cc",
"fi": "Suomi",
"fr": "Fran\u00e7ais",
"he": "\u05e2\u05d1\u05e8\u05d9\u05ea",
"hr": "Hrvatski",
"hu": "Magyar",
"id": "Bahasa Indonesia",
"it": "Italiano",
"ja": "\u65e5\u672c\u8a9e",
"ko": "\ud55c\uad6d\uc5b4",
"lt": "Lietuvi\u0173",
"nl": "Nederlands",
"pl": "Polski",
"pt": "Portugu\u00eas",
"ru": "\u0420\u0443\u0441\u0441\u043a\u0438\u0439",
"sk": "Sloven\u010dina",
"sr": "\u0421\u0440\u043f\u0441\u043a\u0438 / srpski",
"sv": "Svenska",
"th": "\u0e44\u0e17\u0e22",
"tr": "T\u00fcrk\u00e7e",
"uk": "\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430",
"zh": "\u4e2d\u6587\uff08\u7e41\u9ad4\uff09"
},
"regions": {}
},
"bing": {
"all_locale": null,
"custom": {},
"data_type": "traits_v1",
"languages": {
"ar": "ar",
"bg": "bg",
"bn": "bn",
"ca": "ca",
"cs": "cs",
"da": "da",
"de": "de",
"en": "en",
"es": "es",
"et": "et",
"eu": "eu",
"fi": "fi",
"fr": "fr",
"gl": "gl",
"gu": "gu",
"he": "he",
"hi": "hi",
"hr": "hr",
"hu": "hu",
"is": "is",
"it": "it",
"ja": "jp",
"kn": "kn",
"ko": "ko",
"lt": "lt",
"lv": "lv",
"ml": "ml",
"mr": "mr",
"ms": "ms",
"nb": "nb",
"nl": "nl",
"pa": "pa",
"pl": "pl",
"pt": "pt-pt",
"ro": "ro",
"ru": "ru",
"sk": "sk",
"sl": "sl",
"sr": "sr",
"sv": "sv",
"ta": "ta",
"te": "te",
"th": "th",
"tr": "tr",
"uk": "uk",
"vi": "vi",
"zh": "zh-hans",
"zh_Hans": "zh-hans",
"zh_Hant": "zh-hant"
},
"regions": {
"da-DK": "da-DK",
"de-AT": "de-AT",
"de-CH": "de-CH",
"de-DE": "de-DE",
"en-AU": "en-AU",
"en-CA": "en-CA",
"en-GB": "en-GB",
"en-IN": "en-IN",
"en-MY": "en-MY",
"en-NZ": "en-NZ",
"en-PH": "en-PH",
"en-US": "en-US",
"en-ZA": "en-ZA",
"es-AR": "es-AR",
"es-CL": "es-CL",
"es-ES": "es-ES",
"es-MX": "es-MX",
"es-US": "es-US",
"fi-FI": "fi-FI",
"fr-BE": "fr-BE",
"fr-CA": "fr-CA",
"fr-CH": "fr-CH",
"fr-FR": "fr-FR",
"id-ID": "en-ID",
"it-IT": "it-IT",
"ja-JP": "ja-JP",
"ko-KR": "ko-KR",
"nb-NO": "no-NO",
"nl-BE": "nl-BE",
"nl-NL": "nl-NL",
"pl-PL": "pl-PL",
"pt-BR": "pt-BR",
"ru-RU": "ru-RU",
"sv-SE": "sv-SE",
"tr-TR": "tr-TR",
"zh-CN": "zh-CN",
"zh-HK": "zh-HK",
"zh-TW": "zh-TW"
}
},
"bing images": {
"all_locale": null,
"custom": {},
"data_type": "traits_v1",
"languages": {
"ar": "ar",
"bg": "bg",
"bn": "bn",
"ca": "ca",
"cs": "cs",
"da": "da",
"de": "de",
"en": "en",
"es": "es",
"et": "et",
"eu": "eu",
"fi": "fi",
"fr": "fr",
"gl": "gl",
"gu": "gu",
"he": "he",
"hi": "hi",
"hr": "hr",
"hu": "hu",
"is": "is",
"it": "it",
"ja": "jp",
"kn": "kn",
"ko": "ko",
"lt": "lt",
"lv": "lv",
"ml": "ml",
"mr": "mr",
"ms": "ms",
"nb": "nb",
"nl": "nl",
"pa": "pa",
"pl": "pl",
"pt": "pt-pt",
"ro": "ro",
"ru": "ru",
"sk": "sk",
"sl": "sl",
"sr": "sr",
"sv": "sv",
"ta": "ta",
"te": "te",
"th": "th",
"tr": "tr",
"uk": "uk",
"vi": "vi",
"zh": "zh-hans",
"zh_Hans": "zh-hans",
"zh_Hant": "zh-hant"
},
"regions": {
"da-DK": "da-DK",
"de-AT": "de-AT",
"de-CH": "de-CH",
"de-DE": "de-DE",
"en-AU": "en-AU",
"en-CA": "en-CA",
"en-GB": "en-GB",
"en-IN": "en-IN",
"en-MY": "en-MY",
"en-NZ": "en-NZ",
"en-PH": "en-PH",
"en-US": "en-US",
"en-ZA": "en-ZA",
"es-AR": "es-AR",
"es-CL": "es-CL",
"es-ES": "es-ES",
"es-MX": "es-MX",
"es-US": "es-US",
"fi-FI": "fi-FI",
"fr-BE": "fr-BE",
"fr-CA": "fr-CA",
"fr-CH": "fr-CH",
"fr-FR": "fr-FR",
"id-ID": "en-ID",
"it-IT": "it-IT",
"ja-JP": "ja-JP",
"ko-KR": "ko-KR",
"nb-NO": "no-NO",
"nl-BE": "nl-BE",
"nl-NL": "nl-NL",
"pl-PL": "pl-PL",
"pt-BR": "pt-BR",
"ru-RU": "ru-RU",
"sv-SE": "sv-SE",
"tr-TR": "tr-TR",
"zh-CN": "zh-CN",
"zh-HK": "zh-HK",
"zh-TW": "zh-TW"
}
},
"bing news": {
"all_locale": "en-WW",
"custom": {},
"data_type": "traits_v1",
"languages": {
"ar": "ar",
"bg": "bg",
"bn": "bn",
"ca": "ca",
"cs": "cs",
"da": "da",
"de": "de",
"en": "en",
"es": "es",
"et": "et",
"eu": "eu",
"fi": "fi",
"fr": "fr",
"gl": "gl",
"gu": "gu",
"he": "he",
"hi": "hi",
"hr": "hr",
"hu": "hu",
"is": "is",
"it": "it",
"ja": "jp",
"kn": "kn",
"ko": "ko",
"lt": "lt",
"lv": "lv",
"ml": "ml",
"mr": "mr",
"ms": "ms",
"nb": "nb",
"nl": "nl",
"pa": "pa",
"pl": "pl",
"pt": "pt-pt",
"ro": "ro",
"ru": "ru",
"sk": "sk",
"sl": "sl",
"sr": "sr",
"sv": "sv",
"ta": "ta",
"te": "te",
"th": "th",
"tr": "tr",
"uk": "uk",
"vi": "vi",
"zh": "zh-hans",
"zh_Hans": "zh-hans",
"zh_Hant": "zh-hant"
},
"regions": {
"da-DK": "da-DK",
"de-DE": "de-DE",
"en-AU": "en-AU",
"en-GB": "en-GB",
"en-US": "en-US",
"es-CL": "es-CL",
"es-MX": "es-MX",
"es-US": "es-US",
"fi-FI": "fi-FI",
"fr-CA": "fr-CA",
"fr-FR": "fr-FR",
"it-IT": "it-IT",
"pt-BR": "pt-BR",
"zh-CN": "zh-CN"
}
},
"bing videos": {
"all_locale": null,
"custom": {},
"data_type": "traits_v1",
"languages": {
"ar": "ar",
"bg": "bg",
"bn": "bn",
"ca": "ca",
"cs": "cs",
"da": "da",
"de": "de",
"en": "en",
"es": "es",
"et": "et",
"eu": "eu",
"fi": "fi",
"fr": "fr",
"gl": "gl",
"gu": "gu",
"he": "he",
"hi": "hi",
"hr": "hr",
"hu": "hu",
"is": "is",
"it": "it",
"ja": "jp",
"kn": "kn",
"ko": "ko",
"lt": "lt",
"lv": "lv",
"ml": "ml",
"mr": "mr",
"ms": "ms",
"nb": "nb",
"nl": "nl",
"pa": "pa",
"pl": "pl",
"pt": "pt-pt",
"ro": "ro",
"ru": "ru",
"sk": "sk",
"sl": "sl",
"sr": "sr",
"sv": "sv",
"ta": "ta",
"te": "te",
"th": "th",
"tr": "tr",
"uk": "uk",
"vi": "vi",
"zh": "zh-hans",
"zh_Hans": "zh-hans",
"zh_Hant": "zh-hant"
},
"regions": {
"da-DK": "da-DK",
"de-AT": "de-AT",
"de-CH": "de-CH",
"de-DE": "de-DE",
"en-AU": "en-AU",
"en-CA": "en-CA",
"en-GB": "en-GB",
"en-IN": "en-IN",
"en-MY": "en-MY",
"en-NZ": "en-NZ",
"en-PH": "en-PH",
"en-US": "en-US",
"en-ZA": "en-ZA",
"es-AR": "es-AR",
"es-CL": "es-CL",
"es-ES": "es-ES",
"es-MX": "es-MX",
"es-US": "es-US",
"fi-FI": "fi-FI",
"fr-BE": "fr-BE",
"fr-CA": "fr-CA",
"fr-CH": "fr-CH",
"fr-FR": "fr-FR",
"id-ID": "en-ID",
"it-IT": "it-IT",
"ja-JP": "ja-JP",
"ko-KR": "ko-KR",
"nb-NO": "no-NO",
"nl-BE": "nl-BE",
"nl-NL": "nl-NL",
"pl-PL": "pl-PL",
"pt-BR": "pt-BR",
"ru-RU": "ru-RU",
"sv-SE": "sv-SE",
"tr-TR": "tr-TR",
"zh-CN": "zh-CN",
"zh-HK": "zh-HK",
"zh-TW": "zh-TW"
}
},
"dailymotion": {
"all_locale": null,
"custom": {},
"data_type": "traits_v1",
"languages": {
"ar": "ar",
"de": "de",
"el": "el",
"en": "en",
"es": "es",
"fr": "fr",
"id": "id",
"it": "it",
"ja": "ja",
"ko": "ko",
"ms": "ms",
"nl": "nl",
"pl": "pl",
"pt": "pt",
"ro": "ro",
"ru": "ru",
"th": "th",
"tr": "tr",
"vi": "vi",
"zh": "zh"
},
"regions": {
"ar-AE": "ar_AE",
"ar-EG": "ar_EG",
"ar-SA": "ar_SA",
"de-AT": "de_AT",
"de-CH": "de_CH",
"de-DE": "de_DE",
"el-GR": "el_GR",
"en-AU": "en_AU",
"en-CA": "en_CA",
"en-GB": "en_GB",
"en-HK": "en_HK",
"en-IE": "en_IE",
"en-IN": "en_IN",
"en-NG": "en_NG",
"en-PH": "en_PH",
"en-PK": "en_PK",
"en-SG": "en_SG",
"en-US": "en_US",
"en-ZA": "en_ZA",
"es-AR": "es_AR",
"es-ES": "es_ES",
"es-MX": "es_MX",
"fr-BE": "fr_BE",
"fr-CA": "fr_CA",
"fr-CH": "fr_CH",
"fr-CI": "fr_CI",
"fr-FR": "fr_FR",
"fr-MA": "fr_MA",
"fr-SN": "fr_SN",
"fr-TN": "fr_TN",
"id-ID": "id_ID",
"it-CH": "it_CH",
"it-IT": "it_IT",
"ja-JP": "ja_JP",
"ko-KR": "ko_KR",
"ms-MY": "ms_MY",
"nl-BE": "nl_BE",
"nl-NL": "nl_NL",
"pl-PL": "pl_PL",
"pt-BR": "pt_BR",
"pt-PT": "pt_PT",
"ro-RO": "ro_RO",
"ru-RU": "ru_RU",
"th-TH": "th_TH",
"tr-TR": "tr_TR",
"vi-VN": "vi_VN",
"zh-CN": "zh_CN",
"zh-TW": "zh_TW"
}
},
[mod] DuckDuckGo: reversed engineered & upgrade to data_type: traits_v1 Partial reverse engineering of the DuckDuckGo (DDG) engines including a improved language and region handling based on the enigne.traits_v1 data. - DDG Lite - DDG Instant Answer API - DDG Images - DDG Weather docs/src/searx.engine.duckduckgo.rst: Online documentation of the DDG engines (make docs.live) searx/data/engine_traits.json Add data type "traits_v1" generated by the fetch_traits() functions from: - "duckduckgo" (WEB), - "duckduckgo images" and - "duckduckgo weather" and remove data from obsolete data type "supported_languages". searx/autocomplete.py: Reversed engineered Autocomplete from DDG. Supports DDG's languages. searx/engines/duckduckgo.py: - fetch_traits(): Fetch languages & regions from DDG. - get_ddg_lang(): Get DDG's language identifier from SearXNG's locale. DDG defines its languages by region codes. DDG-Lite does not offer a language selection to the user, only a region can be selected by the user. - Cache ``vqd`` value: The vqd value depends on the query string and is needed for the follow up pages or the images loaded by a XMLHttpRequest (DDG images). The ``vqd`` value of a search term is stored for 10min in the redis DB. - DDG Lite engine: reversed engineered request method with improved Language and region support and better ``vqd`` handling. searx/engines/duckduckgo_definitions.py: DDG Instant Answer API The *instant answers* API does not support languages, or at least we could not find out how language support should work. It seems that most of the features are based on English terms. searx/engines/duckduckgo_images.py: DDG Images Reversed engineered request method. Improved language and region handling based on cookies and the enigne.traits_v1 data. Response: add image format to the result list searx/engines/duckduckgo_weather.py: DDG Weather Improved language and region handling based on cookies and the enigne.traits_v1 data. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-11-05 15:10:52 +01:00
"duckduckgo": {
"all_locale": "wt-wt",
[mod] DuckDuckGo: reversed engineered & upgrade to data_type: traits_v1 Partial reverse engineering of the DuckDuckGo (DDG) engines including a improved language and region handling based on the enigne.traits_v1 data. - DDG Lite - DDG Instant Answer API - DDG Images - DDG Weather docs/src/searx.engine.duckduckgo.rst: Online documentation of the DDG engines (make docs.live) searx/data/engine_traits.json Add data type "traits_v1" generated by the fetch_traits() functions from: - "duckduckgo" (WEB), - "duckduckgo images" and - "duckduckgo weather" and remove data from obsolete data type "supported_languages". searx/autocomplete.py: Reversed engineered Autocomplete from DDG. Supports DDG's languages. searx/engines/duckduckgo.py: - fetch_traits(): Fetch languages & regions from DDG. - get_ddg_lang(): Get DDG's language identifier from SearXNG's locale. DDG defines its languages by region codes. DDG-Lite does not offer a language selection to the user, only a region can be selected by the user. - Cache ``vqd`` value: The vqd value depends on the query string and is needed for the follow up pages or the images loaded by a XMLHttpRequest (DDG images). The ``vqd`` value of a search term is stored for 10min in the redis DB. - DDG Lite engine: reversed engineered request method with improved Language and region support and better ``vqd`` handling. searx/engines/duckduckgo_definitions.py: DDG Instant Answer API The *instant answers* API does not support languages, or at least we could not find out how language support should work. It seems that most of the features are based on English terms. searx/engines/duckduckgo_images.py: DDG Images Reversed engineered request method. Improved language and region handling based on cookies and the enigne.traits_v1 data. Response: add image format to the result list searx/engines/duckduckgo_weather.py: DDG Weather Improved language and region handling based on cookies and the enigne.traits_v1 data. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-11-05 15:10:52 +01:00
"custom": {
"lang_region": {
"ar-DZ": "ar_DZ",
"ar-JO": "ar_JO",
"ar-SA": "ar_SA",
"bn-IN": "bn_IN",
"de-CH": "de_CH",
"en-AU": "en_AU",
"en-CA": "en_CA",
"en-GB": "en_GB",
"es-AR": "es_AR",
"es-CL": "es_CL",
"es-CO": "es_CO",
"es-CR": "es_CR",
"es-EC": "es_EC",
"es-MX": "es_MX",
"es-PE": "es_PE",
"es-UY": "es_UY",
"es-VE": "es_VE",
"fr-BE": "fr_BE",
"fr-CA": "fr_CA",
"fr-CH": "fr_CH",
"nl-BE": "nl_BE",
"pt-BR": "pt_BR"
}
},
"data_type": "traits_v1",
"languages": {
"af": "af_ZA",
"ar": "ar_EG",
"ast": "ast_ES",
"az_Latn": "az_AZ",
"be": "be_BY",
"bg": "bg_BG",
"bn": "bn_BD",
"br": "br_FR",
"bs_Latn": "bs_BA",
"ca": "ca_ES",
"cs": "cs_CZ",
"cy": "cy_GB",
"da": "da_DK",
"de": "de_DE",
"el": "el_GR",
"en": "en_US",
"eo": "eo_XX",
"es": "es_ES",
"et": "et_EE",
"eu": "eu_ES",
"fa": "fa_IR",
"fi": "fi_FI",
"fil": "tl_PH",
"fr": "fr_FR",
"ga": "ga_IE",
"gd": "gd_GB",
"gl": "gl_ES",
"he": "he_IL",
"hi": "hi_IN",
"hr": "hr_HR",
"hu": "hu_HU",
"hy": "hy_AM",
"id": "id_ID",
"is": "is_IS",
"it": "it_IT",
"ja": "ja_JP",
"kab": "kab_DZ",
"kn": "kn_IN",
"ko": "ko_KR",
"ku": "ku",
"kw": "kw_GB",
"lt": "lt_LT",
"lv": "lv_LV",
"ml": "ml_IN",
"mr": "mr_IN",
"ms": "ms_MY",
"nb": "nb_NO",
"nl": "nl_NL",
"nn": "nn_NO",
"pl": "pl_PL",
"pt": "pt_PT",
"ro": "ro_RO",
"ru": "ru_RU",
"sc": "sc_IT",
"si": "si_LK",
"sk": "sk_SK",
"sl": "sl_SI",
"sq": "sq_AL",
"sr_Cyrl": "sr_RS",
"sv": "sv_SE",
"ta": "ta_IN",
"te": "te_IN",
"th": "th_TH",
"tr": "tr_TR",
"uk": "uk_UA",
"ur": "ur_PK",
"vi": "vi_VN",
"zh_Hans": "zh_CN",
"zh_Hant": "zh_TW"
},
"regions": {
"ar-SA": "xa-ar",
"bg-BG": "bg-bg",
"ca-ES": "es-ca",
"cs-CZ": "cz-cs",
"da-DK": "dk-da",
"de-AT": "at-de",
"de-CH": "ch-de",
"de-DE": "de-de",
"el-GR": "gr-el",
"en-AU": "au-en",
"en-CA": "ca-en",
"en-GB": "uk-en",
"en-IE": "ie-en",
"en-IL": "il-en",
"en-IN": "in-en",
"en-MY": "my-en",
"en-NZ": "nz-en",
"en-PH": "ph-en",
"en-PK": "pk-en",
"en-SG": "sg-en",
"en-US": "us-en",
"en-ZA": "za-en",
"es-AR": "ar-es",
"es-CL": "cl-es",
"es-CO": "co-es",
"es-ES": "es-es",
"es-MX": "mx-es",
"es-PE": "pe-es",
"es-US": "us-es",
"et-EE": "ee-et",
"fi-FI": "fi-fi",
"fr-BE": "be-fr",
"fr-CA": "ca-fr",
"fr-CH": "ch-fr",
"fr-FR": "fr-fr",
"hr-HR": "hr-hr",
"hu-HU": "hu-hu",
"id-ID": "id-en",
"it-IT": "it-it",
"ja-JP": "jp-jp",
"ko-KR": "kr-kr",
"lt-LT": "lt-lt",
"lv-LV": "lv-lv",
"nb-NO": "no-no",
"nl-BE": "be-nl",
"nl-NL": "nl-nl",
"pl-PL": "pl-pl",
"pt-BR": "br-pt",
"pt-PT": "pt-pt",
"ro-RO": "ro-ro",
"ru-RU": "ru-ru",
"sk-SK": "sk-sk",
"sl-SI": "sl-sl",
"sv-SE": "se-sv",
"th-TH": "th-en",
"tr-TR": "tr-tr",
"uk-UA": "ua-uk",
"vi-VN": "vn-en",
"zh-CN": "cn-zh",
"zh-HK": "hk-tzh",
"zh-TW": "tw-tzh"
}
},
[mod] DuckDuckGo: reversed engineered & upgrade to data_type: traits_v1 Partial reverse engineering of the DuckDuckGo (DDG) engines including a improved language and region handling based on the enigne.traits_v1 data. - DDG Lite - DDG Instant Answer API - DDG Images - DDG Weather docs/src/searx.engine.duckduckgo.rst: Online documentation of the DDG engines (make docs.live) searx/data/engine_traits.json Add data type "traits_v1" generated by the fetch_traits() functions from: - "duckduckgo" (WEB), - "duckduckgo images" and - "duckduckgo weather" and remove data from obsolete data type "supported_languages". searx/autocomplete.py: Reversed engineered Autocomplete from DDG. Supports DDG's languages. searx/engines/duckduckgo.py: - fetch_traits(): Fetch languages & regions from DDG. - get_ddg_lang(): Get DDG's language identifier from SearXNG's locale. DDG defines its languages by region codes. DDG-Lite does not offer a language selection to the user, only a region can be selected by the user. - Cache ``vqd`` value: The vqd value depends on the query string and is needed for the follow up pages or the images loaded by a XMLHttpRequest (DDG images). The ``vqd`` value of a search term is stored for 10min in the redis DB. - DDG Lite engine: reversed engineered request method with improved Language and region support and better ``vqd`` handling. searx/engines/duckduckgo_definitions.py: DDG Instant Answer API The *instant answers* API does not support languages, or at least we could not find out how language support should work. It seems that most of the features are based on English terms. searx/engines/duckduckgo_images.py: DDG Images Reversed engineered request method. Improved language and region handling based on cookies and the enigne.traits_v1 data. Response: add image format to the result list searx/engines/duckduckgo_weather.py: DDG Weather Improved language and region handling based on cookies and the enigne.traits_v1 data. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-11-05 15:10:52 +01:00
"duckduckgo images": {
"all_locale": "wt-wt",
[mod] DuckDuckGo: reversed engineered & upgrade to data_type: traits_v1 Partial reverse engineering of the DuckDuckGo (DDG) engines including a improved language and region handling based on the enigne.traits_v1 data. - DDG Lite - DDG Instant Answer API - DDG Images - DDG Weather docs/src/searx.engine.duckduckgo.rst: Online documentation of the DDG engines (make docs.live) searx/data/engine_traits.json Add data type "traits_v1" generated by the fetch_traits() functions from: - "duckduckgo" (WEB), - "duckduckgo images" and - "duckduckgo weather" and remove data from obsolete data type "supported_languages". searx/autocomplete.py: Reversed engineered Autocomplete from DDG. Supports DDG's languages. searx/engines/duckduckgo.py: - fetch_traits(): Fetch languages & regions from DDG. - get_ddg_lang(): Get DDG's language identifier from SearXNG's locale. DDG defines its languages by region codes. DDG-Lite does not offer a language selection to the user, only a region can be selected by the user. - Cache ``vqd`` value: The vqd value depends on the query string and is needed for the follow up pages or the images loaded by a XMLHttpRequest (DDG images). The ``vqd`` value of a search term is stored for 10min in the redis DB. - DDG Lite engine: reversed engineered request method with improved Language and region support and better ``vqd`` handling. searx/engines/duckduckgo_definitions.py: DDG Instant Answer API The *instant answers* API does not support languages, or at least we could not find out how language support should work. It seems that most of the features are based on English terms. searx/engines/duckduckgo_images.py: DDG Images Reversed engineered request method. Improved language and region handling based on cookies and the enigne.traits_v1 data. Response: add image format to the result list searx/engines/duckduckgo_weather.py: DDG Weather Improved language and region handling based on cookies and the enigne.traits_v1 data. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-11-05 15:10:52 +01:00
"custom": {
"lang_region": {
"ar-DZ": "ar_DZ",
"ar-JO": "ar_JO",
"ar-SA": "ar_SA",
"bn-IN": "bn_IN",
"de-CH": "de_CH",
"en-AU": "en_AU",
"en-CA": "en_CA",
"en-GB": "en_GB",
"es-AR": "es_AR",
"es-CL": "es_CL",
"es-CO": "es_CO",
"es-CR": "es_CR",
"es-EC": "es_EC",
"es-MX": "es_MX",
"es-PE": "es_PE",
"es-UY": "es_UY",
"es-VE": "es_VE",
"fr-BE": "fr_BE",
"fr-CA": "fr_CA",
"fr-CH": "fr_CH",
"nl-BE": "nl_BE",
"pt-BR": "pt_BR"
}
},
"data_type": "traits_v1",
"languages": {
"af": "af_ZA",
"ar": "ar_EG",
"ast": "ast_ES",
"az_Latn": "az_AZ",
"be": "be_BY",
"bg": "bg_BG",
"bn": "bn_BD",
"br": "br_FR",
"bs_Latn": "bs_BA",
"ca": "ca_ES",
"cs": "cs_CZ",
"cy": "cy_GB",
"da": "da_DK",
"de": "de_DE",
"el": "el_GR",
"en": "en_US",
"eo": "eo_XX",
"es": "es_ES",
"et": "et_EE",
"eu": "eu_ES",
"fa": "fa_IR",
"fi": "fi_FI",
"fil": "tl_PH",
"fr": "fr_FR",
"ga": "ga_IE",
"gd": "gd_GB",
"gl": "gl_ES",
"he": "he_IL",
"hi": "hi_IN",
"hr": "hr_HR",
"hu": "hu_HU",
"hy": "hy_AM",
"id": "id_ID",
"is": "is_IS",
"it": "it_IT",
"ja": "ja_JP",
"kab": "kab_DZ",
"kn": "kn_IN",
"ko": "ko_KR",
"ku": "ku",
"kw": "kw_GB",
"lt": "lt_LT",
"lv": "lv_LV",
"ml": "ml_IN",
"mr": "mr_IN",
"ms": "ms_MY",
"nb": "nb_NO",
"nl": "nl_NL",
"nn": "nn_NO",
"pl": "pl_PL",
"pt": "pt_PT",
"ro": "ro_RO",
"ru": "ru_RU",
"sc": "sc_IT",
"si": "si_LK",
"sk": "sk_SK",
"sl": "sl_SI",
"sq": "sq_AL",
"sr_Cyrl": "sr_RS",
"sv": "sv_SE",
"ta": "ta_IN",
"te": "te_IN",
"th": "th_TH",
"tr": "tr_TR",
"uk": "uk_UA",
"ur": "ur_PK",
"vi": "vi_VN",
"zh_Hans": "zh_CN",
"zh_Hant": "zh_TW"
},
"regions": {
"ar-SA": "xa-ar",
"bg-BG": "bg-bg",
"ca-ES": "es-ca",
"cs-CZ": "cz-cs",
"da-DK": "dk-da",
"de-AT": "at-de",
"de-CH": "ch-de",
"de-DE": "de-de",
"el-GR": "gr-el",
"en-AU": "au-en",
"en-CA": "ca-en",
"en-GB": "uk-en",
"en-IE": "ie-en",
"en-IL": "il-en",
"en-IN": "in-en",
"en-MY": "my-en",
"en-NZ": "nz-en",
"en-PH": "ph-en",
"en-PK": "pk-en",
"en-SG": "sg-en",
"en-US": "us-en",
"en-ZA": "za-en",
"es-AR": "ar-es",
"es-CL": "cl-es",
"es-CO": "co-es",
"es-ES": "es-es",
"es-MX": "mx-es",
"es-PE": "pe-es",
"es-US": "us-es",
"et-EE": "ee-et",
"fi-FI": "fi-fi",
"fr-BE": "be-fr",
"fr-CA": "ca-fr",
"fr-CH": "ch-fr",
"fr-FR": "fr-fr",
"hr-HR": "hr-hr",
"hu-HU": "hu-hu",
"id-ID": "id-en",
"it-IT": "it-it",
"ja-JP": "jp-jp",
"ko-KR": "kr-kr",
"lt-LT": "lt-lt",
"lv-LV": "lv-lv",
"nb-NO": "no-no",
"nl-BE": "be-nl",
"nl-NL": "nl-nl",
"pl-PL": "pl-pl",
"pt-BR": "br-pt",
"pt-PT": "pt-pt",
"ro-RO": "ro-ro",
"ru-RU": "ru-ru",
"sk-SK": "sk-sk",
"sl-SI": "sl-sl",
"sv-SE": "se-sv",
"th-TH": "th-en",
"tr-TR": "tr-tr",
"uk-UA": "ua-uk",
"vi-VN": "vn-en",
"zh-CN": "cn-zh",
"zh-HK": "hk-tzh",
"zh-TW": "tw-tzh"
}
},
[mod] DuckDuckGo: reversed engineered & upgrade to data_type: traits_v1 Partial reverse engineering of the DuckDuckGo (DDG) engines including a improved language and region handling based on the enigne.traits_v1 data. - DDG Lite - DDG Instant Answer API - DDG Images - DDG Weather docs/src/searx.engine.duckduckgo.rst: Online documentation of the DDG engines (make docs.live) searx/data/engine_traits.json Add data type "traits_v1" generated by the fetch_traits() functions from: - "duckduckgo" (WEB), - "duckduckgo images" and - "duckduckgo weather" and remove data from obsolete data type "supported_languages". searx/autocomplete.py: Reversed engineered Autocomplete from DDG. Supports DDG's languages. searx/engines/duckduckgo.py: - fetch_traits(): Fetch languages & regions from DDG. - get_ddg_lang(): Get DDG's language identifier from SearXNG's locale. DDG defines its languages by region codes. DDG-Lite does not offer a language selection to the user, only a region can be selected by the user. - Cache ``vqd`` value: The vqd value depends on the query string and is needed for the follow up pages or the images loaded by a XMLHttpRequest (DDG images). The ``vqd`` value of a search term is stored for 10min in the redis DB. - DDG Lite engine: reversed engineered request method with improved Language and region support and better ``vqd`` handling. searx/engines/duckduckgo_definitions.py: DDG Instant Answer API The *instant answers* API does not support languages, or at least we could not find out how language support should work. It seems that most of the features are based on English terms. searx/engines/duckduckgo_images.py: DDG Images Reversed engineered request method. Improved language and region handling based on cookies and the enigne.traits_v1 data. Response: add image format to the result list searx/engines/duckduckgo_weather.py: DDG Weather Improved language and region handling based on cookies and the enigne.traits_v1 data. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-11-05 15:10:52 +01:00
"duckduckgo weather": {
"all_locale": "wt-wt",
[mod] DuckDuckGo: reversed engineered & upgrade to data_type: traits_v1 Partial reverse engineering of the DuckDuckGo (DDG) engines including a improved language and region handling based on the enigne.traits_v1 data. - DDG Lite - DDG Instant Answer API - DDG Images - DDG Weather docs/src/searx.engine.duckduckgo.rst: Online documentation of the DDG engines (make docs.live) searx/data/engine_traits.json Add data type "traits_v1" generated by the fetch_traits() functions from: - "duckduckgo" (WEB), - "duckduckgo images" and - "duckduckgo weather" and remove data from obsolete data type "supported_languages". searx/autocomplete.py: Reversed engineered Autocomplete from DDG. Supports DDG's languages. searx/engines/duckduckgo.py: - fetch_traits(): Fetch languages & regions from DDG. - get_ddg_lang(): Get DDG's language identifier from SearXNG's locale. DDG defines its languages by region codes. DDG-Lite does not offer a language selection to the user, only a region can be selected by the user. - Cache ``vqd`` value: The vqd value depends on the query string and is needed for the follow up pages or the images loaded by a XMLHttpRequest (DDG images). The ``vqd`` value of a search term is stored for 10min in the redis DB. - DDG Lite engine: reversed engineered request method with improved Language and region support and better ``vqd`` handling. searx/engines/duckduckgo_definitions.py: DDG Instant Answer API The *instant answers* API does not support languages, or at least we could not find out how language support should work. It seems that most of the features are based on English terms. searx/engines/duckduckgo_images.py: DDG Images Reversed engineered request method. Improved language and region handling based on cookies and the enigne.traits_v1 data. Response: add image format to the result list searx/engines/duckduckgo_weather.py: DDG Weather Improved language and region handling based on cookies and the enigne.traits_v1 data. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-11-05 15:10:52 +01:00
"custom": {
"lang_region": {
"ar-DZ": "ar_DZ",
"ar-JO": "ar_JO",
"ar-SA": "ar_SA",
"bn-IN": "bn_IN",
"de-CH": "de_CH",
"en-AU": "en_AU",
"en-CA": "en_CA",
"en-GB": "en_GB",
"es-AR": "es_AR",
"es-CL": "es_CL",
"es-CO": "es_CO",
"es-CR": "es_CR",
"es-EC": "es_EC",
"es-MX": "es_MX",
"es-PE": "es_PE",
"es-UY": "es_UY",
"es-VE": "es_VE",
"fr-BE": "fr_BE",
"fr-CA": "fr_CA",
"fr-CH": "fr_CH",
"nl-BE": "nl_BE",
"pt-BR": "pt_BR"
}
},
"data_type": "traits_v1",
"languages": {
"af": "af_ZA",
"ar": "ar_EG",
"ast": "ast_ES",
"az_Latn": "az_AZ",
"be": "be_BY",
"bg": "bg_BG",
"bn": "bn_BD",
"br": "br_FR",
"bs_Latn": "bs_BA",
"ca": "ca_ES",
"cs": "cs_CZ",
"cy": "cy_GB",
"da": "da_DK",
"de": "de_DE",
"el": "el_GR",
"en": "en_US",
"eo": "eo_XX",
"es": "es_ES",
"et": "et_EE",
"eu": "eu_ES",
"fa": "fa_IR",
"fi": "fi_FI",
"fil": "tl_PH",
"fr": "fr_FR",
"ga": "ga_IE",
"gd": "gd_GB",
"gl": "gl_ES",
"he": "he_IL",
"hi": "hi_IN",
"hr": "hr_HR",
"hu": "hu_HU",
"hy": "hy_AM",
"id": "id_ID",
"is": "is_IS",
"it": "it_IT",
"ja": "ja_JP",
"kab": "kab_DZ",
"kn": "kn_IN",
"ko": "ko_KR",
"ku": "ku",
"kw": "kw_GB",
"lt": "lt_LT",
"lv": "lv_LV",
"ml": "ml_IN",
"mr": "mr_IN",
"ms": "ms_MY",
"nb": "nb_NO",
"nl": "nl_NL",
"nn": "nn_NO",
"pl": "pl_PL",
"pt": "pt_PT",
"ro": "ro_RO",
"ru": "ru_RU",
"sc": "sc_IT",
"si": "si_LK",
"sk": "sk_SK",
"sl": "sl_SI",
"sq": "sq_AL",
"sr_Cyrl": "sr_RS",
"sv": "sv_SE",
"ta": "ta_IN",
"te": "te_IN",
"th": "th_TH",
"tr": "tr_TR",
"uk": "uk_UA",
"ur": "ur_PK",
"vi": "vi_VN",
"zh_Hans": "zh_CN",
"zh_Hant": "zh_TW"
},
"regions": {
"ar-SA": "xa-ar",
"bg-BG": "bg-bg",
"ca-ES": "es-ca",
"cs-CZ": "cz-cs",
"da-DK": "dk-da",
"de-AT": "at-de",
"de-CH": "ch-de",
"de-DE": "de-de",
"el-GR": "gr-el",
"en-AU": "au-en",
"en-CA": "ca-en",
"en-GB": "uk-en",
"en-IE": "ie-en",
"en-IL": "il-en",
"en-IN": "in-en",
"en-MY": "my-en",
"en-NZ": "nz-en",
"en-PH": "ph-en",
"en-PK": "pk-en",
"en-SG": "sg-en",
"en-US": "us-en",
"en-ZA": "za-en",
"es-AR": "ar-es",
"es-CL": "cl-es",
"es-CO": "co-es",
"es-ES": "es-es",
"es-MX": "mx-es",
"es-PE": "pe-es",
"es-US": "us-es",
"et-EE": "ee-et",
"fi-FI": "fi-fi",
"fr-BE": "be-fr",
"fr-CA": "ca-fr",
"fr-CH": "ch-fr",
"fr-FR": "fr-fr",
"hr-HR": "hr-hr",
"hu-HU": "hu-hu",
"id-ID": "id-en",
"it-IT": "it-it",
"ja-JP": "jp-jp",
"ko-KR": "kr-kr",
"lt-LT": "lt-lt",
"lv-LV": "lv-lv",
"nb-NO": "no-no",
"nl-BE": "be-nl",
"nl-NL": "nl-nl",
"pl-PL": "pl-pl",
"pt-BR": "br-pt",
"pt-PT": "pt-pt",
"ro-RO": "ro-ro",
"ru-RU": "ru-ru",
"sk-SK": "sk-sk",
"sl-SI": "sl-sl",
"sv-SE": "se-sv",
"th-TH": "th-en",
"tr-TR": "tr-tr",
"uk-UA": "ua-uk",
"vi-VN": "vn-en",
"zh-CN": "cn-zh",
"zh-HK": "hk-tzh",
"zh-TW": "tw-tzh"
}
},
"google": {
"all_locale": "ZZ",
[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>
2022-12-04 22:57:22 +01:00
"custom": {
"supported_domains": {
"AD": "www.google.ad",
"AE": "www.google.ae",
"AF": "www.google.com.af",
"AG": "www.google.com.ag",
"AL": "www.google.al",
"AM": "www.google.am",
"AO": "www.google.co.ao",
"AR": "www.google.com.ar",
"AS": "www.google.as",
"AT": "www.google.at",
"AU": "www.google.com.au",
"AZ": "www.google.az",
"BA": "www.google.ba",
"BD": "www.google.com.bd",
"BE": "www.google.be",
"BF": "www.google.bf",
"BG": "www.google.bg",
"BH": "www.google.com.bh",
"BI": "www.google.bi",
"BJ": "www.google.bj",
"BN": "www.google.com.bn",
"BO": "www.google.com.bo",
"BR": "www.google.com.br",
"BS": "www.google.bs",
"BT": "www.google.bt",
"BW": "www.google.co.bw",
"BY": "www.google.by",
"BZ": "www.google.com.bz",
"CA": "www.google.ca",
"CAT": "www.google.cat",
"CD": "www.google.cd",
"CF": "www.google.cf",
"CG": "www.google.cg",
"CH": "www.google.ch",
"CI": "www.google.ci",
"CK": "www.google.co.ck",
"CL": "www.google.cl",
"CM": "www.google.cm",
"CN": "www.google.com.hk",
"CO": "www.google.com.co",
"CR": "www.google.co.cr",
"CU": "www.google.com.cu",
"CV": "www.google.cv",
"CY": "www.google.com.cy",
"CZ": "www.google.cz",
"DE": "www.google.de",
"DJ": "www.google.dj",
"DK": "www.google.dk",
"DM": "www.google.dm",
"DO": "www.google.com.do",
"DZ": "www.google.dz",
"EC": "www.google.com.ec",
"EE": "www.google.ee",
"EG": "www.google.com.eg",
"ES": "www.google.es",
"ET": "www.google.com.et",
"FI": "www.google.fi",
"FJ": "www.google.com.fj",
"FM": "www.google.fm",
"FR": "www.google.fr",
"GA": "www.google.ga",
"GE": "www.google.ge",
"GG": "www.google.gg",
"GH": "www.google.com.gh",
"GI": "www.google.com.gi",
"GL": "www.google.gl",
"GM": "www.google.gm",
"GR": "www.google.gr",
"GT": "www.google.com.gt",
"GY": "www.google.gy",
"HK": "www.google.com.hk",
"HN": "www.google.hn",
"HR": "www.google.hr",
"HT": "www.google.ht",
"HU": "www.google.hu",
"ID": "www.google.co.id",
"IE": "www.google.ie",
"IL": "www.google.co.il",
"IM": "www.google.im",
"IN": "www.google.co.in",
"IQ": "www.google.iq",
"IS": "www.google.is",
"IT": "www.google.it",
"JE": "www.google.je",
"JM": "www.google.com.jm",
"JO": "www.google.jo",
"JP": "www.google.co.jp",
"KE": "www.google.co.ke",
"KG": "www.google.kg",
"KH": "www.google.com.kh",
"KI": "www.google.ki",
"KR": "www.google.co.kr",
"KW": "www.google.com.kw",
"KZ": "www.google.kz",
"LA": "www.google.la",
"LB": "www.google.com.lb",
"LI": "www.google.li",
"LK": "www.google.lk",
"LS": "www.google.co.ls",
"LT": "www.google.lt",
"LU": "www.google.lu",
"LV": "www.google.lv",
"LY": "www.google.com.ly",
"MA": "www.google.co.ma",
"MD": "www.google.md",
"ME": "www.google.me",
"MG": "www.google.mg",
"MK": "www.google.mk",
"ML": "www.google.ml",
"MM": "www.google.com.mm",
"MN": "www.google.mn",
"MT": "www.google.com.mt",
"MU": "www.google.mu",
"MV": "www.google.mv",
"MW": "www.google.mw",
"MX": "www.google.com.mx",
"MY": "www.google.com.my",
"MZ": "www.google.co.mz",
"NA": "www.google.com.na",
"NE": "www.google.ne",
"NG": "www.google.com.ng",
"NI": "www.google.com.ni",
"NL": "www.google.nl",
"NO": "www.google.no",
"NP": "www.google.com.np",
"NR": "www.google.nr",
"NU": "www.google.nu",
"NZ": "www.google.co.nz",
"OM": "www.google.com.om",
"PA": "www.google.com.pa",
"PE": "www.google.com.pe",
"PG": "www.google.com.pg",
"PH": "www.google.com.ph",
"PK": "www.google.com.pk",
"PL": "www.google.pl",
"PN": "www.google.pn",
"PR": "www.google.com.pr",
"PS": "www.google.ps",
"PT": "www.google.pt",
"PY": "www.google.com.py",
"QA": "www.google.com.qa",
"RO": "www.google.ro",
"RS": "www.google.rs",
"RU": "www.google.ru",
"RW": "www.google.rw",
"SA": "www.google.com.sa",
"SB": "www.google.com.sb",
"SC": "www.google.sc",
"SE": "www.google.se",
"SG": "www.google.com.sg",
"SH": "www.google.sh",
"SI": "www.google.si",
"SK": "www.google.sk",
"SL": "www.google.com.sl",
"SM": "www.google.sm",
"SN": "www.google.sn",
"SO": "www.google.so",
"SR": "www.google.sr",
"ST": "www.google.st",
"SV": "www.google.com.sv",
"TD": "www.google.td",
"TG": "www.google.tg",
"TH": "www.google.co.th",
"TJ": "www.google.com.tj",
"TL": "www.google.tl",
"TM": "www.google.tm",
"TN": "www.google.tn",
"TO": "www.google.to",
"TR": "www.google.com.tr",
"TT": "www.google.tt",
"TW": "www.google.com.tw",
"TZ": "www.google.co.tz",
"UA": "www.google.com.ua",
"UG": "www.google.co.ug",
"UK": "www.google.co.uk",
"UY": "www.google.com.uy",
"UZ": "www.google.co.uz",
"VC": "www.google.com.vc",
"VE": "www.google.co.ve",
"VI": "www.google.co.vi",
"VN": "www.google.com.vn",
"VU": "www.google.vu",
"WS": "www.google.ws",
"ZA": "www.google.co.za",
"ZM": "www.google.co.zm",
"ZW": "www.google.co.zw"
}
},
"data_type": "traits_v1",
"languages": {
"af": "lang_af",
"ar": "lang_ar",
"be": "lang_be",
"bg": "lang_bg",
"ca": "lang_ca",
"cs": "lang_cs",
"da": "lang_da",
"de": "lang_de",
"el": "lang_el",
"en": "lang_en",
"eo": "lang_eo",
"es": "lang_es",
"et": "lang_et",
"fa": "lang_fa",
"fi": "lang_fi",
"fil": "lang_tl",
"fr": "lang_fr",
"he": "lang_iw",
"hi": "lang_hi",
"hr": "lang_hr",
"hu": "lang_hu",
"hy": "lang_hy",
"id": "lang_id",
"is": "lang_is",
"it": "lang_it",
"ja": "lang_ja",
"ko": "lang_ko",
"lt": "lang_lt",
"lv": "lang_lv",
"nb": "lang_no",
"nl": "lang_nl",
"pl": "lang_pl",
"pt": "lang_pt",
"ro": "lang_ro",
"ru": "lang_ru",
"sk": "lang_sk",
"sl": "lang_sl",
"sr": "lang_sr",
"sv": "lang_sv",
"sw": "lang_sw",
"th": "lang_th",
"tr": "lang_tr",
"uk": "lang_uk",
"vi": "lang_vi",
"zh": "lang_zh-CN",
"zh_Hans": "lang_zh-CN",
"zh_Hant": "lang_zh-TW"
},
"regions": {
[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>
2022-12-04 22:57:22 +01:00
"af-ZA": "ZA",
"ar-AE": "AE",
"ar-BH": "BH",
"ar-DJ": "DJ",
"ar-DZ": "DZ",
"ar-EG": "EG",
"ar-IL": "IL",
"ar-IQ": "IQ",
"ar-JO": "JO",
"ar-KW": "KW",
"ar-LB": "LB",
"ar-LY": "LY",
"ar-MA": "MA",
"ar-OM": "OM",
"ar-PS": "PS",
"ar-QA": "QA",
"ar-SA": "SA",
"ar-SO": "SO",
"ar-TD": "TD",
"ar-TN": "TN",
"be-BY": "BY",
"bg-BG": "BG",
"ca-AD": "AD",
"ca-ES": "ES",
"cs-CZ": "CZ",
"da-DK": "DK",
"de-AT": "AT",
"de-BE": "BE",
"de-CH": "CH",
"de-DE": "DE",
"de-LI": "LI",
"de-LU": "LU",
"el-CY": "CY",
"el-GR": "GR",
"en-AG": "AG",
"en-AS": "AS",
"en-AU": "AU",
"en-BI": "BI",
"en-BS": "BS",
"en-BW": "BW",
"en-BZ": "BZ",
"en-CA": "CA",
"en-CK": "CK",
"en-CM": "CM",
"en-DM": "DM",
"en-FJ": "FJ",
"en-FM": "FM",
"en-GB": "GB",
"en-GG": "GG",
"en-GH": "GH",
"en-GI": "GI",
"en-GM": "GM",
"en-GY": "GY",
"en-HK": "HK",
"en-IE": "IE",
"en-IM": "IM",
"en-IN": "IN",
"en-JE": "JE",
"en-JM": "JM",
"en-KE": "KE",
"en-KI": "KI",
"en-LS": "LS",
"en-MG": "MG",
"en-MT": "MT",
"en-MU": "MU",
"en-MW": "MW",
"en-NA": "NA",
"en-NG": "NG",
"en-NR": "NR",
"en-NU": "NU",
"en-NZ": "NZ",
"en-PG": "PG",
"en-PH": "PH",
"en-PK": "PK",
"en-PN": "PN",
"en-PR": "PR",
"en-RW": "RW",
"en-SB": "SB",
"en-SC": "SC",
"en-SG": "SG",
"en-SH": "SH",
"en-SL": "SL",
"en-TO": "TO",
"en-TT": "TT",
"en-TZ": "TZ",
"en-UG": "UG",
"en-US": "US",
"en-VC": "VC",
"en-VI": "VI",
"en-VU": "VU",
"en-WS": "WS",
"en-ZA": "ZA",
"en-ZM": "ZM",
"en-ZW": "ZW",
"es-AR": "AR",
"es-BO": "BO",
"es-CL": "CL",
"es-CO": "CO",
"es-CR": "CR",
"es-CU": "CU",
"es-DO": "DO",
"es-EC": "EC",
"es-ES": "ES",
"es-GT": "GT",
"es-HN": "HN",
"es-MX": "MX",
"es-NI": "NI",
"es-PA": "PA",
"es-PE": "PE",
"es-PR": "PR",
"es-PY": "PY",
"es-SV": "SV",
"es-US": "US",
"es-UY": "UY",
"es-VE": "VE",
"et-EE": "EE",
"fa-AF": "AF",
"fi-FI": "FI",
"fil-PH": "PH",
"fr-BE": "BE",
"fr-BF": "BF",
"fr-BI": "BI",
"fr-BJ": "BJ",
"fr-CA": "CA",
"fr-CD": "CD",
"fr-CF": "CF",
"fr-CG": "CG",
"fr-CH": "CH",
"fr-CI": "CI",
"fr-CM": "CM",
"fr-DJ": "DJ",
"fr-DZ": "DZ",
"fr-FR": "FR",
"fr-GA": "GA",
"fr-HT": "HT",
"fr-LU": "LU",
"fr-MA": "MA",
"fr-MG": "MG",
"fr-ML": "ML",
"fr-MU": "MU",
"fr-NE": "NE",
"fr-RW": "RW",
"fr-SC": "SC",
"fr-SN": "SN",
"fr-TD": "TD",
"fr-TG": "TG",
"fr-TN": "TN",
"fr-VU": "VU",
"he-IL": "IL",
"hi-IN": "IN",
"hr-BA": "BA",
"hr-HR": "HR",
"hu-HU": "HU",
"hy-AM": "AM",
"id-ID": "ID",
"is-IS": "IS",
"it-CH": "CH",
"it-IT": "IT",
"it-SM": "SM",
"ja-JP": "JP",
"ko-KR": "KR",
"lt-LT": "LT",
"lv-LV": "LV",
"nb-NO": "NO",
"nl-BE": "BE",
"nl-NL": "NL",
"nl-SR": "SR",
"pl-PL": "PL",
"pt-AO": "AO",
"pt-BR": "BR",
"pt-CV": "CV",
"pt-MZ": "MZ",
"pt-PT": "PT",
"pt-ST": "ST",
"pt-TL": "TL",
"ro-MD": "MD",
"ro-RO": "RO",
"ru-BY": "BY",
"ru-KG": "KG",
"ru-KZ": "KZ",
"ru-RU": "RU",
"ru-UA": "UA",
"sk-SK": "SK",
"sl-SI": "SI",
"sr-BA": "BA",
"sr-RS": "RS",
"sv-FI": "FI",
"sv-SE": "SE",
"sw-CD": "CD",
"sw-KE": "KE",
"sw-TZ": "TZ",
"sw-UG": "UG",
"th-TH": "TH",
"tr-CY": "CY",
"tr-TR": "TR",
"uk-UA": "UA",
"vi-VN": "VN",
"zh-CN": "HK",
"zh-HK": "HK",
"zh-SG": "SG",
"zh-TW": "TW"
}
},
"google images": {
"all_locale": "ZZ",
[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>
2022-12-04 22:57:22 +01:00
"custom": {
"supported_domains": {
"AD": "www.google.ad",
"AE": "www.google.ae",
"AF": "www.google.com.af",
"AG": "www.google.com.ag",
"AL": "www.google.al",
"AM": "www.google.am",
"AO": "www.google.co.ao",
"AR": "www.google.com.ar",
"AS": "www.google.as",
"AT": "www.google.at",
"AU": "www.google.com.au",
"AZ": "www.google.az",
"BA": "www.google.ba",
"BD": "www.google.com.bd",
"BE": "www.google.be",
"BF": "www.google.bf",
"BG": "www.google.bg",
"BH": "www.google.com.bh",
"BI": "www.google.bi",
"BJ": "www.google.bj",
"BN": "www.google.com.bn",
"BO": "www.google.com.bo",
"BR": "www.google.com.br",
"BS": "www.google.bs",
"BT": "www.google.bt",
"BW": "www.google.co.bw",
"BY": "www.google.by",
"BZ": "www.google.com.bz",
"CA": "www.google.ca",
"CAT": "www.google.cat",
"CD": "www.google.cd",
"CF": "www.google.cf",
"CG": "www.google.cg",
"CH": "www.google.ch",
"CI": "www.google.ci",
"CK": "www.google.co.ck",
"CL": "www.google.cl",
"CM": "www.google.cm",
"CN": "www.google.com.hk",
"CO": "www.google.com.co",
"CR": "www.google.co.cr",
"CU": "www.google.com.cu",
"CV": "www.google.cv",
"CY": "www.google.com.cy",
"CZ": "www.google.cz",
"DE": "www.google.de",
"DJ": "www.google.dj",
"DK": "www.google.dk",
"DM": "www.google.dm",
"DO": "www.google.com.do",
"DZ": "www.google.dz",
"EC": "www.google.com.ec",
"EE": "www.google.ee",
"EG": "www.google.com.eg",
"ES": "www.google.es",
"ET": "www.google.com.et",
"FI": "www.google.fi",
"FJ": "www.google.com.fj",
"FM": "www.google.fm",
"FR": "www.google.fr",
"GA": "www.google.ga",
"GE": "www.google.ge",
"GG": "www.google.gg",
"GH": "www.google.com.gh",
"GI": "www.google.com.gi",
"GL": "www.google.gl",
"GM": "www.google.gm",
"GR": "www.google.gr",
"GT": "www.google.com.gt",
"GY": "www.google.gy",
"HK": "www.google.com.hk",
"HN": "www.google.hn",
"HR": "www.google.hr",
"HT": "www.google.ht",
"HU": "www.google.hu",
"ID": "www.google.co.id",
"IE": "www.google.ie",
"IL": "www.google.co.il",
"IM": "www.google.im",
"IN": "www.google.co.in",
"IQ": "www.google.iq",
"IS": "www.google.is",
"IT": "www.google.it",
"JE": "www.google.je",
"JM": "www.google.com.jm",
"JO": "www.google.jo",
"JP": "www.google.co.jp",
"KE": "www.google.co.ke",
"KG": "www.google.kg",
"KH": "www.google.com.kh",
"KI": "www.google.ki",
"KR": "www.google.co.kr",
"KW": "www.google.com.kw",
"KZ": "www.google.kz",
"LA": "www.google.la",
"LB": "www.google.com.lb",
"LI": "www.google.li",
"LK": "www.google.lk",
"LS": "www.google.co.ls",
"LT": "www.google.lt",
"LU": "www.google.lu",
"LV": "www.google.lv",
"LY": "www.google.com.ly",
"MA": "www.google.co.ma",
"MD": "www.google.md",
"ME": "www.google.me",
"MG": "www.google.mg",
"MK": "www.google.mk",
"ML": "www.google.ml",
"MM": "www.google.com.mm",
"MN": "www.google.mn",
"MT": "www.google.com.mt",
"MU": "www.google.mu",
"MV": "www.google.mv",
"MW": "www.google.mw",
"MX": "www.google.com.mx",
"MY": "www.google.com.my",
"MZ": "www.google.co.mz",
"NA": "www.google.com.na",
"NE": "www.google.ne",
"NG": "www.google.com.ng",
"NI": "www.google.com.ni",
"NL": "www.google.nl",
"NO": "www.google.no",
"NP": "www.google.com.np",
"NR": "www.google.nr",
"NU": "www.google.nu",
"NZ": "www.google.co.nz",
"OM": "www.google.com.om",
"PA": "www.google.com.pa",
"PE": "www.google.com.pe",
"PG": "www.google.com.pg",
"PH": "www.google.com.ph",
"PK": "www.google.com.pk",
"PL": "www.google.pl",
"PN": "www.google.pn",
"PR": "www.google.com.pr",
"PS": "www.google.ps",
"PT": "www.google.pt",
"PY": "www.google.com.py",
"QA": "www.google.com.qa",
"RO": "www.google.ro",
"RS": "www.google.rs",
"RU": "www.google.ru",
"RW": "www.google.rw",
"SA": "www.google.com.sa",
"SB": "www.google.com.sb",
"SC": "www.google.sc",
"SE": "www.google.se",
"SG": "www.google.com.sg",
"SH": "www.google.sh",
"SI": "www.google.si",
"SK": "www.google.sk",
"SL": "www.google.com.sl",
"SM": "www.google.sm",
"SN": "www.google.sn",
"SO": "www.google.so",
"SR": "www.google.sr",
"ST": "www.google.st",
"SV": "www.google.com.sv",
"TD": "www.google.td",
"TG": "www.google.tg",
"TH": "www.google.co.th",
"TJ": "www.google.com.tj",
"TL": "www.google.tl",
"TM": "www.google.tm",
"TN": "www.google.tn",
"TO": "www.google.to",
"TR": "www.google.com.tr",
"TT": "www.google.tt",
"TW": "www.google.com.tw",
"TZ": "www.google.co.tz",
"UA": "www.google.com.ua",
"UG": "www.google.co.ug",
"UK": "www.google.co.uk",
"UY": "www.google.com.uy",
"UZ": "www.google.co.uz",
"VC": "www.google.com.vc",
"VE": "www.google.co.ve",
"VI": "www.google.co.vi",
"VN": "www.google.com.vn",
"VU": "www.google.vu",
"WS": "www.google.ws",
"ZA": "www.google.co.za",
"ZM": "www.google.co.zm",
"ZW": "www.google.co.zw"
}
},
"data_type": "traits_v1",
"languages": {
"af": "lang_af",
"ar": "lang_ar",
"be": "lang_be",
"bg": "lang_bg",
"ca": "lang_ca",
"cs": "lang_cs",
"da": "lang_da",
"de": "lang_de",
"el": "lang_el",
"en": "lang_en",
"eo": "lang_eo",
"es": "lang_es",
"et": "lang_et",
"fa": "lang_fa",
"fi": "lang_fi",
"fil": "lang_tl",
"fr": "lang_fr",
"he": "lang_iw",
"hi": "lang_hi",
"hr": "lang_hr",
"hu": "lang_hu",
"hy": "lang_hy",
"id": "lang_id",
"is": "lang_is",
"it": "lang_it",
"ja": "lang_ja",
"ko": "lang_ko",
"lt": "lang_lt",
"lv": "lang_lv",
"nb": "lang_no",
"nl": "lang_nl",
"pl": "lang_pl",
"pt": "lang_pt",
"ro": "lang_ro",
"ru": "lang_ru",
"sk": "lang_sk",
"sl": "lang_sl",
"sr": "lang_sr",
"sv": "lang_sv",
"sw": "lang_sw",
"th": "lang_th",
"tr": "lang_tr",
"uk": "lang_uk",
"vi": "lang_vi",
"zh": "lang_zh-CN",
"zh_Hans": "lang_zh-CN",
"zh_Hant": "lang_zh-TW"
},
"regions": {
[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>
2022-12-04 22:57:22 +01:00
"af-ZA": "ZA",
"ar-AE": "AE",
"ar-BH": "BH",
"ar-DJ": "DJ",
"ar-DZ": "DZ",
"ar-EG": "EG",
"ar-IL": "IL",
"ar-IQ": "IQ",
"ar-JO": "JO",
"ar-KW": "KW",
"ar-LB": "LB",
"ar-LY": "LY",
"ar-MA": "MA",
"ar-OM": "OM",
"ar-PS": "PS",
"ar-QA": "QA",
"ar-SA": "SA",
"ar-SO": "SO",
"ar-TD": "TD",
"ar-TN": "TN",
"be-BY": "BY",
"bg-BG": "BG",
"ca-AD": "AD",
"ca-ES": "ES",
"cs-CZ": "CZ",
"da-DK": "DK",
"de-AT": "AT",
"de-BE": "BE",
"de-CH": "CH",
"de-DE": "DE",
"de-LI": "LI",
"de-LU": "LU",
"el-CY": "CY",
"el-GR": "GR",
"en-AG": "AG",
"en-AS": "AS",
"en-AU": "AU",
"en-BI": "BI",
"en-BS": "BS",
"en-BW": "BW",
"en-BZ": "BZ",
"en-CA": "CA",
"en-CK": "CK",
"en-CM": "CM",
"en-DM": "DM",
"en-FJ": "FJ",
"en-FM": "FM",
"en-GB": "GB",
"en-GG": "GG",
"en-GH": "GH",
"en-GI": "GI",
"en-GM": "GM",
"en-GY": "GY",
"en-HK": "HK",
"en-IE": "IE",
"en-IM": "IM",
"en-IN": "IN",
"en-JE": "JE",
"en-JM": "JM",
"en-KE": "KE",
"en-KI": "KI",
"en-LS": "LS",
"en-MG": "MG",
"en-MT": "MT",
"en-MU": "MU",
"en-MW": "MW",
"en-NA": "NA",
"en-NG": "NG",
"en-NR": "NR",
"en-NU": "NU",
"en-NZ": "NZ",
"en-PG": "PG",
"en-PH": "PH",
"en-PK": "PK",
"en-PN": "PN",
"en-PR": "PR",
"en-RW": "RW",
"en-SB": "SB",
"en-SC": "SC",
"en-SG": "SG",
"en-SH": "SH",
"en-SL": "SL",
"en-TO": "TO",
"en-TT": "TT",
"en-TZ": "TZ",
"en-UG": "UG",
"en-US": "US",
"en-VC": "VC",
"en-VI": "VI",
"en-VU": "VU",
"en-WS": "WS",
"en-ZA": "ZA",
"en-ZM": "ZM",
"en-ZW": "ZW",
"es-AR": "AR",
"es-BO": "BO",
"es-CL": "CL",
"es-CO": "CO",
"es-CR": "CR",
"es-CU": "CU",
"es-DO": "DO",
"es-EC": "EC",
"es-ES": "ES",
"es-GT": "GT",
"es-HN": "HN",
"es-MX": "MX",
"es-NI": "NI",
"es-PA": "PA",
"es-PE": "PE",
"es-PR": "PR",
"es-PY": "PY",
"es-SV": "SV",
"es-US": "US",
"es-UY": "UY",
"es-VE": "VE",
"et-EE": "EE",
"fa-AF": "AF",
"fi-FI": "FI",
"fil-PH": "PH",
"fr-BE": "BE",
"fr-BF": "BF",
"fr-BI": "BI",
"fr-BJ": "BJ",
"fr-CA": "CA",
"fr-CD": "CD",
"fr-CF": "CF",
"fr-CG": "CG",
"fr-CH": "CH",
"fr-CI": "CI",
"fr-CM": "CM",
"fr-DJ": "DJ",
"fr-DZ": "DZ",
"fr-FR": "FR",
"fr-GA": "GA",
"fr-HT": "HT",
"fr-LU": "LU",
"fr-MA": "MA",
"fr-MG": "MG",
"fr-ML": "ML",
"fr-MU": "MU",
"fr-NE": "NE",
"fr-RW": "RW",
"fr-SC": "SC",
"fr-SN": "SN",
"fr-TD": "TD",
"fr-TG": "TG",
"fr-TN": "TN",
"fr-VU": "VU",
"he-IL": "IL",
"hi-IN": "IN",
"hr-BA": "BA",
"hr-HR": "HR",
"hu-HU": "HU",
"hy-AM": "AM",
"id-ID": "ID",
"is-IS": "IS",
"it-CH": "CH",
"it-IT": "IT",
"it-SM": "SM",
"ja-JP": "JP",
"ko-KR": "KR",
"lt-LT": "LT",
"lv-LV": "LV",
"nb-NO": "NO",
"nl-BE": "BE",
"nl-NL": "NL",
"nl-SR": "SR",
"pl-PL": "PL",
"pt-AO": "AO",
"pt-BR": "BR",
"pt-CV": "CV",
"pt-MZ": "MZ",
"pt-PT": "PT",
"pt-ST": "ST",
"pt-TL": "TL",
"ro-MD": "MD",
"ro-RO": "RO",
"ru-BY": "BY",
"ru-KG": "KG",
"ru-KZ": "KZ",
"ru-RU": "RU",
"ru-UA": "UA",
"sk-SK": "SK",
"sl-SI": "SI",
"sr-BA": "BA",
"sr-RS": "RS",
"sv-FI": "FI",
"sv-SE": "SE",
"sw-CD": "CD",
"sw-KE": "KE",
"sw-TZ": "TZ",
"sw-UG": "UG",
"th-TH": "TH",
"tr-CY": "CY",
"tr-TR": "TR",
"uk-UA": "UA",
"vi-VN": "VN",
"zh-CN": "HK",
"zh-HK": "HK",
"zh-SG": "SG",
"zh-TW": "TW"
}
},
"google news": {
"all_locale": "ZZ",
[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>
2022-12-04 22:57:22 +01:00
"custom": {
"ceid": {
"ar-AE": "AE:ar",
"ar-EG": "EG:ar",
"ar-LB": "LB:ar",
"ar-SA": "SA:ar",
"bg-BG": "BG:bg",
"bn-BD": "BD:bn",
"bn-IN": "IN:bn",
"cs-CZ": "CZ:cs",
"de-AT": "AT:de",
"de-CH": "CH:de",
"de-DE": "DE:de",
"el-GR": "GR:el",
"en-AU": "AU:en",
"en-BW": "BW:en",
"en-CA": "CA:en",
"en-GB": "GB:en",
"en-GH": "GH:en",
"en-IE": "IE:en",
"en-IL": "IL:en",
"en-IN": "IN:en",
"en-KE": "KE:en",
"en-MY": "MY:en",
"en-NA": "NA:en",
"en-NG": "NG:en",
"en-NZ": "NZ:en",
"en-PH": "PH:en",
"en-PK": "PK:en",
"en-SG": "SG:en",
"en-TZ": "TZ:en",
"en-UG": "UG:en",
"en-US": "US:en",
"en-ZA": "ZA:en",
"en-ZW": "ZW:en",
"es-AR": "AR:es-419",
"es-CL": "CL:es-419",
"es-CO": "CO:es-419",
"es-CU": "CU:es-419",
"es-ES": "ES:es",
"es-MX": "MX:es-419",
"es-PE": "PE:es-419",
"es-US": "US:es-419",
"es-VE": "VE:es-419",
"fr-BE": "BE:fr",
"fr-CA": "CA:fr",
"fr-CH": "CH:fr",
"fr-FR": "FR:fr",
"fr-MA": "MA:fr",
"fr-SN": "SN:fr",
"he-IL": "IL:he",
"hi-IN": "IN:hi",
"hu-HU": "HU:hu",
"id-ID": "ID:id",
"it-IT": "IT:it",
"ja-JP": "JP:ja",
"ko-KR": "KR:ko",
"lt-LT": "LT:lt",
"lv-LV": "LV:lv",
"ml-IN": "IN:ml",
"mr-IN": "IN:mr",
"nb-NO": "NO:no",
"nl-BE": "BE:nl",
"nl-NL": "NL:nl",
"pl-PL": "PL:pl",
"pt-BR": "BR:pt-419",
"pt-PT": "PT:pt-150",
"ro-RO": "RO:ro",
"ru-RU": "RU:ru",
"ru-UA": "UA:ru",
"sk-SK": "SK:sk",
"sl-SI": "SI:sl",
"sr-RS": "RS:sr",
"sv-SE": "SE:sv",
"ta-IN": "IN:ta",
"te-IN": "IN:te",
"th-TH": "TH:th",
"tr-TR": "TR:tr",
"uk-UA": "UA:uk",
"vi-VN": "VN:vi",
"zh-CN": "CN:zh-Hans",
"zh-HK": "HK:zh-Hant",
"zh-TW": "TW:zh-Hant"
},
"supported_domains": {}
},
"data_type": "traits_v1",
"languages": {
"af": "lang_af",
"ar": "lang_ar",
"be": "lang_be",
"bg": "lang_bg",
"ca": "lang_ca",
"cs": "lang_cs",
"da": "lang_da",
"de": "lang_de",
"el": "lang_el",
"en": "lang_en",
"eo": "lang_eo",
"es": "lang_es",
"et": "lang_et",
"fa": "lang_fa",
"fi": "lang_fi",
"fil": "lang_tl",
"fr": "lang_fr",
"he": "lang_iw",
"hi": "lang_hi",
"hr": "lang_hr",
"hu": "lang_hu",
"hy": "lang_hy",
"id": "lang_id",
"is": "lang_is",
"it": "lang_it",
"ja": "lang_ja",
"ko": "lang_ko",
"lt": "lang_lt",
"lv": "lang_lv",
"nb": "lang_no",
"nl": "lang_nl",
"pl": "lang_pl",
"pt": "lang_pt",
"ro": "lang_ro",
"ru": "lang_ru",
"sk": "lang_sk",
"sl": "lang_sl",
"sr": "lang_sr",
"sv": "lang_sv",
"sw": "lang_sw",
"th": "lang_th",
"tr": "lang_tr",
"uk": "lang_uk",
"vi": "lang_vi",
"zh": "lang_zh-CN",
"zh_Hans": "lang_zh-CN",
"zh_Hant": "lang_zh-TW"
},
"regions": {
[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>
2022-12-04 22:57:22 +01:00
"af-ZA": "ZA",
"ar-AE": "AE",
"ar-BH": "BH",
"ar-DJ": "DJ",
"ar-DZ": "DZ",
"ar-EG": "EG",
"ar-IL": "IL",
"ar-IQ": "IQ",
"ar-JO": "JO",
"ar-KW": "KW",
"ar-LB": "LB",
"ar-LY": "LY",
"ar-MA": "MA",
"ar-OM": "OM",
"ar-PS": "PS",
"ar-QA": "QA",
"ar-SA": "SA",
"ar-SO": "SO",
"ar-TD": "TD",
"ar-TN": "TN",
"be-BY": "BY",
"bg-BG": "BG",
"ca-AD": "AD",
"ca-ES": "ES",
"cs-CZ": "CZ",
"da-DK": "DK",
"de-AT": "AT",
"de-BE": "BE",
"de-CH": "CH",
"de-DE": "DE",
"de-LI": "LI",
"de-LU": "LU",
"el-CY": "CY",
"el-GR": "GR",
"en-AG": "AG",
"en-AS": "AS",
"en-AU": "AU",
"en-BI": "BI",
"en-BS": "BS",
"en-BW": "BW",
"en-BZ": "BZ",
"en-CA": "CA",
"en-CK": "CK",
"en-CM": "CM",
"en-DM": "DM",
"en-FJ": "FJ",
"en-FM": "FM",
"en-GB": "GB",
"en-GG": "GG",
"en-GH": "GH",
"en-GI": "GI",
"en-GM": "GM",
"en-GY": "GY",
"en-HK": "HK",
"en-IE": "IE",
"en-IM": "IM",
"en-IN": "IN",
"en-JE": "JE",
"en-JM": "JM",
"en-KE": "KE",
"en-KI": "KI",
"en-LS": "LS",
"en-MG": "MG",
"en-MT": "MT",
"en-MU": "MU",
"en-MW": "MW",
"en-NA": "NA",
"en-NG": "NG",
"en-NR": "NR",
"en-NU": "NU",
"en-NZ": "NZ",
"en-PG": "PG",
"en-PH": "PH",
"en-PK": "PK",
"en-PN": "PN",
"en-PR": "PR",
"en-RW": "RW",
"en-SB": "SB",
"en-SC": "SC",
"en-SG": "SG",
"en-SH": "SH",
"en-SL": "SL",
"en-TO": "TO",
"en-TT": "TT",
"en-TZ": "TZ",
"en-UG": "UG",
"en-US": "US",
"en-VC": "VC",
"en-VI": "VI",
"en-VU": "VU",
"en-WS": "WS",
"en-ZA": "ZA",
"en-ZM": "ZM",
"en-ZW": "ZW",
"es-AR": "AR",
"es-BO": "BO",
"es-CL": "CL",
"es-CO": "CO",
"es-CR": "CR",
"es-CU": "CU",
"es-DO": "DO",
"es-EC": "EC",
"es-ES": "ES",
"es-GT": "GT",
"es-HN": "HN",
"es-MX": "MX",
"es-NI": "NI",
"es-PA": "PA",
"es-PE": "PE",
"es-PR": "PR",
"es-PY": "PY",
"es-SV": "SV",
"es-US": "US",
"es-UY": "UY",
"es-VE": "VE",
"et-EE": "EE",
"fa-AF": "AF",
"fi-FI": "FI",
"fil-PH": "PH",
"fr-BE": "BE",
"fr-BF": "BF",
"fr-BI": "BI",
"fr-BJ": "BJ",
"fr-CA": "CA",
"fr-CD": "CD",
"fr-CF": "CF",
"fr-CG": "CG",
"fr-CH": "CH",
"fr-CI": "CI",
"fr-CM": "CM",
"fr-DJ": "DJ",
"fr-DZ": "DZ",
"fr-FR": "FR",
"fr-GA": "GA",
"fr-HT": "HT",
"fr-LU": "LU",
"fr-MA": "MA",
"fr-MG": "MG",
"fr-ML": "ML",
"fr-MU": "MU",
"fr-NE": "NE",
"fr-RW": "RW",
"fr-SC": "SC",
"fr-SN": "SN",
"fr-TD": "TD",
"fr-TG": "TG",
"fr-TN": "TN",
"fr-VU": "VU",
"he-IL": "IL",
"hi-IN": "IN",
"hr-BA": "BA",
"hr-HR": "HR",
"hu-HU": "HU",
"hy-AM": "AM",
"id-ID": "ID",
"is-IS": "IS",
"it-CH": "CH",
"it-IT": "IT",
"it-SM": "SM",
"ja-JP": "JP",
"ko-KR": "KR",
"lt-LT": "LT",
"lv-LV": "LV",
"nb-NO": "NO",
"nl-BE": "BE",
"nl-NL": "NL",
"nl-SR": "SR",
"pl-PL": "PL",
"pt-AO": "AO",
"pt-BR": "BR",
"pt-CV": "CV",
"pt-MZ": "MZ",
"pt-PT": "PT",
"pt-ST": "ST",
"pt-TL": "TL",
"ro-MD": "MD",
"ro-RO": "RO",
"ru-BY": "BY",
"ru-KG": "KG",
"ru-KZ": "KZ",
"ru-RU": "RU",
"ru-UA": "UA",
"sk-SK": "SK",
"sl-SI": "SI",
"sr-BA": "BA",
"sr-RS": "RS",
"sv-FI": "FI",
"sv-SE": "SE",
"sw-CD": "CD",
"sw-KE": "KE",
"sw-TZ": "TZ",
"sw-UG": "UG",
"th-TH": "TH",
"tr-CY": "CY",
"tr-TR": "TR",
"uk-UA": "UA",
"vi-VN": "VN",
"zh-CN": "HK",
"zh-HK": "HK",
"zh-SG": "SG",
"zh-TW": "TW"
}
},
"google scholar": {
"all_locale": "ZZ",
[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>
2022-12-04 22:57:22 +01:00
"custom": {
"supported_domains": {
"AD": "www.google.ad",
"AE": "www.google.ae",
"AF": "www.google.com.af",
"AG": "www.google.com.ag",
"AL": "www.google.al",
"AM": "www.google.am",
"AO": "www.google.co.ao",
"AR": "www.google.com.ar",
"AS": "www.google.as",
"AT": "www.google.at",
"AU": "www.google.com.au",
"AZ": "www.google.az",
"BA": "www.google.ba",
"BD": "www.google.com.bd",
"BE": "www.google.be",
"BF": "www.google.bf",
"BG": "www.google.bg",
"BH": "www.google.com.bh",
"BI": "www.google.bi",
"BJ": "www.google.bj",
"BN": "www.google.com.bn",
"BO": "www.google.com.bo",
"BR": "www.google.com.br",
"BS": "www.google.bs",
"BT": "www.google.bt",
"BW": "www.google.co.bw",
"BY": "www.google.by",
"BZ": "www.google.com.bz",
"CA": "www.google.ca",
"CAT": "www.google.cat",
"CD": "www.google.cd",
"CF": "www.google.cf",
"CG": "www.google.cg",
"CH": "www.google.ch",
"CI": "www.google.ci",
"CK": "www.google.co.ck",
"CL": "www.google.cl",
"CM": "www.google.cm",
"CN": "www.google.com.hk",
"CO": "www.google.com.co",
"CR": "www.google.co.cr",
"CU": "www.google.com.cu",
"CV": "www.google.cv",
"CY": "www.google.com.cy",
"CZ": "www.google.cz",
"DE": "www.google.de",
"DJ": "www.google.dj",
"DK": "www.google.dk",
"DM": "www.google.dm",
"DO": "www.google.com.do",
"DZ": "www.google.dz",
"EC": "www.google.com.ec",
"EE": "www.google.ee",
"EG": "www.google.com.eg",
"ES": "www.google.es",
"ET": "www.google.com.et",
"FI": "www.google.fi",
"FJ": "www.google.com.fj",
"FM": "www.google.fm",
"FR": "www.google.fr",
"GA": "www.google.ga",
"GE": "www.google.ge",
"GG": "www.google.gg",
"GH": "www.google.com.gh",
"GI": "www.google.com.gi",
"GL": "www.google.gl",
"GM": "www.google.gm",
"GR": "www.google.gr",
"GT": "www.google.com.gt",
"GY": "www.google.gy",
"HK": "www.google.com.hk",
"HN": "www.google.hn",
"HR": "www.google.hr",
"HT": "www.google.ht",
"HU": "www.google.hu",
"ID": "www.google.co.id",
"IE": "www.google.ie",
"IL": "www.google.co.il",
"IM": "www.google.im",
"IN": "www.google.co.in",
"IQ": "www.google.iq",
"IS": "www.google.is",
"IT": "www.google.it",
"JE": "www.google.je",
"JM": "www.google.com.jm",
"JO": "www.google.jo",
"JP": "www.google.co.jp",
"KE": "www.google.co.ke",
"KG": "www.google.kg",
"KH": "www.google.com.kh",
"KI": "www.google.ki",
"KR": "www.google.co.kr",
"KW": "www.google.com.kw",
"KZ": "www.google.kz",
"LA": "www.google.la",
"LB": "www.google.com.lb",
"LI": "www.google.li",
"LK": "www.google.lk",
"LS": "www.google.co.ls",
"LT": "www.google.lt",
"LU": "www.google.lu",
"LV": "www.google.lv",
"LY": "www.google.com.ly",
"MA": "www.google.co.ma",
"MD": "www.google.md",
"ME": "www.google.me",
"MG": "www.google.mg",
"MK": "www.google.mk",
"ML": "www.google.ml",
"MM": "www.google.com.mm",
"MN": "www.google.mn",
"MT": "www.google.com.mt",
"MU": "www.google.mu",
"MV": "www.google.mv",
"MW": "www.google.mw",
"MX": "www.google.com.mx",
"MY": "www.google.com.my",
"MZ": "www.google.co.mz",
"NA": "www.google.com.na",
"NE": "www.google.ne",
"NG": "www.google.com.ng",
"NI": "www.google.com.ni",
"NL": "www.google.nl",
"NO": "www.google.no",
"NP": "www.google.com.np",
"NR": "www.google.nr",
"NU": "www.google.nu",
"NZ": "www.google.co.nz",
"OM": "www.google.com.om",
"PA": "www.google.com.pa",
"PE": "www.google.com.pe",
"PG": "www.google.com.pg",
"PH": "www.google.com.ph",
"PK": "www.google.com.pk",
"PL": "www.google.pl",
"PN": "www.google.pn",
"PR": "www.google.com.pr",
"PS": "www.google.ps",
"PT": "www.google.pt",
"PY": "www.google.com.py",
"QA": "www.google.com.qa",
"RO": "www.google.ro",
"RS": "www.google.rs",
"RU": "www.google.ru",
"RW": "www.google.rw",
"SA": "www.google.com.sa",
"SB": "www.google.com.sb",
"SC": "www.google.sc",
"SE": "www.google.se",
"SG": "www.google.com.sg",
"SH": "www.google.sh",
"SI": "www.google.si",
"SK": "www.google.sk",
"SL": "www.google.com.sl",
"SM": "www.google.sm",
"SN": "www.google.sn",
"SO": "www.google.so",
"SR": "www.google.sr",
"ST": "www.google.st",
"SV": "www.google.com.sv",
"TD": "www.google.td",
"TG": "www.google.tg",
"TH": "www.google.co.th",
"TJ": "www.google.com.tj",
"TL": "www.google.tl",
"TM": "www.google.tm",
"TN": "www.google.tn",
"TO": "www.google.to",
"TR": "www.google.com.tr",
"TT": "www.google.tt",
"TW": "www.google.com.tw",
"TZ": "www.google.co.tz",
"UA": "www.google.com.ua",
"UG": "www.google.co.ug",
"UK": "www.google.co.uk",
"UY": "www.google.com.uy",
"UZ": "www.google.co.uz",
"VC": "www.google.com.vc",
"VE": "www.google.co.ve",
"VI": "www.google.co.vi",
"VN": "www.google.com.vn",
"VU": "www.google.vu",
"WS": "www.google.ws",
"ZA": "www.google.co.za",
"ZM": "www.google.co.zm",
"ZW": "www.google.co.zw"
}
},
"data_type": "traits_v1",
"languages": {
"af": "lang_af",
"ar": "lang_ar",
"be": "lang_be",
"bg": "lang_bg",
"ca": "lang_ca",
"cs": "lang_cs",
"da": "lang_da",
"de": "lang_de",
"el": "lang_el",
"en": "lang_en",
"eo": "lang_eo",
"es": "lang_es",
"et": "lang_et",
"fa": "lang_fa",
"fi": "lang_fi",
"fil": "lang_tl",
"fr": "lang_fr",
"he": "lang_iw",
"hi": "lang_hi",
"hr": "lang_hr",
"hu": "lang_hu",
"hy": "lang_hy",
"id": "lang_id",
"is": "lang_is",
"it": "lang_it",
"ja": "lang_ja",
"ko": "lang_ko",
"lt": "lang_lt",
"lv": "lang_lv",
"nb": "lang_no",
"nl": "lang_nl",
"pl": "lang_pl",
"pt": "lang_pt",
"ro": "lang_ro",
"ru": "lang_ru",
"sk": "lang_sk",
"sl": "lang_sl",
"sr": "lang_sr",
"sv": "lang_sv",
"sw": "lang_sw",
"th": "lang_th",
"tr": "lang_tr",
"uk": "lang_uk",
"vi": "lang_vi",
"zh": "lang_zh-CN",
"zh_Hans": "lang_zh-CN",
"zh_Hant": "lang_zh-TW"
},
"regions": {
[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>
2022-12-04 22:57:22 +01:00
"af-ZA": "ZA",
"ar-AE": "AE",
"ar-BH": "BH",
"ar-DJ": "DJ",
"ar-DZ": "DZ",
"ar-EG": "EG",
"ar-IL": "IL",
"ar-IQ": "IQ",
"ar-JO": "JO",
"ar-KW": "KW",
"ar-LB": "LB",
"ar-LY": "LY",
"ar-MA": "MA",
"ar-OM": "OM",
"ar-PS": "PS",
"ar-QA": "QA",
"ar-SA": "SA",
"ar-SO": "SO",
"ar-TD": "TD",
"ar-TN": "TN",
"be-BY": "BY",
"bg-BG": "BG",
"ca-AD": "AD",
"ca-ES": "ES",
"cs-CZ": "CZ",
"da-DK": "DK",
"de-AT": "AT",
"de-BE": "BE",
"de-CH": "CH",
"de-DE": "DE",
"de-LI": "LI",
"de-LU": "LU",
"el-CY": "CY",
"el-GR": "GR",
"en-AG": "AG",
"en-AS": "AS",
"en-AU": "AU",
"en-BI": "BI",
"en-BS": "BS",
"en-BW": "BW",
"en-BZ": "BZ",
"en-CA": "CA",
"en-CK": "CK",
"en-CM": "CM",
"en-DM": "DM",
"en-FJ": "FJ",
"en-FM": "FM",
"en-GB": "GB",
"en-GG": "GG",
"en-GH": "GH",
"en-GI": "GI",
"en-GM": "GM",
"en-GY": "GY",
"en-HK": "HK",
"en-IE": "IE",
"en-IM": "IM",
"en-IN": "IN",
"en-JE": "JE",
"en-JM": "JM",
"en-KE": "KE",
"en-KI": "KI",
"en-LS": "LS",
"en-MG": "MG",
"en-MT": "MT",
"en-MU": "MU",
"en-MW": "MW",
"en-NA": "NA",
"en-NG": "NG",
"en-NR": "NR",
"en-NU": "NU",
"en-NZ": "NZ",
"en-PG": "PG",
"en-PH": "PH",
"en-PK": "PK",
"en-PN": "PN",
"en-PR": "PR",
"en-RW": "RW",
"en-SB": "SB",
"en-SC": "SC",
"en-SG": "SG",
"en-SH": "SH",
"en-SL": "SL",
"en-TO": "TO",
"en-TT": "TT",
"en-TZ": "TZ",
"en-UG": "UG",
"en-US": "US",
"en-VC": "VC",
"en-VI": "VI",
"en-VU": "VU",
"en-WS": "WS",
"en-ZA": "ZA",
"en-ZM": "ZM",
"en-ZW": "ZW",
"es-AR": "AR",
"es-BO": "BO",
"es-CL": "CL",
"es-CO": "CO",
"es-CR": "CR",
"es-CU": "CU",
"es-DO": "DO",
"es-EC": "EC",
"es-ES": "ES",
"es-GT": "GT",
"es-HN": "HN",
"es-MX": "MX",
"es-NI": "NI",
"es-PA": "PA",
"es-PE": "PE",
"es-PR": "PR",
"es-PY": "PY",
"es-SV": "SV",
"es-US": "US",
"es-UY": "UY",
"es-VE": "VE",
"et-EE": "EE",
"fa-AF": "AF",
"fi-FI": "FI",
"fil-PH": "PH",
"fr-BE": "BE",
"fr-BF": "BF",
"fr-BI": "BI",
"fr-BJ": "BJ",
"fr-CA": "CA",
"fr-CD": "CD",
"fr-CF": "CF",
"fr-CG": "CG",
"fr-CH": "CH",
"fr-CI": "CI",
"fr-CM": "CM",
"fr-DJ": "DJ",
"fr-DZ": "DZ",
"fr-FR": "FR",
"fr-GA": "GA",
"fr-HT": "HT",
"fr-LU": "LU",
"fr-MA": "MA",
"fr-MG": "MG",
"fr-ML": "ML",
"fr-MU": "MU",
"fr-NE": "NE",
"fr-RW": "RW",
"fr-SC": "SC",
"fr-SN": "SN",
"fr-TD": "TD",
"fr-TG": "TG",
"fr-TN": "TN",
"fr-VU": "VU",
"he-IL": "IL",
"hi-IN": "IN",
"hr-BA": "BA",
"hr-HR": "HR",
"hu-HU": "HU",
"hy-AM": "AM",
"id-ID": "ID",
"is-IS": "IS",
"it-CH": "CH",
"it-IT": "IT",
"it-SM": "SM",
"ja-JP": "JP",
"ko-KR": "KR",
"lt-LT": "LT",
"lv-LV": "LV",
"nb-NO": "NO",
"nl-BE": "BE",
"nl-NL": "NL",
"nl-SR": "SR",
"pl-PL": "PL",
"pt-AO": "AO",
"pt-BR": "BR",
"pt-CV": "CV",
"pt-MZ": "MZ",
"pt-PT": "PT",
"pt-ST": "ST",
"pt-TL": "TL",
"ro-MD": "MD",
"ro-RO": "RO",
"ru-BY": "BY",
"ru-KG": "KG",
"ru-KZ": "KZ",
"ru-RU": "RU",
"ru-UA": "UA",
"sk-SK": "SK",
"sl-SI": "SI",
"sr-BA": "BA",
"sr-RS": "RS",
"sv-FI": "FI",
"sv-SE": "SE",
"sw-CD": "CD",
"sw-KE": "KE",
"sw-TZ": "TZ",
"sw-UG": "UG",
"th-TH": "TH",
"tr-CY": "CY",
"tr-TR": "TR",
"uk-UA": "UA",
"vi-VN": "VN",
"zh-CN": "HK",
"zh-HK": "HK",
"zh-SG": "SG",
"zh-TW": "TW"
}
},
"google videos": {
"all_locale": "ZZ",
[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>
2022-12-04 22:57:22 +01:00
"custom": {
"supported_domains": {
"AD": "www.google.ad",
"AE": "www.google.ae",
"AF": "www.google.com.af",
"AG": "www.google.com.ag",
"AL": "www.google.al",
"AM": "www.google.am",
"AO": "www.google.co.ao",
"AR": "www.google.com.ar",
"AS": "www.google.as",
"AT": "www.google.at",
"AU": "www.google.com.au",
"AZ": "www.google.az",
"BA": "www.google.ba",
"BD": "www.google.com.bd",
"BE": "www.google.be",
"BF": "www.google.bf",
"BG": "www.google.bg",
"BH": "www.google.com.bh",
"BI": "www.google.bi",
"BJ": "www.google.bj",
"BN": "www.google.com.bn",
"BO": "www.google.com.bo",
"BR": "www.google.com.br",
"BS": "www.google.bs",
"BT": "www.google.bt",
"BW": "www.google.co.bw",
"BY": "www.google.by",
"BZ": "www.google.com.bz",
"CA": "www.google.ca",
"CAT": "www.google.cat",
"CD": "www.google.cd",
"CF": "www.google.cf",
"CG": "www.google.cg",
"CH": "www.google.ch",
"CI": "www.google.ci",
"CK": "www.google.co.ck",
"CL": "www.google.cl",
"CM": "www.google.cm",
"CN": "www.google.com.hk",
"CO": "www.google.com.co",
"CR": "www.google.co.cr",
"CU": "www.google.com.cu",
"CV": "www.google.cv",
"CY": "www.google.com.cy",
"CZ": "www.google.cz",
"DE": "www.google.de",
"DJ": "www.google.dj",
"DK": "www.google.dk",
"DM": "www.google.dm",
"DO": "www.google.com.do",
"DZ": "www.google.dz",
"EC": "www.google.com.ec",
"EE": "www.google.ee",
"EG": "www.google.com.eg",
"ES": "www.google.es",
"ET": "www.google.com.et",
"FI": "www.google.fi",
"FJ": "www.google.com.fj",
"FM": "www.google.fm",
"FR": "www.google.fr",
"GA": "www.google.ga",
"GE": "www.google.ge",
"GG": "www.google.gg",
"GH": "www.google.com.gh",
"GI": "www.google.com.gi",
"GL": "www.google.gl",
"GM": "www.google.gm",
"GR": "www.google.gr",
"GT": "www.google.com.gt",
"GY": "www.google.gy",
"HK": "www.google.com.hk",
"HN": "www.google.hn",
"HR": "www.google.hr",
"HT": "www.google.ht",
"HU": "www.google.hu",
"ID": "www.google.co.id",
"IE": "www.google.ie",
"IL": "www.google.co.il",
"IM": "www.google.im",
"IN": "www.google.co.in",
"IQ": "www.google.iq",
"IS": "www.google.is",
"IT": "www.google.it",
"JE": "www.google.je",
"JM": "www.google.com.jm",
"JO": "www.google.jo",
"JP": "www.google.co.jp",
"KE": "www.google.co.ke",
"KG": "www.google.kg",
"KH": "www.google.com.kh",
"KI": "www.google.ki",
"KR": "www.google.co.kr",
"KW": "www.google.com.kw",
"KZ": "www.google.kz",
"LA": "www.google.la",
"LB": "www.google.com.lb",
"LI": "www.google.li",
"LK": "www.google.lk",
"LS": "www.google.co.ls",
"LT": "www.google.lt",
"LU": "www.google.lu",
"LV": "www.google.lv",
"LY": "www.google.com.ly",
"MA": "www.google.co.ma",
"MD": "www.google.md",
"ME": "www.google.me",
"MG": "www.google.mg",
"MK": "www.google.mk",
"ML": "www.google.ml",
"MM": "www.google.com.mm",
"MN": "www.google.mn",
"MT": "www.google.com.mt",
"MU": "www.google.mu",
"MV": "www.google.mv",
"MW": "www.google.mw",
"MX": "www.google.com.mx",
"MY": "www.google.com.my",
"MZ": "www.google.co.mz",
"NA": "www.google.com.na",
"NE": "www.google.ne",
"NG": "www.google.com.ng",
"NI": "www.google.com.ni",
"NL": "www.google.nl",
"NO": "www.google.no",
"NP": "www.google.com.np",
"NR": "www.google.nr",
"NU": "www.google.nu",
"NZ": "www.google.co.nz",
"OM": "www.google.com.om",
"PA": "www.google.com.pa",
"PE": "www.google.com.pe",
"PG": "www.google.com.pg",
"PH": "www.google.com.ph",
"PK": "www.google.com.pk",
"PL": "www.google.pl",
"PN": "www.google.pn",
"PR": "www.google.com.pr",
"PS": "www.google.ps",
"PT": "www.google.pt",
"PY": "www.google.com.py",
"QA": "www.google.com.qa",
"RO": "www.google.ro",
"RS": "www.google.rs",
"RU": "www.google.ru",
"RW": "www.google.rw",
"SA": "www.google.com.sa",
"SB": "www.google.com.sb",
"SC": "www.google.sc",
"SE": "www.google.se",
"SG": "www.google.com.sg",
"SH": "www.google.sh",
"SI": "www.google.si",
"SK": "www.google.sk",
"SL": "www.google.com.sl",
"SM": "www.google.sm",
"SN": "www.google.sn",
"SO": "www.google.so",
"SR": "www.google.sr",
"ST": "www.google.st",
"SV": "www.google.com.sv",
"TD": "www.google.td",
"TG": "www.google.tg",
"TH": "www.google.co.th",
"TJ": "www.google.com.tj",
"TL": "www.google.tl",
"TM": "www.google.tm",
"TN": "www.google.tn",
"TO": "www.google.to",
"TR": "www.google.com.tr",
"TT": "www.google.tt",
"TW": "www.google.com.tw",
"TZ": "www.google.co.tz",
"UA": "www.google.com.ua",
"UG": "www.google.co.ug",
"UK": "www.google.co.uk",
"UY": "www.google.com.uy",
"UZ": "www.google.co.uz",
"VC": "www.google.com.vc",
"VE": "www.google.co.ve",
"VI": "www.google.co.vi",
"VN": "www.google.com.vn",
"VU": "www.google.vu",
"WS": "www.google.ws",
"ZA": "www.google.co.za",
"ZM": "www.google.co.zm",
"ZW": "www.google.co.zw"
}
},
"data_type": "traits_v1",
"languages": {
"af": "lang_af",
"ar": "lang_ar",
"be": "lang_be",
"bg": "lang_bg",
"ca": "lang_ca",
"cs": "lang_cs",
"da": "lang_da",
"de": "lang_de",
"el": "lang_el",
"en": "lang_en",
"eo": "lang_eo",
"es": "lang_es",
"et": "lang_et",
"fa": "lang_fa",
"fi": "lang_fi",
"fil": "lang_tl",
"fr": "lang_fr",
"he": "lang_iw",
"hi": "lang_hi",
"hr": "lang_hr",
"hu": "lang_hu",
"hy": "lang_hy",
"id": "lang_id",
"is": "lang_is",
"it": "lang_it",
"ja": "lang_ja",
"ko": "lang_ko",
"lt": "lang_lt",
"lv": "lang_lv",
"nb": "lang_no",
"nl": "lang_nl",
"pl": "lang_pl",
"pt": "lang_pt",
"ro": "lang_ro",
"ru": "lang_ru",
"sk": "lang_sk",
"sl": "lang_sl",
"sr": "lang_sr",
"sv": "lang_sv",
"sw": "lang_sw",
"th": "lang_th",
"tr": "lang_tr",
"uk": "lang_uk",
"vi": "lang_vi",
"zh": "lang_zh-CN",
"zh_Hans": "lang_zh-CN",
"zh_Hant": "lang_zh-TW"
},
"regions": {
[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>
2022-12-04 22:57:22 +01:00
"af-ZA": "ZA",
"ar-AE": "AE",
"ar-BH": "BH",
"ar-DJ": "DJ",
"ar-DZ": "DZ",
"ar-EG": "EG",
"ar-IL": "IL",
"ar-IQ": "IQ",
"ar-JO": "JO",
"ar-KW": "KW",
"ar-LB": "LB",
"ar-LY": "LY",
"ar-MA": "MA",
"ar-OM": "OM",
"ar-PS": "PS",
"ar-QA": "QA",
"ar-SA": "SA",
"ar-SO": "SO",
"ar-TD": "TD",
"ar-TN": "TN",
"be-BY": "BY",
"bg-BG": "BG",
"ca-AD": "AD",
"ca-ES": "ES",
"cs-CZ": "CZ",
"da-DK": "DK",
"de-AT": "AT",
"de-BE": "BE",
"de-CH": "CH",
"de-DE": "DE",
"de-LI": "LI",
"de-LU": "LU",
"el-CY": "CY",
"el-GR": "GR",
"en-AG": "AG",
"en-AS": "AS",
"en-AU": "AU",
"en-BI": "BI",
"en-BS": "BS",
"en-BW": "BW",
"en-BZ": "BZ",
"en-CA": "CA",
"en-CK": "CK",
"en-CM": "CM",
"en-DM": "DM",
"en-FJ": "FJ",
"en-FM": "FM",
"en-GB": "GB",
"en-GG": "GG",
"en-GH": "GH",
"en-GI": "GI",
"en-GM": "GM",
"en-GY": "GY",
"en-HK": "HK",
"en-IE": "IE",
"en-IM": "IM",
"en-IN": "IN",
"en-JE": "JE",
"en-JM": "JM",
"en-KE": "KE",
"en-KI": "KI",
"en-LS": "LS",
"en-MG": "MG",
"en-MT": "MT",
"en-MU": "MU",
"en-MW": "MW",
"en-NA": "NA",
"en-NG": "NG",
"en-NR": "NR",
"en-NU": "NU",
"en-NZ": "NZ",
"en-PG": "PG",
"en-PH": "PH",
"en-PK": "PK",
"en-PN": "PN",
"en-PR": "PR",
"en-RW": "RW",
"en-SB": "SB",
"en-SC": "SC",
"en-SG": "SG",
"en-SH": "SH",
"en-SL": "SL",
"en-TO": "TO",
"en-TT": "TT",
"en-TZ": "TZ",
"en-UG": "UG",
"en-US": "US",
"en-VC": "VC",
"en-VI": "VI",
"en-VU": "VU",
"en-WS": "WS",
"en-ZA": "ZA",
"en-ZM": "ZM",
"en-ZW": "ZW",
"es-AR": "AR",
"es-BO": "BO",
"es-CL": "CL",
"es-CO": "CO",
"es-CR": "CR",
"es-CU": "CU",
"es-DO": "DO",
"es-EC": "EC",
"es-ES": "ES",
"es-GT": "GT",
"es-HN": "HN",
"es-MX": "MX",
"es-NI": "NI",
"es-PA": "PA",
"es-PE": "PE",
"es-PR": "PR",
"es-PY": "PY",
"es-SV": "SV",
"es-US": "US",
"es-UY": "UY",
"es-VE": "VE",
"et-EE": "EE",
"fa-AF": "AF",
"fi-FI": "FI",
"fil-PH": "PH",
"fr-BE": "BE",
"fr-BF": "BF",
"fr-BI": "BI",
"fr-BJ": "BJ",
"fr-CA": "CA",
"fr-CD": "CD",
"fr-CF": "CF",
"fr-CG": "CG",
"fr-CH": "CH",
"fr-CI": "CI",
"fr-CM": "CM",
"fr-DJ": "DJ",
"fr-DZ": "DZ",
"fr-FR": "FR",
"fr-GA": "GA",
"fr-HT": "HT",
"fr-LU": "LU",
"fr-MA": "MA",
"fr-MG": "MG",
"fr-ML": "ML",
"fr-MU": "MU",
"fr-NE": "NE",
"fr-RW": "RW",
"fr-SC": "SC",
"fr-SN": "SN",
"fr-TD": "TD",
"fr-TG": "TG",
"fr-TN": "TN",
"fr-VU": "VU",
"he-IL": "IL",
"hi-IN": "IN",
"hr-BA": "BA",
"hr-HR": "HR",
"hu-HU": "HU",
"hy-AM": "AM",
"id-ID": "ID",
"is-IS": "IS",
"it-CH": "CH",
"it-IT": "IT",
"it-SM": "SM",
"ja-JP": "JP",
"ko-KR": "KR",
"lt-LT": "LT",
"lv-LV": "LV",
"nb-NO": "NO",
"nl-BE": "BE",
"nl-NL": "NL",
"nl-SR": "SR",
"pl-PL": "PL",
"pt-AO": "AO",
"pt-BR": "BR",
"pt-CV": "CV",
"pt-MZ": "MZ",
"pt-PT": "PT",
"pt-ST": "ST",
"pt-TL": "TL",
"ro-MD": "MD",
"ro-RO": "RO",
"ru-BY": "BY",
"ru-KG": "KG",
"ru-KZ": "KZ",
"ru-RU": "RU",
"ru-UA": "UA",
"sk-SK": "SK",
"sl-SI": "SI",
"sr-BA": "BA",
"sr-RS": "RS",
"sv-FI": "FI",
"sv-SE": "SE",
"sw-CD": "CD",
"sw-KE": "KE",
"sw-TZ": "TZ",
"sw-UG": "UG",
"th-TH": "TH",
"tr-CY": "CY",
"tr-TR": "TR",
"uk-UA": "UA",
"vi-VN": "VN",
"zh-CN": "HK",
"zh-HK": "HK",
"zh-SG": "SG",
"zh-TW": "TW"
}
},
"peertube": {
"all_locale": null,
"custom": {},
"data_type": "traits_v1",
"languages": {
"ca": "ca",
"cs": "cs",
"de": "de",
"el": "el",
"en": "en",
"eo": "eo",
"es": "es",
"eu": "eu",
"fi": "fi",
"fr": "fr",
"gd": "gd",
"it": "it",
"ja": "ja",
"nl": "nl",
"pl": "pl",
"pt": "pt",
"ru": "ru",
"sv": "sv",
"zh": "zh",
"zh_Hans": "zh",
"zh_Hant": "zh"
},
"regions": {}
},
"qwant": {
"all_locale": null,
"custom": {},
"data_type": "traits_v1",
"languages": {},
"regions": {
"bg-BG": "bg_BG",
"ca-ES": "ca_ES",
"cs-CZ": "cs_CZ",
"da-DK": "da_DK",
"de-AT": "de_AT",
"de-CH": "de_CH",
"de-DE": "de_DE",
"el-GR": "el_GR",
"en-AU": "en_AU",
"en-CA": "en_CA",
"en-GB": "en_GB",
"en-IE": "en_IE",
"en-MY": "en_MY",
"en-NZ": "en_NZ",
"en-US": "en_US",
"es-AR": "es_AR",
"es-CL": "es_CL",
"es-ES": "es_ES",
"es-MX": "es_MX",
"et-EE": "et_EE",
"fi-FI": "fi_FI",
"fr-BE": "fr_BE",
"fr-CA": "fr_CA",
"fr-CH": "fr_CH",
"fr-FR": "fr_FR",
"hu-HU": "hu_HU",
"it-CH": "it_CH",
"it-IT": "it_IT",
"ko-KR": "ko_KR",
"nb-NO": "nb_NO",
"nl-BE": "nl_BE",
"nl-NL": "nl_NL",
"pl-PL": "pl_PL",
"pt-PT": "pt_PT",
"ro-RO": "ro_RO",
"sv-SE": "sv_SE",
"th-TH": "th_TH",
"zh-CN": "zh_CN",
"zh-HK": "zh_HK"
}
},
"qwant images": {
"all_locale": null,
"custom": {},
"data_type": "traits_v1",
"languages": {},
"regions": {
"bg-BG": "bg_BG",
"ca-ES": "ca_ES",
"cs-CZ": "cs_CZ",
"da-DK": "da_DK",
"de-AT": "de_AT",
"de-CH": "de_CH",
"de-DE": "de_DE",
"el-GR": "el_GR",
"en-AU": "en_AU",
"en-CA": "en_CA",
"en-GB": "en_GB",
"en-IE": "en_IE",
"en-MY": "en_MY",
"en-NZ": "en_NZ",
"en-US": "en_US",
"es-AR": "es_AR",
"es-CL": "es_CL",
"es-ES": "es_ES",
"es-MX": "es_MX",
"et-EE": "et_EE",
"fi-FI": "fi_FI",
"fr-BE": "fr_BE",
"fr-CA": "fr_CA",
"fr-CH": "fr_CH",
"fr-FR": "fr_FR",
"hu-HU": "hu_HU",
"it-CH": "it_CH",
"it-IT": "it_IT",
"ko-KR": "ko_KR",
"nb-NO": "nb_NO",
"nl-BE": "nl_BE",
"nl-NL": "nl_NL",
"pl-PL": "pl_PL",
"pt-PT": "pt_PT",
"ro-RO": "ro_RO",
"sv-SE": "sv_SE",
"th-TH": "th_TH",
"zh-CN": "zh_CN",
"zh-HK": "zh_HK"
}
},
"qwant news": {
"all_locale": null,
"custom": {},
"data_type": "traits_v1",
"languages": {},
"regions": {
"ca-ES": "ca_ES",
"de-AT": "de_AT",
"de-CH": "de_CH",
"de-DE": "de_DE",
"en-AU": "en_AU",
"en-CA": "en_CA",
"en-GB": "en_GB",
"en-IE": "en_IE",
"en-MY": "en_MY",
"en-NZ": "en_NZ",
"en-US": "en_US",
"es-AR": "es_AR",
"es-CL": "es_CL",
"es-ES": "es_ES",
"es-MX": "es_MX",
"fr-BE": "fr_BE",
"fr-CA": "fr_CA",
"fr-CH": "fr_CH",
"fr-FR": "fr_FR",
"it-CH": "it_CH",
"it-IT": "it_IT",
"nl-BE": "nl_BE",
"nl-NL": "nl_NL",
"pt-PT": "pt_PT"
}
},
"qwant videos": {
"all_locale": null,
"custom": {},
"data_type": "traits_v1",
"languages": {},
"regions": {
"bg-BG": "bg_BG",
"ca-ES": "ca_ES",
"cs-CZ": "cs_CZ",
"da-DK": "da_DK",
"de-AT": "de_AT",
"de-CH": "de_CH",
"de-DE": "de_DE",
"el-GR": "el_GR",
"en-AU": "en_AU",
"en-CA": "en_CA",
"en-GB": "en_GB",
"en-IE": "en_IE",
"en-MY": "en_MY",
"en-NZ": "en_NZ",
"en-US": "en_US",
"es-AR": "es_AR",
"es-CL": "es_CL",
"es-ES": "es_ES",
"es-MX": "es_MX",
"et-EE": "et_EE",
"fi-FI": "fi_FI",
"fr-BE": "fr_BE",
"fr-CA": "fr_CA",
"fr-CH": "fr_CH",
"fr-FR": "fr_FR",
"hu-HU": "hu_HU",
"it-CH": "it_CH",
"it-IT": "it_IT",
"ko-KR": "ko_KR",
"nb-NO": "nb_NO",
"nl-BE": "nl_BE",
"nl-NL": "nl_NL",
"pl-PL": "pl_PL",
"pt-PT": "pt_PT",
"ro-RO": "ro_RO",
"sv-SE": "sv_SE",
"th-TH": "th_TH",
"zh-CN": "zh_CN",
"zh-HK": "zh_HK"
}
},
"sepiasearch": {
"all_locale": null,
"custom": {},
"data_type": "traits_v1",
"languages": {
"ca": "ca",
"cs": "cs",
"de": "de",
"el": "el",
"en": "en",
"eo": "eo",
"es": "es",
"eu": "eu",
"fi": "fi",
"fr": "fr",
"gd": "gd",
"it": "it",
"ja": "ja",
"nl": "nl",
"pl": "pl",
"pt": "pt",
"ru": "ru",
"sv": "sv",
"zh": "zh",
"zh_Hans": "zh",
"zh_Hant": "zh"
},
"regions": {}
},
"startpage": {
"all_locale": null,
"custom": {},
"data_type": "traits_v1",
"languages": {
"af": "afrikaans",
"am": "amharic",
"ar": "arabic",
"az": "azerbaijani",
"be": "belarusian",
"bg": "bulgarian",
"bn": "bengali",
"bs": "bosnian",
"ca": "catalan",
"cs": "czech",
"cy": "welsh",
"da": "dansk",
"de": "deutsch",
"el": "greek",
"en": "english",
"eo": "esperanto",
"es": "espanol",
"et": "estonian",
"eu": "basque",
"fa": "persian",
"fi": "suomi",
"fo": "faroese",
"fr": "francais",
"fy": "frisian",
"ga": "irish",
"gd": "gaelic",
"gl": "galician",
"gu": "gujarati",
"he": "hebrew",
"hi": "hindi",
"hr": "croatian",
"hu": "hungarian",
"ia": "interlingua",
"id": "indonesian",
"is": "icelandic",
"it": "italiano",
"ja": "nihongo",
"jv": "javanese",
"ka": "georgian",
"kn": "kannada",
"ko": "hangul",
"la": "latin",
"lt": "lithuanian",
"lv": "latvian",
"mai": "bihari",
"mk": "macedonian",
"ml": "malayalam",
"mr": "marathi",
"ms": "malay",
"mt": "maltese",
"nb": "norsk",
"ne": "nepali",
"nl": "nederlands",
"oc": "occitan",
"pa": "punjabi",
"pl": "polski",
"pt": "portugues",
"ro": "romanian",
"ru": "russian",
"si": "sinhalese",
"sk": "slovak",
"sl": "slovenian",
"sq": "albanian",
"sr": "serbian",
"su": "sudanese",
"sv": "svenska",
"sw": "swahili",
"ta": "tamil",
"te": "telugu",
"th": "thai",
"ti": "tigrinya",
"tl": "tagalog",
"tr": "turkce",
"uk": "ukrainian",
"ur": "urdu",
"uz": "uzbek",
"vi": "vietnamese",
"xh": "xhosa",
"zh": "jiantizhongwen",
"zh_Hant": "fantizhengwen",
"zu": "zulu"
},
"regions": {
"ar-EG": "ar_EG",
"bg-BG": "bg_BG",
"ca-ES": "ca_ES",
"cs-CZ": "cs_CZ",
"da-DK": "da_DK",
"de-AT": "de_AT",
"de-CH": "de_CH",
"de-DE": "de_DE",
"el-GR": "el_GR",
"en-AU": "en_AU",
"en-CA": "en_CA",
"en-GB": "en-GB_GB",
"en-IE": "en_IE",
"en-IN": "en_IN",
"en-MY": "en_MY",
"en-NZ": "en_NZ",
"en-PH": "en_PH",
"en-US": "en_US",
"en-ZA": "en_ZA",
"es-AR": "es_AR",
"es-CL": "es_CL",
"es-CO": "es_CO",
"es-ES": "es_ES",
"es-MX": "es_MX",
"es-PE": "es_PE",
"es-US": "es_US",
"es-UY": "es_UY",
"es-VE": "es_VE",
"et-EE": "et_EE",
"fi-FI": "fi_FI",
"fil-PH": "fil_PH",
"fr-BE": "fr_BE",
"fr-CA": "fr_CA",
"fr-CH": "fr_CH",
"fr-FR": "fr_FR",
"hi-IN": "hi_IN",
"hu-HU": "hu_HU",
"id-ID": "id_ID",
"it-CH": "it_CH",
"it-IT": "it_IT",
"ja-JP": "ja_JP",
"ko-KR": "ko_KR",
"ms-MY": "ms_MY",
"nb-NO": "no_NO",
"nl-BE": "nl_BE",
"nl-NL": "nl_NL",
"pl-PL": "pl_PL",
"pt-BR": "pt-BR_BR",
"pt-PT": "pt_PT",
"ro-RO": "ro_RO",
"ru-BY": "ru_BY",
"ru-RU": "ru_RU",
"sv-SE": "sv_SE",
"tr-TR": "tr_TR",
"uk-UA": "uk_UA",
"vi-VN": "vi_VN",
"zh-CN": "zh-CN_CN",
"zh-HK": "zh-TW_HK",
"zh-TW": "zh-TW_TW"
}
},
"wikidata": {
"all_locale": null,
"custom": {
"WIKIPEDIA_LANGUAGES": [],
"wiki_netloc": {}
},
"data_type": "traits_v1",
"languages": {
"af": "af",
"am": "am",
"ar": "ar",
"as": "as",
"az": "az",
"be": "be",
"bg": "bg",
"bn": "bn",
"bs": "bs",
"ca": "ca",
"ckb": "ckb",
"cs": "cs",
"da": "da",
"de": "de",
"el": "el",
"en": "en",
"es": "es",
"et": "et",
"fa": "fa",
"fi": "fi",
"fil": "tl",
"fo": "fo",
"fr": "fr",
"fy": "fy",
"gl": "gl",
"gsw": "als",
"gu": "gu",
"he": "he",
"hi": "hi",
"hsb": "hsb",
"hu": "hu",
"hy": "hy",
"id": "id",
"is": "is",
"it": "it",
"ja": "ja",
"jv": "jv",
"ka": "ka",
"km": "km",
"kn": "kn",
"ko": "ko",
"lb": "lb",
"lt": "lt",
"lv": "lv",
"mai": "mai",
"mk": "mk",
"ml": "ml",
"mn": "mn",
"mr": "mr",
"ms": "ms",
"nb": "no",
"ne": "ne",
"or": "or",
"os": "os",
"pa": "pa",
"pl": "pl",
"ps": "ps",
"pt": "pt",
"qu": "qu",
"ro": "ro",
"ru": "ru",
"sa": "sa",
"sah": "sah",
"sd": "sd",
"si": "si",
"sk": "sk",
"sl": "sl",
"sq": "sq",
"sr": "sr",
"ta": "ta",
"te": "te",
"th": "th",
"tr": "tr",
"uk": "uk",
"ur": "ur",
"uz": "uz",
"vi": "vi",
"yi": "yi",
"zh": "zh",
"zh_Hans": "zh",
"zh_Hant": "zh"
},
"regions": {
"zh-CN": "zh",
"zh-HK": "zh",
"zh-MO": "zh",
"zh-MY": "zh",
"zh-SG": "zh",
"zh-TW": "zh",
"zh-classical": "zh-classical"
}
},
"wikipedia": {
"all_locale": null,
"custom": {
"WIKIPEDIA_LANGUAGES": [
"ab",
"ace",
"ady",
"af",
"als",
"alt",
"am",
"ami",
"an",
"ang",
"anp",
"ar",
"arc",
"ary",
"arz",
"as",
"ast",
"atj",
"av",
"avk",
"awa",
"ay",
"az",
"azb",
"ba",
"ban",
"bar",
"bat-smg",
"bcl",
"be",
"be-tarask",
"bg",
"bh",
"bi",
"bjn",
"blk",
"bm",
"bn",
"bo",
"bpy",
"br",
"bs",
"bug",
"bxr",
"ca",
"cbk-zam",
"cdo",
"ce",
"ceb",
"ch",
"chr",
"chy",
"ckb",
"co",
"cr",
"crh",
"cs",
"csb",
"cu",
"cv",
"cy",
"da",
"dag",
"de",
"din",
"diq",
"dsb",
"dty",
"dv",
"dz",
"ee",
"el",
"eml",
"en",
"eo",
"es",
"et",
"eu",
"ext",
"fa",
"fat",
"ff",
"fi",
"fiu-vro",
"fj",
"fo",
"fr",
"frp",
"frr",
"fur",
"fy",
"ga",
"gag",
"gan",
"gcr",
"gd",
"gl",
"glk",
"gn",
"gom",
"gor",
"got",
"gu",
"guc",
"gur",
"guw",
"gv",
"ha",
"hak",
"haw",
"he",
"hi",
"hif",
"hr",
"hsb",
"ht",
"hu",
"hy",
"hyw",
"ia",
"id",
"ie",
"ig",
"ik",
"ilo",
"inh",
"io",
"is",
"it",
"iu",
"ja",
"jam",
"jbo",
"jv",
"ka",
"kaa",
"kab",
"kbd",
"kbp",
"kcg",
"kg",
"ki",
"kk",
"kl",
"km",
"kn",
"ko",
"koi",
"krc",
"ks",
"ksh",
"ku",
"kv",
"kw",
"ky",
"la",
"lad",
"lb",
"lbe",
"lez",
"lfn",
"lg",
"li",
"lij",
"lld",
"lmo",
"ln",
"lo",
"lt",
"ltg",
"lv",
"mad",
"mai",
"map-bms",
"mdf",
"mg",
"mhr",
"mi",
"min",
"mk",
"ml",
"mn",
"mni",
"mnw",
"mr",
"mrj",
"ms",
"mt",
"mwl",
"my",
"myv",
"mzn",
"nah",
"nap",
"nds",
"nds-nl",
"ne",
"new",
"nia",
"nl",
"nn",
"no",
"nov",
"nqo",
"nrm",
"nso",
"nv",
"ny",
"oc",
"olo",
"om",
"or",
"os",
"pa",
"pag",
"pam",
"pap",
"pcd",
"pcm",
"pdc",
"pfl",
"pi",
"pih",
"pl",
"pms",
"pnb",
"pnt",
"ps",
"pt",
"pwn",
"qu",
"rm",
"rmy",
"rn",
"ro",
"roa-rup",
"roa-tara",
"ru",
"rue",
"rw",
"sa",
"sah",
"sat",
"sc",
"scn",
"sco",
"sd",
"se",
"sg",
"sh",
"shi",
"shn",
"si",
"simple",
"sk",
"skr",
"sl",
"sm",
"smn",
"sn",
"so",
"sq",
"sr",
"srn",
"ss",
"st",
"stq",
"su",
"sv",
"sw",
"szl",
"szy",
"ta",
"tay",
"tcy",
"te",
"tet",
"tg",
"th",
"ti",
"tk",
"tl",
"tn",
"to",
"tpi",
"tr",
"trv",
"ts",
"tt",
"tum",
"tw",
"ty",
"tyv",
"udm",
"ug",
"uk",
"ur",
"uz",
"ve",
"vec",
"vep",
"vi",
"vls",
"vo",
"wa",
"war",
"wo",
"wuu",
"xal",
"xh",
"xmf",
"yi",
"yo",
"za",
"zea",
"zh",
"zh-classical",
"zh-min-nan",
"zh-yue",
"zu"
],
"wiki_netloc": {
"af": "af.wikipedia.org",
"als": "als.wikipedia.org",
"am": "am.wikipedia.org",
"ar": "ar.wikipedia.org",
"as": "as.wikipedia.org",
"az": "az.wikipedia.org",
"be": "be.wikipedia.org",
"bg": "bg.wikipedia.org",
"bn": "bn.wikipedia.org",
"bs": "bs.wikipedia.org",
"ca": "ca.wikipedia.org",
"ckb": "ckb.wikipedia.org",
"cs": "cs.wikipedia.org",
"da": "da.wikipedia.org",
"de": "de.wikipedia.org",
"el": "el.wikipedia.org",
"en": "en.wikipedia.org",
"es": "es.wikipedia.org",
"et": "et.wikipedia.org",
"fa": "fa.wikipedia.org",
"fi": "fi.wikipedia.org",
"fo": "fo.wikipedia.org",
"fr": "fr.wikipedia.org",
"fy": "fy.wikipedia.org",
"gl": "gl.wikipedia.org",
"gu": "gu.wikipedia.org",
"he": "he.wikipedia.org",
"hi": "hi.wikipedia.org",
"hsb": "hsb.wikipedia.org",
"hu": "hu.wikipedia.org",
"hy": "hy.wikipedia.org",
"id": "id.wikipedia.org",
"is": "is.wikipedia.org",
"it": "it.wikipedia.org",
"ja": "ja.wikipedia.org",
"jv": "jv.wikipedia.org",
"ka": "ka.wikipedia.org",
"km": "km.wikipedia.org",
"kn": "kn.wikipedia.org",
"ko": "ko.wikipedia.org",
"lb": "lb.wikipedia.org",
"lt": "lt.wikipedia.org",
"lv": "lv.wikipedia.org",
"mai": "mai.wikipedia.org",
"mk": "mk.wikipedia.org",
"ml": "ml.wikipedia.org",
"mn": "mn.wikipedia.org",
"mr": "mr.wikipedia.org",
"ms": "ms.wikipedia.org",
"ne": "ne.wikipedia.org",
"no": "no.wikipedia.org",
"or": "or.wikipedia.org",
"os": "os.wikipedia.org",
"pa": "pa.wikipedia.org",
"pl": "pl.wikipedia.org",
"ps": "ps.wikipedia.org",
"pt": "pt.wikipedia.org",
"qu": "qu.wikipedia.org",
"ro": "ro.wikipedia.org",
"ru": "ru.wikipedia.org",
"sa": "sa.wikipedia.org",
"sah": "sah.wikipedia.org",
"sd": "sd.wikipedia.org",
"si": "si.wikipedia.org",
"sk": "sk.wikipedia.org",
"sl": "sl.wikipedia.org",
"sq": "sq.wikipedia.org",
"sr": "sr.wikipedia.org",
"ta": "ta.wikipedia.org",
"te": "te.wikipedia.org",
"th": "th.wikipedia.org",
"tl": "tl.wikipedia.org",
"tr": "tr.wikipedia.org",
"uk": "uk.wikipedia.org",
"ur": "ur.wikipedia.org",
"uz": "uz.wikipedia.org",
"vi": "vi.wikipedia.org",
"yi": "yi.wikipedia.org",
"zh": "zh.wikipedia.org"
}
},
"data_type": "traits_v1",
"languages": {
"af": "af",
"am": "am",
"ar": "ar",
"as": "as",
"az": "az",
"be": "be",
"bg": "bg",
"bn": "bn",
"bs": "bs",
"ca": "ca",
"ckb": "ckb",
"cs": "cs",
"da": "da",
"de": "de",
"el": "el",
"en": "en",
"es": "es",
"et": "et",
"fa": "fa",
"fi": "fi",
"fil": "tl",
"fo": "fo",
"fr": "fr",
"fy": "fy",
"gl": "gl",
"gsw": "als",
"gu": "gu",
"he": "he",
"hi": "hi",
"hsb": "hsb",
"hu": "hu",
"hy": "hy",
"id": "id",
"is": "is",
"it": "it",
"ja": "ja",
"jv": "jv",
"ka": "ka",
"km": "km",
"kn": "kn",
"ko": "ko",
"lb": "lb",
"lt": "lt",
"lv": "lv",
"mai": "mai",
"mk": "mk",
"ml": "ml",
"mn": "mn",
"mr": "mr",
"ms": "ms",
"nb": "no",
"ne": "ne",
"or": "or",
"os": "os",
"pa": "pa",
"pl": "pl",
"ps": "ps",
"pt": "pt",
"qu": "qu",
"ro": "ro",
"ru": "ru",
"sa": "sa",
"sah": "sah",
"sd": "sd",
"si": "si",
"sk": "sk",
"sl": "sl",
"sq": "sq",
"sr": "sr",
"ta": "ta",
"te": "te",
"th": "th",
"tr": "tr",
"uk": "uk",
"ur": "ur",
"uz": "uz",
"vi": "vi",
"yi": "yi",
"zh": "zh",
"zh_Hans": "zh",
"zh_Hant": "zh"
},
"regions": {
"zh-CN": "zh",
"zh-HK": "zh",
"zh-MO": "zh",
"zh-MY": "zh",
"zh-SG": "zh",
"zh-TW": "zh",
"zh-classical": "zh-classical"
}
},
"yahoo": {
"all_locale": "any",
"custom": {},
"data_type": "traits_v1",
"languages": {
"ar": "ar",
"bg": "bg",
"cs": "cs",
"da": "da",
"de": "de",
"el": "el",
"en": "en",
"es": "es",
"et": "et",
"fi": "fi",
"fr": "fr",
"he": "he",
"hr": "hr",
"hu": "hu",
"it": "it",
"ja": "ja",
"ko": "ko",
"lt": "lt",
"lv": "lv",
"nl": "nl",
"no": "no",
"pl": "pl",
"pt": "pt",
"ro": "ro",
"ru": "ru",
"sk": "sk",
"sl": "sl",
"sv": "sv",
"th": "th",
"tr": "tr",
"zh_Hans": "zh_chs",
"zh_Hant": "zh_cht"
},
"regions": {}
}
}