pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/multimedia/moviebox-tui



Module Name:    pkgsrc
Committed By:   pin
Date:           Fri Sep 25 05:19:37 UTC 2026

Modified Files:
        pkgsrc/multimedia/moviebox-tui: Makefile cargo-depends.mk distinfo

Log Message:
multimedia/moviebox-tui: update to 0.1.24

Added

    Scoop Package Manager Distribution:
        Added native Scoop manifest in bucket/moviebox-tui.json supporting Windows x64 and arm64 architectures with automated hash verification.
        Automated Scoop manifest synchronization alongside Homebrew in .github/workflows/manifests.yml from release SHA256SUMS.
        Added InstallationEnvironment::Scoop detection in src/updater/apply.rs with update prompt shortcuts ([s]).
    Adaptive Stream Resolution Picker:
        Decomposed multi-bitrate DASH streams in src/providers/moviebox/adapt.rs into selectable quality rows (1080p, 720p, 480p).
        Threaded quality constraints to player builders, injecting --ytdl-format for mpv/IINA and --adaptive-maxheight for VLC.
    Custom Player Executable Path Configuration:
        Added vlc_path, mpv_path, and iina_path fields to Config in src/config.rs and src/tui/state.rs.
        Supported persisted custom player paths with automatic static path cache invalidation upon configuration updates.

Changed

    Streamlined Download Failure Notifications:
        Replaced verbose, truncated DASH download failure guidance with terse, actionable commands (Run: winget install yt-dlp.yt-dlp Gyan.FFmpeg).
        Removed misleading "Partial file preserved" prefix on pre-download failures in src/tui/app/download.rs.
        Scaled notification toast card width to the widest line across multi-line messages in src/tui/overlay.rs.
        Threaded selected stream resolution constraint (bestvideo[height<={h}]...) to yt-dlp in src/tui/app/download.rs, ensuring DASH downloads fetch the highlighted quality rather than forcing 
1080p.

Fixed

    Streaming Proxy & Sidecar Lifecycle:
        Enforced fail-closed target host verification in src/proxy.rs, rejecting requests with 403 Forbidden if target_host is missing or unverified.
        Detached proxy sidecar child handles via std::mem::forget, preventing defunct zombie process leaks on Unix.
        Removed 60s request deadline on upstream proxy client and added 128KB tokio::io::BufWriter for sustained chunk throughput.
        Deferred status line emission until manifest sizing is verified, returning 502 Bad Gateway on oversized payloads.
    Download Engine & Subprocess Safety:
        Re-canonicalized created download directories within background tasks in src/tui/app/download.rs, verifying real paths against download roots to prevent symlink traversal.
        Sanitized provider HTTP header keys and values passed to yt-dlp, stripping CRLF and control bytes to prevent header splitting.
        Removed global 60s transfer timeout and buffered single-connection file writes with 256KB tokio::io::BufWriter.
        Added fast-fail fallback to single-stream downloads when segment workers receive 200 OK responses.
        Sanitized download failure notices via DownloadError::user_message(), replacing raw error dumps with clean user guidance.
    Media Playback & Progress Tracking:
        Configured high-throughput stream buffering in src/player.rs for mpv and IINA (8s cushion, 120s readahead, 256MB demuxer cache) to eliminate rebuffering loops.
        Set 10s network cache floor and nearoptimal adaptive logic for VLC, preventing playback stalls on DASH jitter.
        Recorded elapsed watch progress for VLC code 1 exits and routed IINA through wall-clock progress tracking.
    TUI Layout & Modal Ergonomics:
        Deduplicated movie title repetition in Details screen streams table (src/tui/screens/details.rs), displaying source/CDN instead of identical media titles across rows.
        Streamlined download progress dock in src/tui/app/run.rs to a sleek, minimal header showing queue position and metrics without redundant title repetition.
        Isolated TV mode search dispatch in src/tui/app/requests.rs and balanced landing search input width to 48 columns.
        Auto-sized /settings modal height dynamically to category row counts and balanced modal width to 60 columns.
        Dimmed background deck items, suggestions, and provider pills when modal popups are active in src/tui/screens/home.rs.
        Reorganized Details screen footer action hierarchy, lowered split threshold to 80 columns, and synchronized mouse hitboxes.
        Factored ListState::offset() into Details pane row hitboxes for scrolled season and episode lists.
        Unified streams table highlight symbol under modals in src/tui/screens/details.rs, preventing table header and column horizontal shifts.
        Reset show_overview_modal on mode transitions in src/tui/app/tv.rs and top-aligned metadata paragraphs in src/tui/screens/details.rs.
        Streamlined TV playlist management popup to match Addons mode design with dynamic sizing and clean status indicators.
        Replaced Action::ToggleTvMode with idempotent Action::SwitchToTvMode and protected Ctrl+T/Ctrl+S against unintended flips.
    Network, Upstream & Concurrency:
        Bound parallel sibling provider queries in get_ext_captions (src/service.rs) with individual 8s timeouts to prevent stalls.
        Tracked in-pool cached stream tasks in request_tasks.streams in src/tui/app/requests.rs, ensuring active tasks cancel on navigation.
        Removed 30s deadline and added 3-attempt exponential backoff chunk retry for release binary downloads in src/updater/download.rs.
        Added 5 MiB ceiling to fetch_poster_bytes in src/service.rs and referenced dynamic CARGO_PKG_VERSION in APP_HTTP_USER_AGENT.

