Merge pull request #375 from dalf/searxng_extra

SearXNG: searx_extra
This commit is contained in:
Alexandre Flament 2021-10-03 19:09:07 +02:00 committed by GitHub
commit 47eb836c65
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
32 changed files with 62 additions and 61 deletions

View File

@ -39,7 +39,7 @@ jobs:
- name: Fetch data - name: Fetch data
env: env:
FETCH_SCRIPT: ./searx_extra/update/${{ matrix.fetch }} FETCH_SCRIPT: ./searxng_extra/update/${{ matrix.fetch }}
run: | run: |
V=1 ./manage pyenv.cmd python "$FETCH_SCRIPT" V=1 ./manage pyenv.cmd python "$FETCH_SCRIPT"

View File

@ -32,7 +32,7 @@ If you don't trust anyone, you can set up your own, see :ref:`installation`.
user/index user/index
admin/index admin/index
dev/index dev/index
searx_extra/index searxng_extra/index
utils/index utils/index
src/index src/index

View File

@ -1,9 +0,0 @@
.. _standalone_searx.py:
===================================
``searx_extra/standalone_searx.py``
===================================
.. automodule:: searx_extra.standalone_searx
:members:

View File

@ -1,10 +1,10 @@
.. _searx_extra: .. _searxng_extra:
====================================================== ======================================================
Tooling box ``searx_extra`` for developers and users Tooling box ``searxng_extra`` for developers and users
====================================================== ======================================================
In the folder :origin:`searx_extra/` we maintain some tools useful for In the folder :origin:`searxng_extra/` we maintain some tools useful for
developers and users. developers and users.
.. toctree:: .. toctree::

View File

@ -0,0 +1,9 @@
.. _standalone_searx.py:
=====================================
``searxng_extra/standalone_searx.py``
=====================================
.. automodule:: searxng_extra.standalone_searx
:members:

18
manage
View File

