mirror of
https://github.com/searxng/searxng.git
synced 2026-05-26 12:50:14 +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 "toolkit.less";
|
||||
@import "autocomplete.less";
|
||||
@import "detail.less";
|
||||
@import "animations.less";
|
||||
@import "embedded.less";
|
||||
@import "info.less";
|
||||
@@ -1165,3 +1164,4 @@ pre code {
|
||||
@import "result_types/code.less";
|
||||
@import "result_types/paper.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:
|
||||
|
||||
============
|
||||
Main Results
|
||||
============
|
||||
|
||||
.. autoclass:: searx.result_types._base.MainResult
|
||||
:members:
|
||||
|
||||
@@ -18,13 +18,13 @@ following types have been implemented so far ..
|
||||
main/code
|
||||
main/paper
|
||||
main/file
|
||||
main/image
|
||||
|
||||
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
|
||||
final typing is complete.
|
||||
|
||||
- :ref:`template default` / :py:obj:`Result`
|
||||
- :ref:`template images`
|
||||
- :ref:`template videos`
|
||||
- :ref:`template torrent`
|
||||
- :ref:`template map`
|
||||
|
||||
@@ -129,53 +129,6 @@ audio_src : uri,
|
||||
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:
|
||||
|
||||
``videos.html``
|
||||
|
||||
@@ -35,6 +35,7 @@ from .keyvalue import KeyValue
|
||||
from .code import Code
|
||||
from .paper import Paper
|
||||
from .file import File
|
||||
from .image import Image
|
||||
|
||||
|
||||
class ResultList(list[Result | LegacyResult], abc.ABC):
|
||||
@@ -50,6 +51,7 @@ class ResultList(list[Result | LegacyResult], abc.ABC):
|
||||
Code = Code
|
||||
Paper = Paper
|
||||
File = File
|
||||
Image = Image
|
||||
MainResult = MainResult
|
||||
Result = Result
|
||||
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