forked from Ponysearch/Ponysearch
commit
f310305c54
6 changed files with 26 additions and 16 deletions
|
@ -9,4 +9,4 @@ pygments==2.1.3
|
||||||
python-dateutil==2.8.1
|
python-dateutil==2.8.1
|
||||||
pyyaml==5.3.1
|
pyyaml==5.3.1
|
||||||
requests[socks]==2.25.1
|
requests[socks]==2.25.1
|
||||||
pycld3==0.20
|
langdetect==1.0.8
|
||||||
|
|
|
@ -74,6 +74,7 @@ def run(engine_name_list, verbose):
|
||||||
stdout.write(f' {"found languages":15}: {" ".join(sorted(list(checker.test_results.languages)))}\n')
|
stdout.write(f' {"found languages":15}: {" ".join(sorted(list(checker.test_results.languages)))}\n')
|
||||||
for test_name, logs in checker.test_results.logs.items():
|
for test_name, logs in checker.test_results.logs.items():
|
||||||
for log in logs:
|
for log in logs:
|
||||||
|
log = map(lambda l: l if isinstance(l, str) else repr(l), log)
|
||||||
stdout.write(f' {test_name:15}: {RED}{" ".join(log)}{RESET_SEQ}\n')
|
stdout.write(f' {test_name:15}: {RED}{" ".join(log)}{RESET_SEQ}\n')
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,8 @@ from time import time
|
||||||
from urllib.parse import urlparse
|
from urllib.parse import urlparse
|
||||||
|
|
||||||
import re
|
import re
|
||||||
import cld3
|
from langdetect import detect_langs
|
||||||
|
from langdetect.lang_detect_exception import LangDetectException
|
||||||
import requests.exceptions
|
import requests.exceptions
|
||||||
|
|
||||||
from searx import poolrequests, logger
|
from searx import poolrequests, logger
|
||||||
|
@ -181,10 +182,14 @@ class ResultContainerTests:
|
||||||
self.test_results.add_error(self.test_name, message, *args, '(' + sqstr + ')')
|
self.test_results.add_error(self.test_name, message, *args, '(' + sqstr + ')')
|
||||||
|
|
||||||
def _add_language(self, text: str) -> typing.Optional[str]:
|
def _add_language(self, text: str) -> typing.Optional[str]:
|
||||||
r = cld3.get_language(str(text)) # pylint: disable=E1101
|
try:
|
||||||
if r is not None and r.probability >= 0.98 and r.is_reliable:
|
r = detect_langs(str(text)) # pylint: disable=E1101
|
||||||
self.languages.add(r.language)
|
except LangDetectException:
|
||||||
self.test_results.add_language(r.language)
|
return None
|
||||||
|
|
||||||
|
if len(r) > 0 and r[0].prob > 0.95:
|
||||||
|
self.languages.add(r[0].lang)
|
||||||
|
self.test_results.add_language(r[0].lang)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def _check_result(self, result):
|
def _check_result(self, result):
|
||||||
|
|
|
@ -239,14 +239,14 @@ class OnlineProcessor(EngineProcessor):
|
||||||
'test': ['unique_results']
|
'test': ['unique_results']
|
||||||
}
|
}
|
||||||
|
|
||||||
if getattr(self.engine, 'lang', False):
|
if getattr(self.engine, 'supported_languages', []):
|
||||||
tests['lang_fr'] = {
|
tests['lang_fr'] = {
|
||||||
'matrix': {'query': 'paris', 'lang': 'fr'},
|
'matrix': {'query': 'paris', 'lang': 'fr'},
|
||||||
'result_container': ['not_empty', ('has_lang', 'fr')],
|
'result_container': ['not_empty', ('has_language', 'fr')],
|
||||||
}
|
}
|
||||||
tests['lang_en'] = {
|
tests['lang_en'] = {
|
||||||
'matrix': {'query': 'paris', 'lang': 'en'},
|
'matrix': {'query': 'paris', 'lang': 'en'},
|
||||||
'result_container': ['not_empty', ('has_lang', 'en')],
|
'result_container': ['not_empty', ('has_language', 'en')],
|
||||||
}
|
}
|
||||||
|
|
||||||
if getattr(self.engine, 'safesearch', False):
|
if getattr(self.engine, 'safesearch', False):
|
||||||
|
|
|
@ -105,11 +105,17 @@ outgoing: # communication with search engines
|
||||||
checker:
|
checker:
|
||||||
# disable checker when in debug mode
|
# disable checker when in debug mode
|
||||||
off_when_debug: True
|
off_when_debug: True
|
||||||
|
|
||||||
# scheduling: interval or int
|
# scheduling: interval or int
|
||||||
# use "scheduling: False" to disable scheduling
|
# use "scheduling: False" to disable scheduling
|
||||||
scheduling:
|
# to activate the scheduler:
|
||||||
start_after: [300, 1800] # delay to start the first run of the checker
|
# * uncomment "scheduling" section
|
||||||
every: [86400, 90000] # how often the checker runs
|
# * add "cache2 = name=searxcache,items=2000,blocks=2000,blocksize=4096,bitmap=1" to your uwsgi.ini
|
||||||
|
|
||||||
|
# scheduling:
|
||||||
|
# start_after: [300, 1800] # delay to start the first run of the checker
|
||||||
|
# every: [86400, 90000] # how often the checker runs
|
||||||
|
|
||||||
# additional tests: only for the YAML anchors (see the engines section)
|
# additional tests: only for the YAML anchors (see the engines section)
|
||||||
additional_tests:
|
additional_tests:
|
||||||
rosebud: &test_rosebud
|
rosebud: &test_rosebud
|
||||||
|
|
|
@ -46,7 +46,6 @@ SEARX_PACKAGES_debian="\
|
||||||
python3-dev python3-babel python3-venv
|
python3-dev python3-babel python3-venv
|
||||||
uwsgi uwsgi-plugin-python3
|
uwsgi uwsgi-plugin-python3
|
||||||
git build-essential libxslt-dev zlib1g-dev libffi-dev libssl-dev
|
git build-essential libxslt-dev zlib1g-dev libffi-dev libssl-dev
|
||||||
libprotobuf-dev protobuf-compiler
|
|
||||||
shellcheck"
|
shellcheck"
|
||||||
|
|
||||||
BUILD_PACKAGES_debian="\
|
BUILD_PACKAGES_debian="\
|
||||||
|
@ -59,7 +58,6 @@ SEARX_PACKAGES_arch="\
|
||||||
python python-pip python-lxml python-babel
|
python python-pip python-lxml python-babel
|
||||||
uwsgi uwsgi-plugin-python
|
uwsgi uwsgi-plugin-python
|
||||||
git base-devel libxml2
|
git base-devel libxml2
|
||||||
protobuf
|
|
||||||
shellcheck"
|
shellcheck"
|
||||||
|
|
||||||
BUILD_PACKAGES_arch="\
|
BUILD_PACKAGES_arch="\
|
||||||
|
@ -71,7 +69,7 @@ SEARX_PACKAGES_fedora="\
|
||||||
python python-pip python-lxml python-babel
|
python python-pip python-lxml python-babel
|
||||||
uwsgi uwsgi-plugin-python3
|
uwsgi uwsgi-plugin-python3
|
||||||
git @development-tools libxml2
|
git @development-tools libxml2
|
||||||
ShellCheck protobuf-compiler protobuf-devel"
|
ShellCheck"
|
||||||
|
|
||||||
BUILD_PACKAGES_fedora="\
|
BUILD_PACKAGES_fedora="\
|
||||||
firefox graphviz graphviz-gd ImageMagick librsvg2-tools
|
firefox graphviz graphviz-gd ImageMagick librsvg2-tools
|
||||||
|
@ -84,7 +82,7 @@ SEARX_PACKAGES_centos="\
|
||||||
python36 python36-pip python36-lxml python-babel
|
python36 python36-pip python36-lxml python-babel
|
||||||
uwsgi uwsgi-plugin-python3
|
uwsgi uwsgi-plugin-python3
|
||||||
git @development-tools libxml2
|
git @development-tools libxml2
|
||||||
ShellCheck protobuf-compiler protobuf-devel"
|
ShellCheck"
|
||||||
|
|
||||||
BUILD_PACKAGES_centos="\
|
BUILD_PACKAGES_centos="\
|
||||||
firefox graphviz graphviz-gd ImageMagick librsvg2-tools
|
firefox graphviz graphviz-gd ImageMagick librsvg2-tools
|
||||||
|
|
Loading…
Reference in a new issue