mirror of
				https://github.com/searxng/searxng.git
				synced 2025-10-31 10:37:06 -04:00 
			
		
		
		
	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>
		
	
			
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			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/*/*/*',
 | |
|         ],
 | |
|     },
 | |
| )
 |