mirror of
https://github.com/searxng/searxng.git
synced 2026-05-27 13:20:11 +02:00
[mod] typification of SearXNG: add new result type Image (#6142)
- Python class: searx/result_types/image.py - Jinja template: searx/templates/simple/result_templates/images.html - CSS (less) client/simple/src/less/result_types/image.less Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
committed by
Markus Heiser
parent
28ef4f7447
commit
c629dd4f3c
@@ -7,7 +7,6 @@
|
|||||||
@import "mixins.less";
|
@import "mixins.less";
|
||||||
@import "toolkit.less";
|
@import "toolkit.less";
|
||||||
@import "autocomplete.less";
|
@import "autocomplete.less";
|
||||||
@import "detail.less";
|
|
||||||
@import "animations.less";
|
@import "animations.less";
|
||||||
@import "embedded.less";
|
@import "embedded.less";
|
||||||
@import "info.less";
|
@import "info.less";
|
||||||
@@ -1165,3 +1164,4 @@ pre code {
|
|||||||
@import "result_types/code.less";
|
@import "result_types/code.less";
|
||||||
@import "result_types/paper.less";
|
@import "result_types/paper.less";
|
||||||
@import "result_types/file.less";
|
@import "result_types/file.less";
|
||||||
|
@import "result_types/image.less";
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
.. _result_types.image:
|
||||||
|
|
||||||
|
=============
|
||||||
|
Image Results
|
||||||
|
=============
|
||||||
|
|
||||||
|
.. automodule:: searx.result_types.image
|
||||||
@@ -1,4 +1,8 @@
|
|||||||
.. _result_types.mainresult:
|
.. _result_types.mainresult:
|
||||||
|
|
||||||
|
============
|
||||||
|
Main Results
|
||||||
|
============
|
||||||
|
|
||||||
.. autoclass:: searx.result_types._base.MainResult
|
.. autoclass:: searx.result_types._base.MainResult
|
||||||
:members:
|
:members:
|
||||||
|
|||||||
@@ -18,13 +18,13 @@ following types have been implemented so far ..
|
|||||||
main/code
|
main/code
|
||||||
main/paper
|
main/paper
|
||||||
main/file
|
main/file
|
||||||
|
main/image
|
||||||
|
|
||||||
The :ref:`LegacyResult <LegacyResult>` is used internally for the results that
|
The :ref:`LegacyResult <LegacyResult>` is used internally for the results that
|
||||||
have not yet been typed. The templates can be used as orientation until the
|
have not yet been typed. The templates can be used as orientation until the
|
||||||
final typing is complete.
|
final typing is complete.
|
||||||
|
|
||||||
- :ref:`template default` / :py:obj:`Result`
|
- :ref:`template default` / :py:obj:`Result`
|
||||||
- :ref:`template images`
|
|
||||||
- :ref:`template videos`
|
- :ref:`template videos`
|
||||||
- :ref:`template torrent`
|
- :ref:`template torrent`
|
||||||
- :ref:`template map`
|
- :ref:`template map`
|
||||||
|
|||||||
@@ -129,53 +129,6 @@ audio_src : uri,
|
|||||||
URL of an embedded ``<audio controls>``.
|
URL of an embedded ``<audio controls>``.
|
||||||
|
|
||||||
|
|
||||||
.. _template images:
|
|
||||||
|
|
||||||
``images.html``
|
|
||||||
---------------
|
|
||||||
|
|
||||||
The images are displayed as small thumbnails in the main results list.
|
|
||||||
|
|
||||||
title : :py:class:`str`
|
|
||||||
Title of the image.
|
|
||||||
|
|
||||||
thumbnail_src : :py:class:`str`
|
|
||||||
URL of a preview of the image.
|
|
||||||
|
|
||||||
resolution :py:class:`str`
|
|
||||||
The resolution of the image (e.g. ``1920 x 1080`` pixel)
|
|
||||||
|
|
||||||
|
|
||||||
Image labels
|
|
||||||
~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Clicking on the preview opens a gallery view in which all further metadata for
|
|
||||||
the image is displayed. Addition fields used in the :origin:`images.html
|
|
||||||
<searx/templates/simple/result_templates/images.html>`:
|
|
||||||
|
|
||||||
img_src : :py:class:`str`
|
|
||||||
URL of the full size image.
|
|
||||||
|
|
||||||
content: :py:class:`str`
|
|
||||||
Description of the image.
|
|
||||||
|
|
||||||
author: :py:class:`str`
|
|
||||||
Name of the author of the image.
|
|
||||||
|
|
||||||
img_format : :py:class:`str`
|
|
||||||
The format of the image (e.g. ``png``).
|
|
||||||
|
|
||||||
source : :py:class:`str`
|
|
||||||
Source of the image.
|
|
||||||
|
|
||||||
filesize: :py:class:`str`
|
|
||||||
Size of bytes in :py:obj:`human readable <searx.humanize_bytes>` notation
|
|
||||||
(e.g. ``MB`` for 1024 \* 1024 Bytes filesize).
|
|
||||||
|
|
||||||
url : :py:class:`str`
|
|
||||||
URL of the page from where the images comes from (source).
|
|
||||||
|
|
||||||
|
|
||||||
.. _template videos:
|
.. _template videos:
|
||||||
|
|
||||||
``videos.html``
|
``videos.html``
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ from .keyvalue import KeyValue
|
|||||||
from .code import Code
|
from .code import Code
|
||||||
from .paper import Paper
|
from .paper import Paper
|
||||||
from .file import File
|
from .file import File
|
||||||
|
from .image import Image
|
||||||
|
|
||||||
|
|
||||||
class ResultList(list[Result | LegacyResult], abc.ABC):
|
class ResultList(list[Result | LegacyResult], abc.ABC):
|
||||||
@@ -50,6 +51,7 @@ class ResultList(list[Result | LegacyResult], abc.ABC):
|
|||||||
Code = Code
|
Code = Code
|
||||||
Paper = Paper
|
Paper = Paper
|
||||||
File = File
|
File = File
|
||||||
|
Image = Image
|
||||||
MainResult = MainResult
|
MainResult = MainResult
|
||||||
Result = Result
|
Result = Result
|
||||||
Translations = Translations
|
Translations = Translations
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
"""Typification of the *image* results. Results of this type are rendered in
|
||||||
|
the :origin:`images.html <searx/templates/simple/result_templates/images.html>`
|
||||||
|
template.
|
||||||
|
|
||||||
|
.. autoclass:: Image
|
||||||
|
:members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
__all__ = ["Image"]
|
||||||
|
|
||||||
|
import typing as t
|
||||||
|
|
||||||
|
|
||||||
|
from ._base import MainResult
|
||||||
|
|
||||||
|
|
||||||
|
@t.final
|
||||||
|
class Image(MainResult, kw_only=True):
|
||||||
|
"""Result type suitable for displaying images.
|
||||||
|
|
||||||
|
The images are displayed as small thumbnails in the main results list.
|
||||||
|
Clicking on the preview opens a gallery view in which all further metadata
|
||||||
|
for the image is displayed."""
|
||||||
|
|
||||||
|
template: str = "images.html"
|
||||||
|
|
||||||
|
thumbnail_src: str = ""
|
||||||
|
"""URL of a preview of the image."""
|
||||||
|
|
||||||
|
resolution: str = ""
|
||||||
|
"""The resolution of the image (e.g. ``1920 x 1080`` pixel)"""
|
||||||
|
|
||||||
|
img_format: str = ""
|
||||||
|
"""The format of the image (e.g. ``png``)."""
|
||||||
|
|
||||||
|
source: str = ""
|
||||||
|
"""Source of the image."""
|
||||||
|
|
||||||
|
filesize: str = ""
|
||||||
|
"""Size of bytes in :py:obj:`human readable <searx.humanize_bytes>` notation
|
||||||
|
(e.g. ``1MB`` for ``1024*1024`` Bytes filesize)."""
|
||||||
Reference in New Issue
Block a user