Changed

    Direct Download Triggering:
        Streamlined download initiation by starting stream and season downloads immediately upon pressing d on the details screen.
        Pruned intermediate confirmation dialogs, transient state flags (show_episode_download_confirm), and confirmation render helpers.
    Deep Module Architecture & Task Encapsulation:
        Encapsulated async task lifecycle in RequestTaskHandles (src/tui/app/mod.rs), consolidating cancellation, task spawning, and abort handle tracking behind dedicated dispatch methods.
        Encapsulated download destination directory creation, UNC normalization, and sandbox boundary checks into prepare_target_dir in src/tui/app/download.rs.
        Added render_modal_frame in src/tui/overlay.rs combining area clearing with Clear, inner rectangle calculation, and modal frame border rendering.
    Terminal Image Picker & Opener Caching:
        Consolidated fallback and custom cell size image picker creation in src/tui/app/run.rs through create_picker_with_font_size.
        Cached Android opener detection via std::sync::LazyLock in src/player.rs.
    CI/CD Quality Gates & Tooling:
        Added Linux musl target compilation verification in .github/workflows/ci.yml.
        Migrated CI test matrix to parallel, process-isolated cargo-nextest execution.
    Documentation Overhaul:
        Streamlined all user and technical guides in docs/ (players.md, controls.md, tv-mode.md, config.md, addons-mode.md, providers.md, cross-platform.md, cache.md, downloads.md), cutting redundant 
tables and dense text walls.
        Documented environment variables (MOVIEBOX_LOG, MOVIEBOX_IMAGE_PROTOCOL, MOVIEBOX_CELL_SIZE, NO_COLOR).


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 pkgsrc/multimedia/moviebox-tui/Makefile \
    pkgsrc/multimedia/moviebox-tui/cargo-depends.mk \
    pkgsrc/multimedia/moviebox-tui/distinfo

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/multimedia/moviebox-tui/Makefile
diff -u pkgsrc/multimedia/moviebox-tui/Makefile:1.1 pkgsrc/multimedia/moviebox-tui/Makefile:1.2
--- pkgsrc/multimedia/moviebox-tui/Makefile:1.1 Tue Sep 22 14:53:26 2026
+++ pkgsrc/multimedia/moviebox-tui/Makefile     Fri Sep 25 05:19:37 2026
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.1 2026/09/22 14:53:26 pin Exp $
+# $NetBSD: Makefile,v 1.2 2026/09/25 05:19:37 pin Exp $
 
