diff --git a/src/tagstudio/core/media_types.py b/src/tagstudio/core/media_types.py index 83105755..5f286419 100644 --- a/src/tagstudio/core/media_types.py +++ b/src/tagstudio/core/media_types.py @@ -305,6 +305,7 @@ class MediaCategories: ".nef", ".nrw", ".orf", + ".r3d", ".raf", ".raw", ".rw2", diff --git a/src/tagstudio/qt/previews/renderer.py b/src/tagstudio/qt/previews/renderer.py index 30c06a40..c5a8715b 100644 --- a/src/tagstudio/qt/previews/renderer.py +++ b/src/tagstudio/qt/previews/renderer.py @@ -44,16 +44,16 @@ from tagstudio.renderers.archive import ( powerpoint_thumb, ) from tagstudio.renderers.audio import audio_album_thumb, audio_waveform_thumb -from tagstudio.renderers.blender import blender -from tagstudio.renderers.clip_studio import clip_thumb, pdn_thumb -from tagstudio.renderers.ebook import epub_cover -from tagstudio.renderers.font import font_long_thumb, font_short_thumb -from tagstudio.renderers.medibang_paint import mdp_thumb +from tagstudio.renderers.blender import blender_thumb +from tagstudio.renderers.clip_studio import clip_studio_thumb, pdn_thumb +from tagstudio.renderers.ebook import epub_thumb +from tagstudio.renderers.font import font_full_preview, font_small_thumb +from tagstudio.renderers.medibang_paint import medibang_paint_thumb from tagstudio.renderers.pdf import pdf_thumb -from tagstudio.renderers.raster_image import image_exr_thumb, image_raw_thumb, image_thumb +from tagstudio.renderers.raster_image import exr_image_thumb, raster_image_thumb, raw_image_thumb from tagstudio.renderers.source_engine import vtf_thumb from tagstudio.renderers.text import text_thumb -from tagstudio.renderers.vector_image import image_vector_thumb +from tagstudio.renderers.vector_image import vector_image_thumb from tagstudio.renderers.video import video_thumb if TYPE_CHECKING: @@ -805,7 +805,7 @@ class ThumbRenderer(QObject): if MediaCategories.is_ext_in_category( ext, MediaCategories.EBOOK_TYPES, mime_fallback=True ): - image = epub_cover(_filepath, ext) + image = epub_thumb(_filepath, ext) # Krita ======================================================== elif MediaCategories.is_ext_in_category( ext, MediaCategories.KRITA_TYPES, mime_fallback=True @@ -815,7 +815,7 @@ class ThumbRenderer(QObject): elif MediaCategories.is_ext_in_category( ext, MediaCategories.CLIP_STUDIO_PAINT_TYPES ): - image = clip_thumb(_filepath) + image = clip_studio_thumb(_filepath) # VTF ========================================================== elif MediaCategories.is_ext_in_category( ext, MediaCategories.SOURCE_ENGINE_TYPES, mime_fallback=True @@ -829,18 +829,18 @@ class ThumbRenderer(QObject): if MediaCategories.is_ext_in_category( ext, MediaCategories.IMAGE_RAW_TYPES, mime_fallback=True ): - image = image_raw_thumb(_filepath) + image = raw_image_thumb(_filepath) # Vector Images -------------------------------------------- elif MediaCategories.is_ext_in_category( ext, MediaCategories.IMAGE_VECTOR_TYPES, mime_fallback=True ): - image = image_vector_thumb(_filepath, adj_size) + image = vector_image_thumb(_filepath, adj_size) # EXR Images ----------------------------------------------- elif ext in [".exr"]: - image = image_exr_thumb(_filepath) + image = exr_image_thumb(_filepath) # Normal Images -------------------------------------------- else: - image = image_thumb(_filepath) + image = raster_image_thumb(_filepath) # Videos ======================================================= elif MediaCategories.is_ext_in_category( ext, MediaCategories.VIDEO_TYPES, mime_fallback=True @@ -871,12 +871,12 @@ class ThumbRenderer(QObject): ): if is_grid_thumb: # Short (Aa) Preview - image = font_short_thumb(_filepath, adj_size) + image = font_small_thumb(_filepath, adj_size) if image is not None: image = self._apply_overlay_color(image, UiColor.BLUE) else: # Large (Full Alphabet) Preview - image = font_long_thumb(_filepath, adj_size) + image = font_full_preview(_filepath, adj_size) # Audio ======================================================== elif MediaCategories.is_ext_in_category( ext, MediaCategories.AUDIO_TYPES, mime_fallback=True @@ -891,7 +891,7 @@ class ThumbRenderer(QObject): elif MediaCategories.is_ext_in_category( ext, MediaCategories.BLENDER_TYPES, mime_fallback=True ): - image = blender(_filepath) + image = blender_thumb(_filepath) # PDF ========================================================== elif MediaCategories.is_ext_in_category( ext, MediaCategories.PDF_TYPES, mime_fallback=True @@ -902,7 +902,7 @@ class ThumbRenderer(QObject): image = archive_thumb(_filepath, ext) # MDIPACK ====================================================== elif MediaCategories.is_ext_in_category(ext, MediaCategories.MDIPACK_TYPES): - image = mdp_thumb(_filepath) + image = medibang_paint_thumb(_filepath) # Paint.NET ==================================================== elif MediaCategories.is_ext_in_category(ext, MediaCategories.PAINT_DOT_NET_TYPES): image = pdn_thumb(_filepath) diff --git a/src/tagstudio/renderers/blender.py b/src/tagstudio/renderers/blender.py index 919c52eb..9e08347d 100644 --- a/src/tagstudio/renderers/blender.py +++ b/src/tagstudio/renderers/blender.py @@ -16,7 +16,7 @@ from tagstudio.renderers.vendored.blender_renderer import ( logger = structlog.get_logger(__name__) -def blender(filepath: Path) -> Image.Image | None: +def blender_thumb(filepath: Path) -> Image.Image | None: """Get an emended thumbnail from a Blender file, if a thumbnail is present. Args: diff --git a/src/tagstudio/renderers/clip_studio.py b/src/tagstudio/renderers/clip_studio.py index 1f930e93..a7c4ab4c 100644 --- a/src/tagstudio/renderers/clip_studio.py +++ b/src/tagstudio/renderers/clip_studio.py @@ -15,7 +15,7 @@ from PIL import Image logger = structlog.get_logger(__name__) -def clip_thumb(filepath: Path) -> Image.Image | None: +def clip_studio_thumb(filepath: Path) -> Image.Image | None: """Extract the thumbnail from the SQLite database embedded in a .clip file. Args: diff --git a/src/tagstudio/renderers/ebook.py b/src/tagstudio/renderers/ebook.py index acc0ab35..0dec5749 100644 --- a/src/tagstudio/renderers/ebook.py +++ b/src/tagstudio/renderers/ebook.py @@ -18,7 +18,7 @@ from tagstudio.renderers.raster_image import image_from_bytes logger = structlog.get_logger(__name__) -def epub_cover(filepath: Path, ext: str) -> Image.Image | None: +def epub_thumb(filepath: Path, ext: str) -> Image.Image | None: """Extracts the cover specified by ComicInfo.xml or first image found in the ePub file. Args: @@ -34,9 +34,9 @@ def epub_cover(filepath: Path, ext: str) -> Image.Image | None: with open_archive(filepath, ext) as archive: if "ComicInfo.xml" in archive.namelist(): comic_info = ET.fromstring(archive.read("ComicInfo.xml")) - im = cover_from_comic_info(archive, comic_info, "FrontCover") + im = _cover_from_comic_info(archive, comic_info, "FrontCover") if not im: - im = cover_from_comic_info(archive, comic_info, "InnerCover") + im = _cover_from_comic_info(archive, comic_info, "InnerCover") if not im: im = first_image_in_archive(archive) @@ -46,7 +46,7 @@ def epub_cover(filepath: Path, ext: str) -> Image.Image | None: return im -def cover_from_comic_info( +def _cover_from_comic_info( archive: Archive, comic_info: Element, cover_type: str ) -> Image.Image | None: """Extract the cover specified in ComicInfo.xml. diff --git a/src/tagstudio/renderers/font.py b/src/tagstudio/renderers/font.py index ce2f13f8..a48e033d 100644 --- a/src/tagstudio/renderers/font.py +++ b/src/tagstudio/renderers/font.py @@ -17,7 +17,7 @@ from tagstudio.qt.helpers.text_wrapper import wrap_full_text logger = structlog.get_logger(__name__) -def font_short_thumb(filepath: Path, size: int) -> Image.Image | None: +def font_small_thumb(filepath: Path, size: int) -> Image.Image | None: """Render a small font preview ("Aa") thumbnail from a font file. Args: @@ -78,7 +78,7 @@ def font_short_thumb(filepath: Path, size: int) -> Image.Image | None: return im -def font_long_thumb(filepath: Path, size: int) -> Image.Image | None: +def font_full_preview(filepath: Path, size: int) -> Image.Image | None: """Render a large font preview ("Alphabet") thumbnail from a font file. Args: diff --git a/src/tagstudio/renderers/medibang_paint.py b/src/tagstudio/renderers/medibang_paint.py index a973df28..d0beb1aa 100644 --- a/src/tagstudio/renderers/medibang_paint.py +++ b/src/tagstudio/renderers/medibang_paint.py @@ -16,7 +16,7 @@ from tagstudio.core.utils.types import unwrap logger = structlog.get_logger(__name__) -def mdp_thumb(filepath: Path) -> Image.Image | None: +def medibang_paint_thumb(filepath: Path) -> Image.Image | None: """Extract the thumbnail from a .mdp file. Args: diff --git a/src/tagstudio/renderers/raster_image.py b/src/tagstudio/renderers/raster_image.py index 654a2d15..3af649f1 100644 --- a/src/tagstudio/renderers/raster_image.py +++ b/src/tagstudio/renderers/raster_image.py @@ -31,7 +31,7 @@ register_heif_opener() os.environ["OPENCV_IO_ENABLE_OPENEXR"] = "1" -def image_thumb(filepath: Path) -> Image.Image | None: +def raster_image_thumb(filepath: Path) -> Image.Image | None: """Render a thumbnail for a standard image type. Args: @@ -51,7 +51,7 @@ def image_thumb(filepath: Path) -> Image.Image | None: return im -def image_exr_thumb(filepath: Path) -> Image.Image | None: +def exr_image_thumb(filepath: Path) -> Image.Image | None: """Render a thumbnail for a EXR image type. Args: @@ -82,7 +82,7 @@ def image_exr_thumb(filepath: Path) -> Image.Image | None: return im -def image_raw_thumb(filepath: Path) -> Image.Image | None: +def raw_image_thumb(filepath: Path) -> Image.Image | None: """Render a thumbnail for a RAW image type. Args: diff --git a/src/tagstudio/renderers/vector_image.py b/src/tagstudio/renderers/vector_image.py index dd4d117c..a0c2d2b3 100644 --- a/src/tagstudio/renderers/vector_image.py +++ b/src/tagstudio/renderers/vector_image.py @@ -19,7 +19,7 @@ from PySide6.QtSvg import QSvgRenderer logger = structlog.get_logger(__name__) -def image_vector_thumb(filepath: Path, size: int) -> Image.Image: +def vector_image_thumb(filepath: Path, size: int) -> Image.Image: """Render a thumbnail for a vector image, such as SVG. Args: diff --git a/src/tagstudio/renderers/vendored/blender_renderer.py b/src/tagstudio/renderers/vendored/blender_renderer.py index 1d83f13f..ae57091a 100644 --- a/src/tagstudio/renderers/vendored/blender_renderer.py +++ b/src/tagstudio/renderers/vendored/blender_renderer.py @@ -1,11 +1,7 @@ -#!/usr/bin/env python3 +# SPDX-FileCopyrightText: (c) 2017 The Blender Foundation # SPDX-FileCopyrightText: (c) TagStudio Contributors # SPDX-License-Identifier: GPL-3.0-only - -# - - ## This file is a modified script that gets the thumbnail data stored in a blend file diff --git a/src/tagstudio/renderers/vendored/probe.py b/src/tagstudio/renderers/vendored/probe.py index 450a3d28..632afa0f 100644 --- a/src/tagstudio/renderers/vendored/probe.py +++ b/src/tagstudio/renderers/vendored/probe.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: (c) 2022 Karl Kroening (kkroening) +# SPDX-FileCopyrightText: (c) 2022 Karl Kroening (kkroening) # SPDX-FileCopyrightText: (c) TagStudio Contributors # SPDX-License-Identifier: GPL-3.0-only # Vendored from ffmpeg-python and ffmpeg-python PR#790 by amamic1803 diff --git a/src/tagstudio/renderers/vendored/pydub/audio_segment.py b/src/tagstudio/renderers/vendored/pydub/audio_segment.py index fd7a4edd..1a04ecdf 100644 --- a/src/tagstudio/renderers/vendored/pydub/audio_segment.py +++ b/src/tagstudio/renderers/vendored/pydub/audio_segment.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: (c) 2022 James Robert (jiaaro) +# SPDX-FileCopyrightText: (c) 2022 James Robert (jiaaro), http://jiaaro.com # SPDX-FileCopyrightText: (c) TagStudio Contributors # SPDX-License-Identifier: GPL-3.0-only # Vendored from pydub diff --git a/src/tagstudio/renderers/vendored/pydub/utils.py b/src/tagstudio/renderers/vendored/pydub/utils.py index d5ba1356..58bc7957 100644 --- a/src/tagstudio/renderers/vendored/pydub/utils.py +++ b/src/tagstudio/renderers/vendored/pydub/utils.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: (c) 2011 James Robert, http://jiaaro.com +# SPDX-FileCopyrightText: (c) 2011 James Robert (jiaaro), http://jiaaro.com # SPDX-FileCopyrightText: (c) TagStudio Contributors # SPDX-License-Identifier: GPL-3.0-only # Vendored from pydub