1
0
mirror of https://github.com/searxng/searxng.git synced 2024-11-21 19:51:44 +01:00
searxng/setup.py
Markus Heiser 7ab577a1fb [mod] Revision of the favicon solution
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>
2024-10-05 08:18:28 +02:00

78 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/*/*/*',
],
},
)