Video: - Replace Qt Multimedia with mpv via python-mpv + OpenGL render API - Hardware-accelerated decoding, frame-accurate seeking, proper EOF detection - Translucent overlay controls in both preview and popout - LC_NUMERIC=C for mpv locale compatibility Popout viewer (renamed from slideshow): - Floating toolbar + controls overlay with auto-hide (2s) - Window auto-resizes to content aspect ratio on navigation - Hyprland: hyprctl resizewindowpixel + keep_aspect_ratio prop - Window geometry persisted to DB across sessions - Smart F11 exit sizing (60% monitor, centered) Preview toolbar: - Bookmark, Save, BL Tag, BL Post, Popout buttons above preview - Save opens folder picker menu, shows Save/Unsave state - Blacklist actions have confirmation dialogs - Per-tab button visibility (Library: Save + Popout only) - Cross-tab state management with grid selection clearing Search & pagination: - SearchState dataclass replaces 8 scattered attrs + defensive getattr - Media type filter dropdown (All/Animated/Video/GIF/Audio) - API retry with backoff on 429/503/timeout - Infinite scroll dedup fix (local seen set per backfill round) - Prev/Next buttons hide at boundaries, "(end)" status indicator Grid: - Rubber band drag selection - Saved/bookmarked dots update instantly across all tabs - Library/bookmarks emit signals on file deletion for cross-tab sync Settings & misc: - Default site option - Max thumbnail cache setting (500MB default) - Source URLs clickable in info panel - Long URLs truncated to prevent splitter blowout - Bulk save no longer auto-bookmarks
25 lines
501 B
TOML
25 lines
501 B
TOML
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "booru-viewer"
|
|
version = "0.2.0"
|
|
description = "Local booru image browser with Qt6 GUI"
|
|
requires-python = ">=3.11"
|
|
dependencies = [
|
|
"httpx[http2]>=0.27",
|
|
"Pillow>=10.0",
|
|
"PySide6>=6.6",
|
|
"python-mpv>=1.0",
|
|
]
|
|
|
|
[project.scripts]
|
|
booru-viewer = "booru_viewer.main_gui:main"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["booru_viewer"]
|
|
|
|
[tool.hatch.build.targets.sdist]
|
|
include = ["booru_viewer"]
|