@ -25,7 +25,7 @@ pylint.FILES() {
# These py files are linted by test.pylint(), all other files are linted by # These py files are linted by test.pylint(), all other files are linted by
# test.pep8() # test.pep8()
grep -l -r --include \*.py '^#[[:blank:]]*lint:[[:blank:]]*pylint' searx searx_extra tests grep -l -r --include \*.py '^#[[:blank:]]*lint:[[:blank:]]*pylint' searx searxng_extra tests
} }
YAMLLINT_FILES=() YAMLLINT_FILES=()
@ -328,11 +328,11 @@ data.all() {
data.useragents data.useragents
data.osm_keys_tags data.osm_keys_tags
build_msg DATA "update searx/data/ahmia_blacklist.txt" build_msg DATA "update searx/data/ahmia_blacklist.txt"
python searx_extra/update/update_ahmia_blacklist.py python searxng_extra/update/update_ahmia_blacklist.py
build_msg DATA "update searx/data/wikidata_units.json" build_msg DATA "update searx/data/wikidata_units.json"
python searx_extra/update/update_wikidata_units.py python searxng_extra/update/update_wikidata_units.py
build_msg DATA "update searx/data/currencies.json" build_msg DATA "update searx/data/currencies.json"
python searx_extra/update/update_currencies.py python searxng_extra/update/update_currencies.py
) )
} }
@ -341,7 +341,7 @@ data.languages() {
( set -e ( set -e
pyenv.activate pyenv.activate
build_msg ENGINES "fetch languages .." build_msg ENGINES "fetch languages .."
python searx_extra/update/update_languages.py python searxng_extra/update/update_languages.py
build_msg ENGINES "update update searx/languages.py" build_msg ENGINES "update update searx/languages.py"
build_msg DATA "update searx/data/engines_languages.json" build_msg DATA "update searx/data/engines_languages.json"
) )
@ -350,13 +350,13 @@ data.languages() {
data.useragents() { data.useragents() {
build_msg DATA "update searx/data/useragents.json" build_msg DATA "update searx/data/useragents.json"
pyenv.cmd python searx_extra/update/update_firefox_version.py pyenv.cmd python searxng_extra/update/update_firefox_version.py
dump_return $? dump_return $?
} }
data.osm_keys_tags() { data.osm_keys_tags() {
build_msg DATA "update searx/data/osm_keys_tags.json" build_msg DATA "update searx/data/osm_keys_tags.json"
pyenv.cmd python searx_extra/update/update_osm_keys_tags.py pyenv.cmd python searxng_extra/update/update_osm_keys_tags.py
dump_return $? dump_return $?
} }
@ -524,8 +524,8 @@ node.clean() {
} }
pygments.less() { pygments.less() {
build_msg PYGMENTS "searx_extra/update/update_pygments.py" build_msg PYGMENTS "searxng_extra/update/update_pygments.py"
if ! pyenv.cmd python searx_extra/update/update_pygments.py; then if ! pyenv.cmd python searxng_extra/update/update_pygments.py; then
build_msg PYGMENTS "building LESS files for pygments failed" build_msg PYGMENTS "building LESS files for pygments failed"
return 1 return 1
fi fi

View File

@ -31,7 +31,7 @@ def ahmia_blacklist_loader():
"""Load data from `ahmia_blacklist.txt` and return a list of MD5 values of onion """Load data from `ahmia_blacklist.txt` and return a list of MD5 values of onion
names. The MD5 values are fetched by:: names. The MD5 values are fetched by::
searx_extra/update/update_ahmia_blacklist.py searxng_extra/update/update_ahmia_blacklist.py
This function is used by :py:mod:`searx.plugins.ahmia_filter`. This function is used by :py:mod:`searx.plugins.ahmia_filter`.

View File

@ -383,7 +383,7 @@
width: 10rem; width: 10rem;
} }
/* /*
this file is generated automatically by searx_extra/update/update_pygments.py this file is generated automatically by searxng_extra/update/update_pygments.py
using pygments version 2.10.0 using pygments version 2.10.0
*/ */
.code-highlight .linenos { .code-highlight .linenos {

File diff suppressed because one or more lines are too long

View File

@ -383,7 +383,7 @@
width: 10rem; width: 10rem;
} }
/* /*
this file is generated automatically by searx_extra/update/update_pygments.py this file is generated automatically by searxng_extra/update/update_pygments.py
using pygments version 2.10.0 using pygments version 2.10.0
*/ */
.code-highlight .linenos { .code-highlight .linenos {

File diff suppressed because one or more lines are too long

View File

@ -383,7 +383,7 @@
width: 10rem; width: 10rem;
} }
/* /*
this file is generated automatically by searx_extra/update/update_pygments.py this file is generated automatically by searxng_extra/update/update_pygments.py
using pygments version 2.10.0 using pygments version 2.10.0
*/ */
.code-highlight .linenos { .code-highlight .linenos {

View File

@ -1,5 +1,5 @@
/* /*
this file is generated automatically by searx_extra/update/update_pygments.py this file is generated automatically by searxng_extra/update/update_pygments.py
using pygments version 2.10.0 using pygments version 2.10.0
*/ */

View File

@ -1,5 +1,5 @@
/* /*
this file is generated automatically by searx_extra/update/update_pygments.py this file is generated automatically by searxng_extra/update/update_pygments.py
using pygments version 2.10.0 using pygments version 2.10.0
*/ */

View File

@ -829,7 +829,7 @@ template {
border: inherit; border: inherit;
} }
/* /*
this file is generated automatically by searx_extra/update/update_pygments.py this file is generated automatically by searxng_extra/update/update_pygments.py
using pygments version 2.10.0 using pygments version 2.10.0
*/ */
.code-highlight .linenos { .code-highlight .linenos {

View File

@ -829,7 +829,7 @@ template {
border: inherit; border: inherit;
} }
/* /*
this file is generated automatically by searx_extra/update/update_pygments.py this file is generated automatically by searxng_extra/update/update_pygments.py
using pygments version 2.10.0 using pygments version 2.10.0
*/ */
.code-highlight .linenos { .code-highlight .linenos {

View File

@ -1,5 +1,5 @@
/* /*
this file is generated automatically by searx_extra/update/update_pygments.py this file is generated automatically by searxng_extra/update/update_pygments.py
using pygments version 2.10.0 using pygments version 2.10.0
*/ */

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
from sys import argv, exit from sys import argv, exit
if not len(argv) > 1: if not len(argv) > 1:

View File

@ -1,5 +1,11 @@
#!/usr/bin/env python #!/usr/bin/env python
"""Script to run searx from terminal. # lint: pylint
# SPDX-License-Identifier: AGPL-3.0-or-later
# (C) Copyright Contributors to the SearXNG project.
# (C) Copyright Contributors to the searx project (2014 - 2021)
"""Script to run SearXNG from terminal.
Getting categories without initiate the engine will only return `['general']` Getting categories without initiate the engine will only return `['general']`
@ -15,7 +21,7 @@ Example to use this script:
.. code:: bash .. code:: bash
$ python3 searx_extra/standalone_searx.py rain $ python3 searxng_extra/standalone_searx.py rain
Example to run it from python: Example to run it from python:
@ -31,7 +37,7 @@ Example to run it from python:
... engine_cs = list(searx.engines.categories.keys()) ... engine_cs = list(searx.engines.categories.keys())
... # load module ... # load module
... spec = importlib.util.spec_from_file_location( ... spec = importlib.util.spec_from_file_location(
... 'utils.standalone_searx', 'searx_extra/standalone_searx.py') ... 'utils.standalone_searx', 'searxng_extra/standalone_searx.py')
... sas = importlib.util.module_from_spec(spec) ... sas = importlib.util.module_from_spec(spec)
... spec.loader.exec_module(sas) ... spec.loader.exec_module(sas)
... # use function from module ... # use function from module
@ -56,25 +62,8 @@ Example to run it from python:
}, },
"suggestions": [...] "suggestions": [...]
} }
""" # noqa: E501 """ # pylint: disable=line-too-long
# pylint: disable=pointless-string-statement
'''
searx is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
searx is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with searx. If not, see < http://www.gnu.org/licenses/ >.
(C) 2016- by Alexandre Flament, <alex@al-f.net>
'''
# pylint: disable=wrong-import-position
import argparse import argparse
import sys import sys
from datetime import datetime from datetime import datetime

View File

@ -1,4 +1,5 @@
#!/usr/bin/env python #!/usr/bin/env python
# SPDX-License-Identifier: AGPL-3.0-or-later
# This script saves Ahmia's blacklist for onion sites. # This script saves Ahmia's blacklist for onion sites.
# More info in https://ahmia.fi/blacklist/ # More info in https://ahmia.fi/blacklist/

View File

@ -1,4 +1,5 @@
#!/usr/bin/env python #!/usr/bin/env python
# SPDX-License-Identifier: AGPL-3.0-or-later
import re import re
import unicodedata import unicodedata

View File

@ -1,4 +1,5 @@
#!/usr/bin/env python #!/usr/bin/env python
# SPDX-License-Identifier: AGPL-3.0-or-later
import json import json
from urllib.parse import urlparse from urllib.parse import urlparse

View File

@ -1,5 +1,6 @@
#!/usr/bin/env python #!/usr/bin/env python
# lint: pylint # lint: pylint
# SPDX-License-Identifier: AGPL-3.0-or-later
""" """
Update searx/data/external_bangs.json using the duckduckgo bangs. Update searx/data/external_bangs.json using the duckduckgo bangs.

View File

@ -1,4 +1,5 @@
#!/usr/bin/env python #!/usr/bin/env python
# SPDX-License-Identifier: AGPL-3.0-or-later
import json import json
import requests import requests

View File

@ -1,4 +1,5 @@
#!/usr/bin/env python #!/usr/bin/env python
# SPDX-License-Identifier: AGPL-3.0-or-later
# This script generates languages.py from intersecting each engine's supported languages. # This script generates languages.py from intersecting each engine's supported languages.
# #

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python #!/usr/bin/env python
# lint: pylint # lint: pylint
# pylint: disable=missing-function-docstring # SPDX-License-Identifier: AGPL-3.0-or-later
"""Fetch OSM keys and tags. """Fetch OSM keys and tags.
To get the i18n names, the scripts uses `Wikidata Query Service`_ instead of for To get the i18n names, the scripts uses `Wikidata Query Service`_ instead of for

View File

@ -1,4 +1,5 @@
#!/usr/bin/env python #!/usr/bin/env python
# SPDX-License-Identifier: AGPL-3.0-or-later
""" """
Update pygments style Update pygments style
@ -111,7 +112,7 @@ def get_output_filename(relative_name):
def get_css(cssclass, style): def get_css(cssclass, style):
result = f"""/* result = f"""/*
this file is generated automatically by searx_extra/update/update_pygments.py this file is generated automatically by searxng_extra/update/update_pygments.py
using pygments version {pygments.__version__} using pygments version {pygments.__version__}
*/\n\n""" */\n\n"""
css_text = HtmlFormatter(style=style).get_style_defs(cssclass) css_text = HtmlFormatter(style=style).get_style_defs(cssclass)

View File

@ -1,4 +1,7 @@
#!/usr/bin/env python #!/usr/bin/env python
# SPDX-License-Identifier: AGPL-3.0-or-later
# lint: pylint
# pylint: disable=missing-module-docstring
import json import json
import collections import collections
@ -51,5 +54,5 @@ def get_wikidata_units_filename():
return join(join(searx_dir, "data"), "wikidata_units.json") return join(join(searx_dir, "data"), "wikidata_units.json")
with open(get_wikidata_units_filename(), 'w') as f: with open(get_wikidata_units_filename(), 'w', encoding="utf8") as f:
json.dump(get_data(), f, indent=4, ensure_ascii=False) json.dump(get_data(), f, indent=4, ensure_ascii=False)

View File

@ -38,7 +38,7 @@ setup(
author='Adam Tauber', author='Adam Tauber',
author_email='asciimoo@gmail.com', author_email='asciimoo@gmail.com',
license='GNU Affero General Public License', license='GNU Affero General Public License',
packages=find_packages(exclude=["tests*", "searx_extra"]), packages=find_packages(exclude=["tests*", "searxng_extra"]),
zip_safe=False, zip_safe=False,
install_requires=requirements, install_requires=requirements,
extras_require={ extras_require={

View File

@ -8,7 +8,7 @@ from mock import Mock, patch
from nose2.tools import params from nose2.tools import params
from searx.search import SearchQuery, EngineRef, initialize from searx.search import SearchQuery, EngineRef, initialize
from searx_extra import standalone_searx as sas from searxng_extra import standalone_searx as sas
from tests import SearxTestCase from tests import SearxTestCase