diff --git a/.nvmrc b/.nvmrc index 3f784dcf9..0fdd238b4 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v16.20.2 \ No newline at end of file +v20.10 \ No newline at end of file diff --git a/requirements-dev.txt b/requirements-dev.txt index 14cca66a0..f22ba25dd 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -2,7 +2,7 @@ mock==5.1.0 nose2[coverage_plugin]==0.14.0 cov-core==1.15.0 black==22.12.0 -pylint==3.0.2 +pylint==3.0.3 splinter==0.20.1 selenium==4.16.0 twine==4.0.2 diff --git a/requirements.txt b/requirements.txt index bf2c26436..c95def6b1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,9 +1,9 @@ certifi==2023.11.17 -babel==2.13.1 +babel==2.14.0 flask-babel==4.0.0 flask==3.0.0 jinja2==3.1.2 -lxml==4.9.3 +lxml==4.9.4 pygments==2.17.2 python-dateutil==2.8.2 pyyaml==6.0.1 diff --git a/searx/data/engine_traits.json b/searx/data/engine_traits.json index 826209b36..388c9d045 100644 --- a/searx/data/engine_traits.json +++ b/searx/data/engine_traits.json @@ -37,6 +37,7 @@ "be": "be", "bg": "bg", "bn": "bn", + "bo": "bo", "ca": "ca", "cs": "cs", "cy": "cy", @@ -47,7 +48,6 @@ "es": "es", "fa": "fa", "fr": "fr", - "ga": "ga", "he": "he", "hi": "hi", "hr": "hr", @@ -55,9 +55,9 @@ "id": "id", "it": "it", "ja": "ja", - "jv": "jv", "kk": "kk", "ko": "ko", + "lb": "lb", "lt": "lt", "lv": "lv", "nl": "nl", @@ -72,7 +72,6 @@ "ta": "ta", "tr": "tr", "uk": "uk", - "ur": "ur", "vi": "vi", "zh": "zh", "zh_Hant": "zh-Hant" @@ -3079,55 +3078,133 @@ "data_type": "traits_v1", "languages": { "af": "lang_af", + "ak": "lang_ak", + "am": "lang_am", "ar": "lang_ar", + "az": "lang_az", "be": "lang_be", + "bem": "lang_bem", "bg": "lang_bg", + "bn": "lang_bn", + "br": "lang_br", + "bs": "lang_bs", "ca": "lang_ca", + "ceb": "lang_ceb", + "chr": "lang_chr", + "ckb": "lang_ckb", "cs": "lang_cs", + "cy": "lang_cy", "da": "lang_da", "de": "lang_de", + "ee": "lang_ee", "el": "lang_el", "en": "lang_en", "eo": "lang_eo", "es": "lang_es", "et": "lang_et", + "eu": "lang_eu", "fa": "lang_fa", "fi": "lang_fi", - "fil": "lang_tl", + "fil": "lang_fil", + "fo": "lang_fo", "fr": "lang_fr", + "fy": "lang_fy", + "ga": "lang_ga", + "gd": "lang_gd", + "gl": "lang_gl", + "gu": "lang_gu", + "ha": "lang_ha", + "haw": "lang_haw", "he": "lang_iw", "hi": "lang_hi", "hr": "lang_hr", "hu": "lang_hu", "hy": "lang_hy", + "ia": "lang_ia", "id": "lang_id", + "ig": "lang_ig", "is": "lang_is", "it": "lang_it", "ja": "lang_ja", + "jv": "lang_jw", + "ka": "lang_ka", + "kk": "lang_kk", + "km": "lang_km", + "kn": "lang_kn", "ko": "lang_ko", + "ky": "lang_ky", + "lg": "lang_lg", + "ln": "lang_ln", + "lo": "lang_lo", "lt": "lang_lt", "lv": "lang_lv", + "mfe": "lang_mfe", + "mg": "lang_mg", + "mi": "lang_mi", + "mk": "lang_mk", + "ml": "lang_ml", + "mn": "lang_mn", + "mr": "lang_mr", + "ms": "lang_ms", + "mt": "lang_mt", + "my": "lang_my", "nb": "lang_no", + "ne": "lang_ne", "nl": "lang_nl", + "nn": "lang_nn", + "nyn": "lang_nyn", + "oc": "lang_oc", + "om": "lang_om", + "or": "lang_or", + "pa": "lang_pa", + "pcm": "lang_pcm", "pl": "lang_pl", - "pt": "lang_pt", + "ps": "lang_ps", + "pt": "lang_pt-BR", + "qu": "lang_qu", + "rm": "lang_rm", + "rn": "lang_rn", "ro": "lang_ro", "ru": "lang_ru", + "rw": "lang_rw", + "sd": "lang_sd", + "si": "lang_si", "sk": "lang_sk", "sl": "lang_sl", + "sn": "lang_sn", + "so": "lang_so", + "sq": "lang_sq", "sr": "lang_sr", + "sr_Latn": "lang_sr-ME", + "su": "lang_su", "sv": "lang_sv", "sw": "lang_sw", + "ta": "lang_ta", + "te": "lang_te", + "tg": "lang_tg", "th": "lang_th", + "ti": "lang_ti", + "tk": "lang_tk", + "to": "lang_to", "tr": "lang_tr", + "tt": "lang_tt", + "ug": "lang_ug", "uk": "lang_uk", + "ur": "lang_ur", + "uz": "lang_uz", "vi": "lang_vi", + "wo": "lang_wo", + "xh": "lang_xh", + "yi": "lang_yi", + "yo": "lang_yo", "zh": "lang_zh-CN", "zh_Hans": "lang_zh-CN", - "zh_Hant": "lang_zh-TW" + "zh_Hant": "lang_zh-TW", + "zu": "lang_zu" }, "regions": { "af-ZA": "ZA", + "ak-GH": "GH", "ar-AE": "AE", "ar-BH": "BH", "ar-DJ": "DJ", @@ -3149,9 +3226,14 @@ "ar-TN": "TN", "be-BY": "BY", "bg-BG": "BG", + "bn-IN": "IN", + "bs-BA": "BA", "ca-AD": "AD", "ca-ES": "ES", + "ceb-PH": "PH", + "ckb-IQ": "IQ", "cs-CZ": "CZ", + "cy-GB": "GB", "da-DK": "DK", "de-AT": "AT", "de-BE": "BE", @@ -3159,6 +3241,7 @@ "de-DE": "DE", "de-LI": "LI", "de-LU": "LU", + "ee-GH": "GH", "el-CY": "CY", "el-GR": "GR", "en-AG": "AG", @@ -3243,6 +3326,7 @@ "es-UY": "UY", "es-VE": "VE", "et-EE": "EE", + "eu-ES": "ES", "fa-AF": "AF", "fi-FI": "FI", "fil-PH": "PH", @@ -3275,6 +3359,13 @@ "fr-TG": "TG", "fr-TN": "TN", "fr-VU": "VU", + "fy-NL": "NL", + "ga-GB": "GB", + "ga-IE": "IE", + "gd-GB": "GB", + "gl-ES": "ES", + "gu-IN": "IN", + "haw-US": "US", "he-IL": "IL", "hi-IN": "IN", "hr-BA": "BA", @@ -3287,14 +3378,30 @@ "it-IT": "IT", "it-SM": "SM", "ja-JP": "JP", + "kk-KZ": "KZ", + "kn-IN": "IN", "ko-KR": "KR", + "ky-KG": "KG", + "ln-CD": "CD", "lt-LT": "LT", "lv-LV": "LV", + "mg-MG": "MG", + "mi-NZ": "NZ", + "ml-IN": "IN", + "mr-IN": "IN", + "ms-SG": "SG", + "mt-MT": "MT", "nb-NO": "NO", + "ne-IN": "IN", "nl-BE": "BE", "nl-NL": "NL", "nl-SR": "SR", + "nn-NO": "NO", + "oc-ES": "ES", + "or-IN": "IN", + "pa-IN": "IN", "pl-PL": "PL", + "ps-AF": "AF", "pt-AO": "AO", "pt-BR": "BR", "pt-CV": "CV", @@ -3302,6 +3409,11 @@ "pt-PT": "PT", "pt-ST": "ST", "pt-TL": "TL", + "qu-BO": "BO", + "qu-EC": "EC", + "qu-PE": "PE", + "rm-CH": "CH", + "rn-BI": "BI", "ro-MD": "MD", "ro-RO": "RO", "ru-BY": "BY", @@ -3309,8 +3421,12 @@ "ru-KZ": "KZ", "ru-RU": "RU", "ru-UA": "UA", + "rw-RW": "RW", + "sd-IN": "IN", "sk-SK": "SK", "sl-SI": "SI", + "sn-ZW": "ZW", + "so-SO": "SO", "sr-BA": "BA", "sr-RS": "RS", "sv-FI": "FI", @@ -3319,15 +3435,26 @@ "sw-KE": "KE", "sw-TZ": "TZ", "sw-UG": "UG", + "ta-IN": "IN", + "ta-SG": "SG", + "te-IN": "IN", "th-TH": "TH", + "to-TO": "TO", "tr-CY": "CY", "tr-TR": "TR", + "tt-RU": "RU", "uk-UA": "UA", + "ur-IN": "IN", + "ur-PK": "PK", "vi-VN": "VN", + "wo-SN": "SN", + "xh-ZA": "ZA", + "yo-NG": "NG", "zh-CN": "HK", "zh-HK": "HK", "zh-SG": "SG", - "zh-TW": "TW" + "zh-TW": "TW", + "zu-ZA": "ZA" } }, "google images": { @@ -3525,55 +3652,133 @@ "data_type": "traits_v1", "languages": { "af": "lang_af", + "ak": "lang_ak", + "am": "lang_am", "ar": "lang_ar", + "az": "lang_az", "be": "lang_be", + "bem": "lang_bem", "bg": "lang_bg", + "bn": "lang_bn", + "br": "lang_br", + "bs": "lang_bs", "ca": "lang_ca", + "ceb": "lang_ceb", + "chr": "lang_chr", + "ckb": "lang_ckb", "cs": "lang_cs", + "cy": "lang_cy", "da": "lang_da", "de": "lang_de", + "ee": "lang_ee", "el": "lang_el", "en": "lang_en", "eo": "lang_eo", "es": "lang_es", "et": "lang_et", + "eu": "lang_eu", "fa": "lang_fa", "fi": "lang_fi", - "fil": "lang_tl", + "fil": "lang_fil", + "fo": "lang_fo", "fr": "lang_fr", + "fy": "lang_fy", + "ga": "lang_ga", + "gd": "lang_gd", + "gl": "lang_gl", + "gu": "lang_gu", + "ha": "lang_ha", + "haw": "lang_haw", "he": "lang_iw", "hi": "lang_hi", "hr": "lang_hr", "hu": "lang_hu", "hy": "lang_hy", + "ia": "lang_ia", "id": "lang_id", + "ig": "lang_ig", "is": "lang_is", "it": "lang_it", "ja": "lang_ja", + "jv": "lang_jw", + "ka": "lang_ka", + "kk": "lang_kk", + "km": "lang_km", + "kn": "lang_kn", "ko": "lang_ko", + "ky": "lang_ky", + "lg": "lang_lg", + "ln": "lang_ln", + "lo": "lang_lo", "lt": "lang_lt", "lv": "lang_lv", + "mfe": "lang_mfe", + "mg": "lang_mg", + "mi": "lang_mi", + "mk": "lang_mk", + "ml": "lang_ml", + "mn": "lang_mn", + "mr": "lang_mr", + "ms": "lang_ms", + "mt": "lang_mt", + "my": "lang_my", "nb": "lang_no", + "ne": "lang_ne", "nl": "lang_nl", + "nn": "lang_nn", + "nyn": "lang_nyn", + "oc": "lang_oc", + "om": "lang_om", + "or": "lang_or", + "pa": "lang_pa", + "pcm": "lang_pcm", "pl": "lang_pl", - "pt": "lang_pt", + "ps": "lang_ps", + "pt": "lang_pt-BR", + "qu": "lang_qu", + "rm": "lang_rm", + "rn": "lang_rn", "ro": "lang_ro", "ru": "lang_ru", + "rw": "lang_rw", + "sd": "lang_sd", + "si": "lang_si", "sk": "lang_sk", "sl": "lang_sl", + "sn": "lang_sn", + "so": "lang_so", + "sq": "lang_sq", "sr": "lang_sr", + "sr_Latn": "lang_sr-ME", + "su": "lang_su", "sv": "lang_sv", "sw": "lang_sw", + "ta": "lang_ta", + "te": "lang_te", + "tg": "lang_tg", "th": "lang_th", + "ti": "lang_ti", + "tk": "lang_tk", + "to": "lang_to", "tr": "lang_tr", + "tt": "lang_tt", + "ug": "lang_ug", "uk": "lang_uk", + "ur": "lang_ur", + "uz": "lang_uz", "vi": "lang_vi", + "wo": "lang_wo", + "xh": "lang_xh", + "yi": "lang_yi", + "yo": "lang_yo", "zh": "lang_zh-CN", "zh_Hans": "lang_zh-CN", - "zh_Hant": "lang_zh-TW" + "zh_Hant": "lang_zh-TW", + "zu": "lang_zu" }, "regions": { "af-ZA": "ZA", + "ak-GH": "GH", "ar-AE": "AE", "ar-BH": "BH", "ar-DJ": "DJ", @@ -3595,9 +3800,14 @@ "ar-TN": "TN", "be-BY": "BY", "bg-BG": "BG", + "bn-IN": "IN", + "bs-BA": "BA", "ca-AD": "AD", "ca-ES": "ES", + "ceb-PH": "PH", + "ckb-IQ": "IQ", "cs-CZ": "CZ", + "cy-GB": "GB", "da-DK": "DK", "de-AT": "AT", "de-BE": "BE", @@ -3605,6 +3815,7 @@ "de-DE": "DE", "de-LI": "LI", "de-LU": "LU", + "ee-GH": "GH", "el-CY": "CY", "el-GR": "GR", "en-AG": "AG", @@ -3689,6 +3900,7 @@ "es-UY": "UY", "es-VE": "VE", "et-EE": "EE", + "eu-ES": "ES", "fa-AF": "AF", "fi-FI": "FI", "fil-PH": "PH", @@ -3721,6 +3933,13 @@ "fr-TG": "TG", "fr-TN": "TN", "fr-VU": "VU", + "fy-NL": "NL", + "ga-GB": "GB", + "ga-IE": "IE", + "gd-GB": "GB", + "gl-ES": "ES", + "gu-IN": "IN", + "haw-US": "US", "he-IL": "IL", "hi-IN": "IN", "hr-BA": "BA", @@ -3733,14 +3952,30 @@ "it-IT": "IT", "it-SM": "SM", "ja-JP": "JP", + "kk-KZ": "KZ", + "kn-IN": "IN", "ko-KR": "KR", + "ky-KG": "KG", + "ln-CD": "CD", "lt-LT": "LT", "lv-LV": "LV", + "mg-MG": "MG", + "mi-NZ": "NZ", + "ml-IN": "IN", + "mr-IN": "IN", + "ms-SG": "SG", + "mt-MT": "MT", "nb-NO": "NO", + "ne-IN": "IN", "nl-BE": "BE", "nl-NL": "NL", "nl-SR": "SR", + "nn-NO": "NO", + "oc-ES": "ES", + "or-IN": "IN", + "pa-IN": "IN", "pl-PL": "PL", + "ps-AF": "AF", "pt-AO": "AO", "pt-BR": "BR", "pt-CV": "CV", @@ -3748,6 +3983,11 @@ "pt-PT": "PT", "pt-ST": "ST", "pt-TL": "TL", + "qu-BO": "BO", + "qu-EC": "EC", + "qu-PE": "PE", + "rm-CH": "CH", + "rn-BI": "BI", "ro-MD": "MD", "ro-RO": "RO", "ru-BY": "BY", @@ -3755,8 +3995,12 @@ "ru-KZ": "KZ", "ru-RU": "RU", "ru-UA": "UA", + "rw-RW": "RW", + "sd-IN": "IN", "sk-SK": "SK", "sl-SI": "SI", + "sn-ZW": "ZW", + "so-SO": "SO", "sr-BA": "BA", "sr-RS": "RS", "sv-FI": "FI", @@ -3765,15 +4009,26 @@ "sw-KE": "KE", "sw-TZ": "TZ", "sw-UG": "UG", + "ta-IN": "IN", + "ta-SG": "SG", + "te-IN": "IN", "th-TH": "TH", + "to-TO": "TO", "tr-CY": "CY", "tr-TR": "TR", + "tt-RU": "RU", "uk-UA": "UA", + "ur-IN": "IN", + "ur-PK": "PK", "vi-VN": "VN", + "wo-SN": "SN", + "xh-ZA": "ZA", + "yo-NG": "NG", "zh-CN": "HK", "zh-HK": "HK", "zh-SG": "SG", - "zh-TW": "TW" + "zh-TW": "TW", + "zu-ZA": "ZA" } }, "google news": { @@ -3867,55 +4122,133 @@ "data_type": "traits_v1", "languages": { "af": "lang_af", + "ak": "lang_ak", + "am": "lang_am", "ar": "lang_ar", + "az": "lang_az", "be": "lang_be", + "bem": "lang_bem", "bg": "lang_bg", + "bn": "lang_bn", + "br": "lang_br", + "bs": "lang_bs", "ca": "lang_ca", + "ceb": "lang_ceb", + "chr": "lang_chr", + "ckb": "lang_ckb", "cs": "lang_cs", + "cy": "lang_cy", "da": "lang_da", "de": "lang_de", + "ee": "lang_ee", "el": "lang_el", "en": "lang_en", "eo": "lang_eo", "es": "lang_es", "et": "lang_et", + "eu": "lang_eu", "fa": "lang_fa", "fi": "lang_fi", - "fil": "lang_tl", + "fil": "lang_fil", + "fo": "lang_fo", "fr": "lang_fr", + "fy": "lang_fy", + "ga": "lang_ga", + "gd": "lang_gd", + "gl": "lang_gl", + "gu": "lang_gu", + "ha": "lang_ha", + "haw": "lang_haw", "he": "lang_iw", "hi": "lang_hi", "hr": "lang_hr", "hu": "lang_hu", "hy": "lang_hy", + "ia": "lang_ia", "id": "lang_id", + "ig": "lang_ig", "is": "lang_is", "it": "lang_it", "ja": "lang_ja", + "jv": "lang_jw", + "ka": "lang_ka", + "kk": "lang_kk", + "km": "lang_km", + "kn": "lang_kn", "ko": "lang_ko", + "ky": "lang_ky", + "lg": "lang_lg", + "ln": "lang_ln", + "lo": "lang_lo", "lt": "lang_lt", "lv": "lang_lv", + "mfe": "lang_mfe", + "mg": "lang_mg", + "mi": "lang_mi", + "mk": "lang_mk", + "ml": "lang_ml", + "mn": "lang_mn", + "mr": "lang_mr", + "ms": "lang_ms", + "mt": "lang_mt", + "my": "lang_my", "nb": "lang_no", + "ne": "lang_ne", "nl": "lang_nl", + "nn": "lang_nn", + "nyn": "lang_nyn", + "oc": "lang_oc", + "om": "lang_om", + "or": "lang_or", + "pa": "lang_pa", + "pcm": "lang_pcm", "pl": "lang_pl", - "pt": "lang_pt", + "ps": "lang_ps", + "pt": "lang_pt-BR", + "qu": "lang_qu", + "rm": "lang_rm", + "rn": "lang_rn", "ro": "lang_ro", "ru": "lang_ru", + "rw": "lang_rw", + "sd": "lang_sd", + "si": "lang_si", "sk": "lang_sk", "sl": "lang_sl", + "sn": "lang_sn", + "so": "lang_so", + "sq": "lang_sq", "sr": "lang_sr", + "sr_Latn": "lang_sr-ME", + "su": "lang_su", "sv": "lang_sv", "sw": "lang_sw", + "ta": "lang_ta", + "te": "lang_te", + "tg": "lang_tg", "th": "lang_th", + "ti": "lang_ti", + "tk": "lang_tk", + "to": "lang_to", "tr": "lang_tr", + "tt": "lang_tt", + "ug": "lang_ug", "uk": "lang_uk", + "ur": "lang_ur", + "uz": "lang_uz", "vi": "lang_vi", + "wo": "lang_wo", + "xh": "lang_xh", + "yi": "lang_yi", + "yo": "lang_yo", "zh": "lang_zh-CN", "zh_Hans": "lang_zh-CN", - "zh_Hant": "lang_zh-TW" + "zh_Hant": "lang_zh-TW", + "zu": "lang_zu" }, "regions": { "af-ZA": "ZA", + "ak-GH": "GH", "ar-AE": "AE", "ar-BH": "BH", "ar-DJ": "DJ", @@ -3937,9 +4270,14 @@ "ar-TN": "TN", "be-BY": "BY", "bg-BG": "BG", + "bn-IN": "IN", + "bs-BA": "BA", "ca-AD": "AD", "ca-ES": "ES", + "ceb-PH": "PH", + "ckb-IQ": "IQ", "cs-CZ": "CZ", + "cy-GB": "GB", "da-DK": "DK", "de-AT": "AT", "de-BE": "BE", @@ -3947,6 +4285,7 @@ "de-DE": "DE", "de-LI": "LI", "de-LU": "LU", + "ee-GH": "GH", "el-CY": "CY", "el-GR": "GR", "en-AG": "AG", @@ -4031,6 +4370,7 @@ "es-UY": "UY", "es-VE": "VE", "et-EE": "EE", + "eu-ES": "ES", "fa-AF": "AF", "fi-FI": "FI", "fil-PH": "PH", @@ -4063,6 +4403,13 @@ "fr-TG": "TG", "fr-TN": "TN", "fr-VU": "VU", + "fy-NL": "NL", + "ga-GB": "GB", + "ga-IE": "IE", + "gd-GB": "GB", + "gl-ES": "ES", + "gu-IN": "IN", + "haw-US": "US", "he-IL": "IL", "hi-IN": "IN", "hr-BA": "BA", @@ -4075,14 +4422,30 @@ "it-IT": "IT", "it-SM": "SM", "ja-JP": "JP", + "kk-KZ": "KZ", + "kn-IN": "IN", "ko-KR": "KR", + "ky-KG": "KG", + "ln-CD": "CD", "lt-LT": "LT", "lv-LV": "LV", + "mg-MG": "MG", + "mi-NZ": "NZ", + "ml-IN": "IN", + "mr-IN": "IN", + "ms-SG": "SG", + "mt-MT": "MT", "nb-NO": "NO", + "ne-IN": "IN", "nl-BE": "BE", "nl-NL": "NL", "nl-SR": "SR", + "nn-NO": "NO", + "oc-ES": "ES", + "or-IN": "IN", + "pa-IN": "IN", "pl-PL": "PL", + "ps-AF": "AF", "pt-AO": "AO", "pt-BR": "BR", "pt-CV": "CV", @@ -4090,6 +4453,11 @@ "pt-PT": "PT", "pt-ST": "ST", "pt-TL": "TL", + "qu-BO": "BO", + "qu-EC": "EC", + "qu-PE": "PE", + "rm-CH": "CH", + "rn-BI": "BI", "ro-MD": "MD", "ro-RO": "RO", "ru-BY": "BY", @@ -4097,8 +4465,12 @@ "ru-KZ": "KZ", "ru-RU": "RU", "ru-UA": "UA", + "rw-RW": "RW", + "sd-IN": "IN", "sk-SK": "SK", "sl-SI": "SI", + "sn-ZW": "ZW", + "so-SO": "SO", "sr-BA": "BA", "sr-RS": "RS", "sv-FI": "FI", @@ -4107,15 +4479,26 @@ "sw-KE": "KE", "sw-TZ": "TZ", "sw-UG": "UG", + "ta-IN": "IN", + "ta-SG": "SG", + "te-IN": "IN", "th-TH": "TH", + "to-TO": "TO", "tr-CY": "CY", "tr-TR": "TR", + "tt-RU": "RU", "uk-UA": "UA", + "ur-IN": "IN", + "ur-PK": "PK", "vi-VN": "VN", + "wo-SN": "SN", + "xh-ZA": "ZA", + "yo-NG": "NG", "zh-CN": "HK", "zh-HK": "HK", "zh-SG": "SG", - "zh-TW": "TW" + "zh-TW": "TW", + "zu-ZA": "ZA" } }, "google scholar": { @@ -4313,55 +4696,133 @@ "data_type": "traits_v1", "languages": { "af": "lang_af", + "ak": "lang_ak", + "am": "lang_am", "ar": "lang_ar", + "az": "lang_az", "be": "lang_be", + "bem": "lang_bem", "bg": "lang_bg", + "bn": "lang_bn", + "br": "lang_br", + "bs": "lang_bs", "ca": "lang_ca", + "ceb": "lang_ceb", + "chr": "lang_chr", + "ckb": "lang_ckb", "cs": "lang_cs", + "cy": "lang_cy", "da": "lang_da", "de": "lang_de", + "ee": "lang_ee", "el": "lang_el", "en": "lang_en", "eo": "lang_eo", "es": "lang_es", "et": "lang_et", + "eu": "lang_eu", "fa": "lang_fa", "fi": "lang_fi", - "fil": "lang_tl", + "fil": "lang_fil", + "fo": "lang_fo", "fr": "lang_fr", + "fy": "lang_fy", + "ga": "lang_ga", + "gd": "lang_gd", + "gl": "lang_gl", + "gu": "lang_gu", + "ha": "lang_ha", + "haw": "lang_haw", "he": "lang_iw", "hi": "lang_hi", "hr": "lang_hr", "hu": "lang_hu", "hy": "lang_hy", + "ia": "lang_ia", "id": "lang_id", + "ig": "lang_ig", "is": "lang_is", "it": "lang_it", "ja": "lang_ja", + "jv": "lang_jw", + "ka": "lang_ka", + "kk": "lang_kk", + "km": "lang_km", + "kn": "lang_kn", "ko": "lang_ko", + "ky": "lang_ky", + "lg": "lang_lg", + "ln": "lang_ln", + "lo": "lang_lo", "lt": "lang_lt", "lv": "lang_lv", + "mfe": "lang_mfe", + "mg": "lang_mg", + "mi": "lang_mi", + "mk": "lang_mk", + "ml": "lang_ml", + "mn": "lang_mn", + "mr": "lang_mr", + "ms": "lang_ms", + "mt": "lang_mt", + "my": "lang_my", "nb": "lang_no", + "ne": "lang_ne", "nl": "lang_nl", + "nn": "lang_nn", + "nyn": "lang_nyn", + "oc": "lang_oc", + "om": "lang_om", + "or": "lang_or", + "pa": "lang_pa", + "pcm": "lang_pcm", "pl": "lang_pl", - "pt": "lang_pt", + "ps": "lang_ps", + "pt": "lang_pt-BR", + "qu": "lang_qu", + "rm": "lang_rm", + "rn": "lang_rn", "ro": "lang_ro", "ru": "lang_ru", + "rw": "lang_rw", + "sd": "lang_sd", + "si": "lang_si", "sk": "lang_sk", "sl": "lang_sl", + "sn": "lang_sn", + "so": "lang_so", + "sq": "lang_sq", "sr": "lang_sr", + "sr_Latn": "lang_sr-ME", + "su": "lang_su", "sv": "lang_sv", "sw": "lang_sw", + "ta": "lang_ta", + "te": "lang_te", + "tg": "lang_tg", "th": "lang_th", + "ti": "lang_ti", + "tk": "lang_tk", + "to": "lang_to", "tr": "lang_tr", + "tt": "lang_tt", + "ug": "lang_ug", "uk": "lang_uk", + "ur": "lang_ur", + "uz": "lang_uz", "vi": "lang_vi", + "wo": "lang_wo", + "xh": "lang_xh", + "yi": "lang_yi", + "yo": "lang_yo", "zh": "lang_zh-CN", "zh_Hans": "lang_zh-CN", - "zh_Hant": "lang_zh-TW" + "zh_Hant": "lang_zh-TW", + "zu": "lang_zu" }, "regions": { "af-ZA": "ZA", + "ak-GH": "GH", "ar-AE": "AE", "ar-BH": "BH", "ar-DJ": "DJ", @@ -4383,9 +4844,14 @@ "ar-TN": "TN", "be-BY": "BY", "bg-BG": "BG", + "bn-IN": "IN", + "bs-BA": "BA", "ca-AD": "AD", "ca-ES": "ES", + "ceb-PH": "PH", + "ckb-IQ": "IQ", "cs-CZ": "CZ", + "cy-GB": "GB", "da-DK": "DK", "de-AT": "AT", "de-BE": "BE", @@ -4393,6 +4859,7 @@ "de-DE": "DE", "de-LI": "LI", "de-LU": "LU", + "ee-GH": "GH", "el-CY": "CY", "el-GR": "GR", "en-AG": "AG", @@ -4477,6 +4944,7 @@ "es-UY": "UY", "es-VE": "VE", "et-EE": "EE", + "eu-ES": "ES", "fa-AF": "AF", "fi-FI": "FI", "fil-PH": "PH", @@ -4509,6 +4977,13 @@ "fr-TG": "TG", "fr-TN": "TN", "fr-VU": "VU", + "fy-NL": "NL", + "ga-GB": "GB", + "ga-IE": "IE", + "gd-GB": "GB", + "gl-ES": "ES", + "gu-IN": "IN", + "haw-US": "US", "he-IL": "IL", "hi-IN": "IN", "hr-BA": "BA", @@ -4521,14 +4996,30 @@ "it-IT": "IT", "it-SM": "SM", "ja-JP": "JP", + "kk-KZ": "KZ", + "kn-IN": "IN", "ko-KR": "KR", + "ky-KG": "KG", + "ln-CD": "CD", "lt-LT": "LT", "lv-LV": "LV", + "mg-MG": "MG", + "mi-NZ": "NZ", + "ml-IN": "IN", + "mr-IN": "IN", + "ms-SG": "SG", + "mt-MT": "MT", "nb-NO": "NO", + "ne-IN": "IN", "nl-BE": "BE", "nl-NL": "NL", "nl-SR": "SR", + "nn-NO": "NO", + "oc-ES": "ES", + "or-IN": "IN", + "pa-IN": "IN", "pl-PL": "PL", + "ps-AF": "AF", "pt-AO": "AO", "pt-BR": "BR", "pt-CV": "CV", @@ -4536,6 +5027,11 @@ "pt-PT": "PT", "pt-ST": "ST", "pt-TL": "TL", + "qu-BO": "BO", + "qu-EC": "EC", + "qu-PE": "PE", + "rm-CH": "CH", + "rn-BI": "BI", "ro-MD": "MD", "ro-RO": "RO", "ru-BY": "BY", @@ -4543,8 +5039,12 @@ "ru-KZ": "KZ", "ru-RU": "RU", "ru-UA": "UA", + "rw-RW": "RW", + "sd-IN": "IN", "sk-SK": "SK", "sl-SI": "SI", + "sn-ZW": "ZW", + "so-SO": "SO", "sr-BA": "BA", "sr-RS": "RS", "sv-FI": "FI", @@ -4553,15 +5053,26 @@ "sw-KE": "KE", "sw-TZ": "TZ", "sw-UG": "UG", + "ta-IN": "IN", + "ta-SG": "SG", + "te-IN": "IN", "th-TH": "TH", + "to-TO": "TO", "tr-CY": "CY", "tr-TR": "TR", + "tt-RU": "RU", "uk-UA": "UA", + "ur-IN": "IN", + "ur-PK": "PK", "vi-VN": "VN", + "wo-SN": "SN", + "xh-ZA": "ZA", + "yo-NG": "NG", "zh-CN": "HK", "zh-HK": "HK", "zh-SG": "SG", - "zh-TW": "TW" + "zh-TW": "TW", + "zu-ZA": "ZA" } }, "google videos": { @@ -4759,55 +5270,133 @@ "data_type": "traits_v1", "languages": { "af": "lang_af", + "ak": "lang_ak", + "am": "lang_am", "ar": "lang_ar", + "az": "lang_az", "be": "lang_be", + "bem": "lang_bem", "bg": "lang_bg", + "bn": "lang_bn", + "br": "lang_br", + "bs": "lang_bs", "ca": "lang_ca", + "ceb": "lang_ceb", + "chr": "lang_chr", + "ckb": "lang_ckb", "cs": "lang_cs", + "cy": "lang_cy", "da": "lang_da", "de": "lang_de", + "ee": "lang_ee", "el": "lang_el", "en": "lang_en", "eo": "lang_eo", "es": "lang_es", "et": "lang_et", + "eu": "lang_eu", "fa": "lang_fa", "fi": "lang_fi", - "fil": "lang_tl", + "fil": "lang_fil", + "fo": "lang_fo", "fr": "lang_fr", + "fy": "lang_fy", + "ga": "lang_ga", + "gd": "lang_gd", + "gl": "lang_gl", + "gu": "lang_gu", + "ha": "lang_ha", + "haw": "lang_haw", "he": "lang_iw", "hi": "lang_hi", "hr": "lang_hr", "hu": "lang_hu", "hy": "lang_hy", + "ia": "lang_ia", "id": "lang_id", + "ig": "lang_ig", "is": "lang_is", "it": "lang_it", "ja": "lang_ja", + "jv": "lang_jw", + "ka": "lang_ka", + "kk": "lang_kk", + "km": "lang_km", + "kn": "lang_kn", "ko": "lang_ko", + "ky": "lang_ky", + "lg": "lang_lg", + "ln": "lang_ln", + "lo": "lang_lo", "lt": "lang_lt", "lv": "lang_lv", + "mfe": "lang_mfe", + "mg": "lang_mg", + "mi": "lang_mi", + "mk": "lang_mk", + "ml": "lang_ml", + "mn": "lang_mn", + "mr": "lang_mr", + "ms": "lang_ms", + "mt": "lang_mt", + "my": "lang_my", "nb": "lang_no", + "ne": "lang_ne", "nl": "lang_nl", + "nn": "lang_nn", + "nyn": "lang_nyn", + "oc": "lang_oc", + "om": "lang_om", + "or": "lang_or", + "pa": "lang_pa", + "pcm": "lang_pcm", "pl": "lang_pl", - "pt": "lang_pt", + "ps": "lang_ps", + "pt": "lang_pt-BR", + "qu": "lang_qu", + "rm": "lang_rm", + "rn": "lang_rn", "ro": "lang_ro", "ru": "lang_ru", + "rw": "lang_rw", + "sd": "lang_sd", + "si": "lang_si", "sk": "lang_sk", "sl": "lang_sl", + "sn": "lang_sn", + "so": "lang_so", + "sq": "lang_sq", "sr": "lang_sr", + "sr_Latn": "lang_sr-ME", + "su": "lang_su", "sv": "lang_sv", "sw": "lang_sw", + "ta": "lang_ta", + "te": "lang_te", + "tg": "lang_tg", "th": "lang_th", + "ti": "lang_ti", + "tk": "lang_tk", + "to": "lang_to", "tr": "lang_tr", + "tt": "lang_tt", + "ug": "lang_ug", "uk": "lang_uk", + "ur": "lang_ur", + "uz": "lang_uz", "vi": "lang_vi", + "wo": "lang_wo", + "xh": "lang_xh", + "yi": "lang_yi", + "yo": "lang_yo", "zh": "lang_zh-CN", "zh_Hans": "lang_zh-CN", - "zh_Hant": "lang_zh-TW" + "zh_Hant": "lang_zh-TW", + "zu": "lang_zu" }, "regions": { "af-ZA": "ZA", + "ak-GH": "GH", "ar-AE": "AE", "ar-BH": "BH", "ar-DJ": "DJ", @@ -4829,9 +5418,14 @@ "ar-TN": "TN", "be-BY": "BY", "bg-BG": "BG", + "bn-IN": "IN", + "bs-BA": "BA", "ca-AD": "AD", "ca-ES": "ES", + "ceb-PH": "PH", + "ckb-IQ": "IQ", "cs-CZ": "CZ", + "cy-GB": "GB", "da-DK": "DK", "de-AT": "AT", "de-BE": "BE", @@ -4839,6 +5433,7 @@ "de-DE": "DE", "de-LI": "LI", "de-LU": "LU", + "ee-GH": "GH", "el-CY": "CY", "el-GR": "GR", "en-AG": "AG", @@ -4923,6 +5518,7 @@ "es-UY": "UY", "es-VE": "VE", "et-EE": "EE", + "eu-ES": "ES", "fa-AF": "AF", "fi-FI": "FI", "fil-PH": "PH", @@ -4955,6 +5551,13 @@ "fr-TG": "TG", "fr-TN": "TN", "fr-VU": "VU", + "fy-NL": "NL", + "ga-GB": "GB", + "ga-IE": "IE", + "gd-GB": "GB", + "gl-ES": "ES", + "gu-IN": "IN", + "haw-US": "US", "he-IL": "IL", "hi-IN": "IN", "hr-BA": "BA", @@ -4967,14 +5570,30 @@ "it-IT": "IT", "it-SM": "SM", "ja-JP": "JP", + "kk-KZ": "KZ", + "kn-IN": "IN", "ko-KR": "KR", + "ky-KG": "KG", + "ln-CD": "CD", "lt-LT": "LT", "lv-LV": "LV", + "mg-MG": "MG", + "mi-NZ": "NZ", + "ml-IN": "IN", + "mr-IN": "IN", + "ms-SG": "SG", + "mt-MT": "MT", "nb-NO": "NO", + "ne-IN": "IN", "nl-BE": "BE", "nl-NL": "NL", "nl-SR": "SR", + "nn-NO": "NO", + "oc-ES": "ES", + "or-IN": "IN", + "pa-IN": "IN", "pl-PL": "PL", + "ps-AF": "AF", "pt-AO": "AO", "pt-BR": "BR", "pt-CV": "CV", @@ -4982,6 +5601,11 @@ "pt-PT": "PT", "pt-ST": "ST", "pt-TL": "TL", + "qu-BO": "BO", + "qu-EC": "EC", + "qu-PE": "PE", + "rm-CH": "CH", + "rn-BI": "BI", "ro-MD": "MD", "ro-RO": "RO", "ru-BY": "BY", @@ -4989,8 +5613,12 @@ "ru-KZ": "KZ", "ru-RU": "RU", "ru-UA": "UA", + "rw-RW": "RW", + "sd-IN": "IN", "sk-SK": "SK", "sl-SI": "SI", + "sn-ZW": "ZW", + "so-SO": "SO", "sr-BA": "BA", "sr-RS": "RS", "sv-FI": "FI", @@ -4999,15 +5627,26 @@ "sw-KE": "KE", "sw-TZ": "TZ", "sw-UG": "UG", + "ta-IN": "IN", + "ta-SG": "SG", + "te-IN": "IN", "th-TH": "TH", + "to-TO": "TO", "tr-CY": "CY", "tr-TR": "TR", + "tt-RU": "RU", "uk-UA": "UA", + "ur-IN": "IN", + "ur-PK": "PK", "vi-VN": "VN", + "wo-SN": "SN", + "xh-ZA": "ZA", + "yo-NG": "NG", "zh-CN": "HK", "zh-HK": "HK", "zh-SG": "SG", - "zh-TW": "TW" + "zh-TW": "TW", + "zu-ZA": "ZA" } }, "odysee": { @@ -5279,6 +5918,7 @@ "AT", "AU", "AW", + "AX", "AZ", "BA", "BB", @@ -5325,6 +5965,7 @@ "EC", "EE", "EG", + "ER", "ES", "ET", "FI", @@ -5380,6 +6021,7 @@ "KZ", "LB", "LC", + "LI", "LK", "LS", "LT", @@ -5417,6 +6059,7 @@ "PA", "PE", "PF", + "PG", "PH", "PK", "PL", @@ -5432,6 +6075,7 @@ "RU", "RW", "SA", + "SB", "SC", "SD", "SE", @@ -5445,6 +6089,7 @@ "SN", "SO", "SR", + "SS", "ST", "SV", "SY", @@ -5471,7 +6116,6 @@ "VA", "VC", "VE", - "VG", "VI", "VN", "VU", @@ -5543,6 +6187,7 @@ "km": "khmer", "kn": "kannada", "ko": "korean", + "ks": "kashmiri", "ku": "kurdish", "lb": "luxembourgish", "ln": "lingala", @@ -5586,6 +6231,7 @@ "te": "telugu", "tg": "tajik", "th": "thai", + "ti": "tigrinya", "tk": "turkmen", "tr": "turkish", "tt": "tatar", @@ -5596,6 +6242,7 @@ "wo": "wolof", "xh": "xhosa", "yi": "yiddish", + "yo": "yoruba", "yue": "cantonese", "zh": "chinese", "zh_Hans": "mandarin" @@ -5914,6 +6561,7 @@ "ban", "bar", "bat-smg", + "bbc", "bcl", "be", "be-tarask", @@ -5950,6 +6598,7 @@ "da", "dag", "de", + "dga", "din", "diq", "dsb", @@ -6059,7 +6708,6 @@ "lt", "ltg", "lv", - "lzh", "mad", "mai", "map-bms", @@ -6082,7 +6730,6 @@ "myv", "mzn", "nah", - "nan", "nap", "nds", "nds-nl", @@ -6204,10 +6851,13 @@ "xmf", "yi", "yo", - "yue", "za", "zea", + "zgh", "zh", + "zh-classical", + "zh-min-nan", + "zh-yue", "zu" ], "wiki_netloc": { diff --git a/searx/data/useragents.json b/searx/data/useragents.json index 5b52aff8e..7b87e7d56 100644 --- a/searx/data/useragents.json +++ b/searx/data/useragents.json @@ -7,5 +7,5 @@ "Windows NT 10.0; Win64; x64", "X11; Linux x86_64" ], - "ua": "Mozilla/5.0 ({os}; rv:109.0) Gecko/20100101 Firefox/{version}" -} \ No newline at end of file + "ua": "Mozilla/5.0 ({os}; rv:{version}) Gecko/20100101 Firefox/{version}" +} diff --git a/searx/engines/google.py b/searx/engines/google.py index 90b58e270..0bf7fdb01 100644 --- a/searx/engines/google.py +++ b/searx/engines/google.py @@ -430,14 +430,13 @@ def fetch_traits(engine_traits: EngineTraits, add_domains: bool = True): if not resp.ok: # type: ignore raise RuntimeError("Response from Google's preferences is not OK.") - dom = html.fromstring(resp.text) # type: ignore + dom = html.fromstring(resp.text.replace('', '')) # supported language codes lang_map = {'no': 'nb'} - for x in eval_xpath_list(dom, '//*[@id="langSec"]//input[@name="lr"]'): - - eng_lang = x.get("value").split('_')[-1] + for x in eval_xpath_list(dom, "//select[@name='hl']/option"): + eng_lang = x.get("value") try: locale = babel.Locale.parse(lang_map.get(eng_lang, eng_lang), sep='-') except babel.UnknownLocaleError: @@ -457,7 +456,7 @@ def fetch_traits(engine_traits: EngineTraits, add_domains: bool = True): # supported region codes - for x in eval_xpath_list(dom, '//*[@name="region"]/..//input[@name="region"]'): + for x in eval_xpath_list(dom, "//select[@name='gl']/option"): eng_country = x.get("value") if eng_country in skip_countries: diff --git a/searx/engines/lingva.py b/searx/engines/lingva.py index bf51b705e..124499719 100644 --- a/searx/engines/lingva.py +++ b/searx/engines/lingva.py @@ -16,7 +16,7 @@ about = { engine_type = 'online_dictionary' categories = ['general'] -url = "https://lingva.ml" +url = "https://lingva.thedaviddelta.com/" search_url = "{url}/api/v1/{from_lang}/{to_lang}/{query}" diff --git a/searx/engines/zlibrary.py b/searx/engines/zlibrary.py index 813d52f64..dd32004f7 100644 --- a/searx/engines/zlibrary.py +++ b/searx/engines/zlibrary.py @@ -200,6 +200,8 @@ def fetch_traits(engine_traits: EngineTraits) -> None: for locale in babel.core.localedata.locale_identifiers(): # type: ignore # Create a Locale object for the current locale loc = babel.Locale.parse(locale) + if loc.english_name is None: + continue language_name_locale_map[loc.english_name.lower()] = loc # type: ignore for x in eval_xpath_list(dom, "//div[@id='advSearch-noJS']//select[@id='sf_languages']/option"): diff --git a/searx/settings.yml b/searx/settings.yml index 9918235a0..5f1f7f22c 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -535,6 +535,23 @@ engines: categories: general shortcut: cc + - name: bahnhof + engine: json_engine + search_url: https://www.bahnhof.de/api/stations/search/{query} + url_prefix: https://www.bahnhof.de/ + url_query: slug + title_query: name + content_query: state + shortcut: bf + disabled: true + about: + website: https://www.bahn.de + wikidata_id: Q22811603 + use_official_api: false + require_api_key: false + results: JSON + language: de + - name: deezer engine: deezer shortcut: dz @@ -1017,7 +1034,7 @@ engines: engine: lingva shortcut: lv # set lingva instance in url, by default it will use the official instance - # url: https://lingva.ml + # url: https://lingva.thedaviddelta.com/ - name: lobste.rs engine: xpath diff --git a/searx/static/themes/simple/package.json b/searx/static/themes/simple/package.json index 0472904dc..871b7a60d 100644 --- a/searx/static/themes/simple/package.json +++ b/searx/static/themes/simple/package.json @@ -14,7 +14,7 @@ "ionicons": "^7.1.0", "less": "^4.1.3", "less-plugin-clean-css": "^1.5.1", - "sharp": "^0.32.0", + "sharp": "^0.33.0", "stylelint": "^13.13.1", "stylelint-config-standard": "^22.0.0", "ejs": "^3.1.8", diff --git a/searx/templates/simple/messages/no_results.html b/searx/templates/simple/messages/no_results.html index 8361276d0..fb863cb9c 100644 --- a/searx/templates/simple/messages/no_results.html +++ b/searx/templates/simple/messages/no_results.html @@ -1,11 +1,28 @@ {% from 'simple/icons.html' import icon_big %} -
{{ _('Sorry!') }}
-{{ _("No results were found. You can try to:") }}
+{{- '' -}} + + {%- if pageno == 1 -%} + {{ _('Sorry!') }} + {%- endif -%} + {{- '' -}} +
{{- '' -}} ++ {%- if pageno == 1 -%} + {{ _("No results were found. You can try to:") }} + {%- else -%} + {{ _("There are no more results. You can try to:") }} + {%- endif -%} +
{{- '' -}}