-DISTNAME=      MovieBox-Tui-0.1.23
+DISTNAME=      MovieBox-Tui-0.1.24
 PKGNAME=       ${DISTNAME:tl}
 CATEGORIES=    multimedia
 MASTER_SITES=  ${MASTER_SITE_GITHUB:=mesamirh/}
@@ -13,7 +13,7 @@ LICENSE=      apache-2.0 OR mit
 
 .include "cargo-depends.mk"
 
-WRKSRC=                ${WRKDIR}/MovieBox-Tui-0.1.23
+WRKSRC=                ${WRKDIR}/MovieBox-Tui-0.1.24
 RUST_REQ=      1.90.0
 
 .include "cargo-depends.mk"
Index: pkgsrc/multimedia/moviebox-tui/cargo-depends.mk
diff -u pkgsrc/multimedia/moviebox-tui/cargo-depends.mk:1.1 pkgsrc/multimedia/moviebox-tui/cargo-depends.mk:1.2
--- pkgsrc/multimedia/moviebox-tui/cargo-depends.mk:1.1 Tue Sep 22 14:53:27 2026
+++ pkgsrc/multimedia/moviebox-tui/cargo-depends.mk     Fri Sep 25 05:19:37 2026
@@ -1,4 +1,4 @@
-# $NetBSD: cargo-depends.mk,v 1.1 2026/09/22 14:53:27 pin Exp $
+# $NetBSD: cargo-depends.mk,v 1.2 2026/09/25 05:19:37 pin Exp $
 
 CARGO_CRATE_DEPENDS+=  adler2-2.0.1
 CARGO_CRATE_DEPENDS+=  aho-corasick-1.1.5
Index: pkgsrc/multimedia/moviebox-tui/distinfo
diff -u pkgsrc/multimedia/moviebox-tui/distinfo:1.1 pkgsrc/multimedia/moviebox-tui/distinfo:1.2
--- pkgsrc/multimedia/moviebox-tui/distinfo:1.1 Tue Sep 22 14:53:27 2026
+++ pkgsrc/multimedia/moviebox-tui/distinfo     Fri Sep 25 05:19:37 2026
@@ -1,8 +1,8 @@
-$NetBSD: distinfo,v 1.1 2026/09/22 14:53:27 pin Exp $
+$NetBSD: distinfo,v 1.2 2026/09/25 05:19:37 pin Exp $
 
-BLAKE2s (MovieBox-Tui-0.1.23.tar.gz) = 86881f3e952e69b0f22cee46541d065f820a8828121242171e3515c6d2d0fd9c
-SHA512 (MovieBox-Tui-0.1.23.tar.gz) = 0b77de9277cfd3836c54f21c09d41523f1623b0ca57105899400cf0d04ce24ea73bcf9fac95f500308c58012957ef92340bb052ca3c6604d4e13940f6f393b25
-Size (MovieBox-Tui-0.1.23.tar.gz) = 475547 bytes
+BLAKE2s (MovieBox-Tui-0.1.24.tar.gz) = 79640a21aa43252fb5d445cf394fd0498d726b186e916668bd726715c6136b8a
+SHA512 (MovieBox-Tui-0.1.24.tar.gz) = 10c41b7e0901510332722b70b6351c08f5e39fe7adbd9f27ae97336296b85d8d0d70d90b36d20e7d85b1d661d84015bbd4fb010553fcdc75fae10d007876a095
+Size (MovieBox-Tui-0.1.24.tar.gz) = 470055 bytes
 BLAKE2s (adler2-2.0.1.crate) = 4d391e0fcde91c7435ee9a5503fee4a5346f549f1b45e482ce3e1e151d90f8f5
 SHA512 (adler2-2.0.1.crate) = 555b2b7ba6f8116acccd0bcd16ed34cc78162c81023cff31a8566ffcd456c03832089fca2d5b668ceaac4fe8f922d31aa9c487f226a36cace294ff4a219bd91d
 Size (adler2-2.0.1.crate) = 13366 bytes



Home | Main Index | Thread Index | Old Index