forked from Ponysearch/Ponysearch
7ab577a1fb
All favicons implementations have been documented and moved to the Python package: searx.favicons There is a configuration (based on Pydantic) for the favicons and all its components: searx.favicons.config A solution for caching favicons has been implemented: searx.favicon.cache If the favicon is already in the cache, the returned URL is a data URL [1] (something like `data:image/png;base64,...`). By generating a data url from the FaviconCache, additional HTTP roundtripps via the favicon_proxy are saved: favicons.proxy.favicon_url The favicon proxy service now sets a HTTP header "Cache-Control: max-age=...": favicons.proxy.favicon_proxy The resolvers now also provide the mime type (data, mime): searx.favicon.resolvers [1] https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
77 lines
2.3 KiB
Python
77 lines
2.3 KiB
Python
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
"""Installer for SearXNG package."""
|
|
|
|
from setuptools import setup, find_packages
|
|
|
|
from searx.version import VERSION_TAG, GIT_URL
|
|
from searx import get_setting
|
|
|
|
with open('README.rst', encoding='utf-8') as f:
|
|
long_description = f.read()
|
|
|
|
with open('requirements.txt') as f:
|
|
requirements = [ l.strip() for l in f.readlines()]
|
|
|
|
with open('requirements-dev.txt') as f:
|
|
dev_requirements = [ l.strip() for l in f.readlines()]
|
|
|
|
setup(
|
|
name='searxng',
|
|
python_requires=">=3.8",
|
|
version=VERSION_TAG,
|
|
description="A privacy-respecting, hackable metasearch engine",
|
|
long_description=long_description,
|
|
url=get_setting('brand.docs_url'),
|
|
project_urls={
|
|
"Code": GIT_URL,
|
|
"Issue tracker": get_setting('brand.issue_url')
|
|
},
|
|
classifiers=[
|
|
"Programming Language :: Python",
|
|
"Topic :: Internet",
|
|
"Topic :: Internet :: WWW/HTTP :: HTTP Servers",
|
|
"Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
|
|
'License :: OSI Approved :: GNU Affero General Public License v3'
|
|
],
|
|
keywords='metasearch searchengine search web http',
|
|
author='SearXNG dev team',
|
|
author_email='contact@searxng.org',
|
|
license='GNU Affero General Public License',
|
|
packages=find_packages(
|
|
include=[
|
|
'searx', 'searx.*', 'searx.*.*', 'searx.*.*.*',
|
|
]
|
|
),
|
|
install_requires=requirements,
|
|
extras_require={
|
|
'test': dev_requirements
|
|
},
|
|
entry_points={
|
|
'console_scripts': [
|
|
'searxng-run = searx.webapp:run',
|
|
'searxng-checker = searx.search.checker.__main__:main'
|
|
]
|
|
},
|
|
package_data={
|
|
'searx': [
|
|
'settings.yml',
|
|
'*.toml',
|
|
'*.msg',
|
|
'search/checker/scheduler.lua',
|
|
'data/*.json',
|
|
'data/*.txt',
|
|
'data/*.ftz',
|
|
'favicons/*.toml',
|
|
'infopage/*/*',
|
|
'static/themes/simple/css/*',
|
|
'static/themes/simple/css/*/*',
|
|
'static/themes/simple/img/*',
|
|
'static/themes/simple/js/*',
|
|
'templates/*/*',
|
|
'templates/*/*/*',
|
|
'translations/*',
|
|
'translations/*/*',
|
|
'translations/*/*/*',
|
|
],
|
|
},
|
|
)
|