Commit Graph
41 Commits
Author SHA1 Message Date
LeoVasanko f9002b19a2 Require system .NET SDK; cache vpk/ffmpeg persistently
release / gui-build (linux, bash) (push) Failing after 50s
release / gui-build (macos, bash) (push) Successful in 1m39s
release / gui-build (windows, cmd) (push) Failing after 1m40s
Per-build downloads of the dotnet runtime (~80 MB) were slow and flaky
(IncompleteRead killed a CI run). The .NET SDK is now a build-host
prerequisite; vpk and ffmpeg download once into a user-level cache
(~/.cache/mediahive-build, %LOCALAPPDATA%\mediahive-build) that
survives the per-run build dir.
2026-09-23 00:28:11 +00:00
LeoVasanko 37f786f5ed Add welcome page text to macOS pkg installer
release / gui-build (linux, bash) (push) Failing after 51s
release / gui-build (macos, bash) (push) Successful in 1m43s
release / gui-build (windows, cmd) (push) Successful in 1m48s
Tells the user to allow the permission prompts macOS may show during
install and first launch. License page remains absent; Destination
Select was already stripped, leaving Introduction, Install, Summary.
2026-09-23 00:17:51 +00:00
LeoVasanko c64f54fe0f Strip Destination Select page from macOS pkg installer
release / gui-build (linux, bash) (push) Successful in 55s
release / gui-build (windows, cmd) (push) Successful in 1m39s
release / gui-build (macos, bash) (push) Successful in 1m36s
Collapse the Velopack-generated distribution.xml to a single install
domain so macOS Installer skips Destination Select, leaving Apple's
minimum pages (Introduction, Install, Summary). Welcome/license/readme/
conclusion pages are already absent (no --inst* options passed).
2026-09-23 00:12:32 +00:00
LeoVasanko bb88ab7d98 Fix tarfile.open call in dotnet bootstrap (fileobj=)
release / gui-build (linux, bash) (push) Successful in 1m4s
release / gui-build (windows, cmd) (push) Successful in 1m43s
release / gui-build (macos, bash) (push) Successful in 1m42s
2026-09-22 23:52:52 +00:00
LeoVasanko 303aabc181 Velopack packaging on all platforms with in-app auto-updates
release / gui-build (linux, bash) (push) Failing after 50s
release / gui-build (macos, bash) (push) Successful in 1m44s
release / gui-build (windows, cmd) (push) Successful in 1m48s
- macOS: .pkg installer replaces the DMG; Linux: .AppImage replaces the ZIP
- winmain runs velopack.App() first (proper hook handling) and checks for
  updates in the background; downloads are applied on next launch
- release.py uploads the vpk update feed (releases.<channel>.json, nupkgs)
  so GiteaSource finds updates on the latest release
- guibuild.py bootstraps a .NET runtime into build/dotnet when the runner
  host lacks one
2026-09-22 23:50:50 +00:00
LeoVasanko e8d2c5773a Exit fast on Velopack hook args; name ZIP artifact win64-portable
release / gui-build (macos, bash) (push) Successful in 1m14s
release / gui-build (linux, bash) (push) Successful in 1m13s
release / gui-build (windows, cmd) (push) Successful in 1m39s
Velopack runs the app with --veloapp-install/-updated/-uninstall during
those operations; without fast-exit handling the full GUI booted
mid-install (also clobbering config via the first-run setup flow) and
the installer reported hook errors. The post-install launch has no hook
args and still starts the app normally.
2026-09-22 23:28:19 +00:00
LeoVasanko 59d2f157eb Probe scoop dotnet-sdk path explicitly (runner service has stale env)
release / gui-build (linux, bash) (push) Successful in 1m3s
release / gui-build (macos, bash) (push) Successful in 1m5s
release / gui-build (windows, cmd) (push) Successful in 1m34s
2026-09-22 23:14:08 +00:00
LeoVasanko 3377702e98 Build Windows installer with Velopack instead of WiX
release / gui-build (linux, bash) (push) Successful in 1m13s
release / gui-build (windows, cmd) (push) Failing after 1m34s
release / gui-build (macos, bash) (push) Successful in 1m13s
vpk runs on the machine's modern .NET runtime (WiX 3.11's .NET Framework
shim fails under the SYSTEM account) and produces a per-user Setup.exe
that needs no runtime on end-user machines.
2026-09-22 23:11:30 +00:00
LeoVasanko c59040ce52 Surface WiX tool stdout/stderr on MSI build failure
release / gui-build (linux, bash) (push) Successful in 1m11s
release / gui-build (windows, cmd) (push) Failing after 1m31s
release / gui-build (macos, bash) (push) Failing after 11m44s
2026-09-22 22:38:14 +00:00
LeoVasanko 734b7993a2 Add per-user MSI installer for Windows; strip Mark-of-the-Web in frozen ZIP builds
release / gui-build (linux, bash) (push) Successful in 1m12s
release / gui-build (macos, bash) (push) Successful in 1m14s
release / gui-build (windows, cmd) (push) Failing after 1m31s
Files extracted from a downloaded ZIP carry a Zone.Identifier stream and the
.NET Framework CLR refuses to load such assemblies, so pythonnet failed with
'Failed to resolve Python.Runtime.Loader.Initialize'. MSI-installed files have
no MOTW; the winmain strip fixes the ZIP distribution.
2026-09-22 22:28:16 +00:00
LeoVasanko b01e8a5c3d Exclude Python.Runtime.dll from UPX (packing corrupts CLR metadata)
release / gui-build (macos, bash) (push) Successful in 1m14s
release / gui-build (linux, bash) (push) Successful in 1m13s
release / gui-build (windows, cmd) (push) Successful in 1m21s
2026-09-22 22:00:57 +00:00
LeoVasanko 5300fd0c9c Bundle PyQtWebEngine on macOS and ship the app as a DMG
release / gui-build (linux) (push) Successful in 1m13s
release / gui-build (macos) (push) Successful in 1m15s
release / gui-build (windows) (push) Failing after 1s
pywebview[qt] no longer depends on PyQtWebEngine, so fresh CI builds
produced a macOS app without its Chromium engine that crashed on launch.
Package MediaHive.app as a compressed DMG instead of zipping the raw
onedir folder; release.py accepts .dmg artifacts.
2026-09-22 04:07:30 +00:00
LeoVasanko ff10c86e84 Add Gitea Actions cross-platform release workflow
Build the GUI app on macos/windows/linux host runners on v* tag pushes.
All platform jobs converge on one Gitea release; release.py now reuses an
existing release, skips duplicate assets, and supports --no-dist so only
the linux job uploads the wheel/sdist.
2026-09-22 03:54:05 +00:00
LeoVasanko c11cbd4250 Fix console encoding crash in release script summary output 2026-09-10 21:33:43 +00:00
LeoVasanko d1f1b9ecb8 Parallel adaptive discovery walk; fix PyInstaller tracerite data files
- scanner: replace serial DFS with 16-worker priority work-queue, one
  scandir round trip per directory (DirEntry mtimes), per-subtree
  exponential backoff (persisted in scan-state.json v2), leaf candidates
  gated on max(dir, newest video file) mtime so growing downloads and
  lazy NTFS dir mtimes are handled
- spec: collect_data_files('tracerite') so style.css/script.js ship
- guibuild: tolerate non-UTF-8 console when printing status glyphs
- ruff format pass on indexer.py/index_store.py (hook requirement)
2026-09-09 03:37:31 +00:00
LeoVasanko 26af7c633b Remove rtorrent scripting from the repository. 2026-09-09 02:14:11 +00:00
LeoVasanko c072f15cb5 Make helper scripts directly executable with uv run shebang
guibuild.py and release.py use the project environment; rtorrent-manager.py
is standalone and declares its own dependency via uv script metadata.
2026-09-09 02:08:49 +00:00
LeoVasanko c2776d2e2d fastapi-vue-setup 1.4.1 upgrade, replaces our own access logging and more. 2026-09-03 12:19:50 +00:00
LeoVasanko 76cd0224de Attempt build fix to allow running from git. 2026-06-02 22:45:09 +00:00
LeoVasanko 836a563897 Pathlib fixes. Remaining errors to suppression for now. 2026-05-25 02:42:38 +00:00
LeoVasanko 17c5a47936 Misc. fixes #2. 2026-05-25 02:37:51 +00:00
LeoVasanko 6646068adc Line too long errors 2026-05-25 02:27:39 +00:00
LeoVasanko 6115a3ff0a Misc. ruff fixes. 2026-05-25 02:22:55 +00:00
LeoVasanko 3768967e7d BLE001 except Exception replaced for more specific types. 2026-05-25 02:19:41 +00:00
LeoVasanko 54a4b57230 Unsafe fixes. 2026-05-25 02:12:31 +00:00
LeoVasanko 0e5251ab91 Ruff automatic fixes and formatting. 2026-05-25 01:57:17 +00:00
LeoVasanko be140bc286 Simplify startup flow and defer media root activation 2026-05-22 16:30:19 +00:00
LeoVasanko 33b59bbace Improve mac startup splash UX and logo rendering 2026-05-22 15:36:38 +00:00
LeoVasanko 8d3de512eb Rename the winbuild script to guibuild.py. 2026-05-22 03:09:25 +00:00
LeoVasanko 0660b4e9d2 Use ffmpeg parsing for media probe metadata and remove ffprobe bundling 2026-05-22 03:08:36 +00:00
LeoVasanko 7eb81877fd Add Qt mac backend support, Safari/Chrome playback fixes, and AV1 reel updates 2026-05-22 01:39:28 +00:00
LeoVasanko eeed9f3ef7 Implement Safari video startup fixes and range streaming support 2026-05-21 04:06:44 +00:00
LeoVasanko e40c953617 Movie details layout
- Grid layout: poster/releases left, cast spanning center+right top, versions center, metadata right
- Cast gallery moved to wider center column with photo-card grid (2:3 aspect, text overlay)
- Full cast now stored in index (removed 10-item truncation)
- Cast gender field added to metadata model, TMDB client, indexer, and frontend types
- Gender-specific cast placeholder SVGs (male suit silhouette, female portrait)
- Synopsis text moved from left poster box into right metadata card
- Format badge backgrounds made opaque (res/qual/codec/audio solid colors)
- Releases list moved under poster image in left column
- Cast photo and character font sizes reduced for compact display
2026-05-21 00:43:09 +00:00
LeoVasanko c3f5ac2f6e Add Gitea release script
- Add Windows download link to README
2026-05-14 05:02:51 +00:00
LeoVasanko 024ab84f9e Version numbering from git tags. 2026-05-14 04:34:19 +00:00
LeoVasanko 5063bbc8c8 Add Windows GUI
- mediahive/winmain.py: pywebview launcher with threaded uvicorn backend,
- scripts/winbuild.py: build script — downloads ffmpeg, runs PyInstaller, makes zip
- mediahive/config.py: TOML config persistence in %APPDATA%/mediahive/
- server.py: POST /api/change-folder switches media root
- showreel.py: suppress console windows for ffmpeg subprocesses on Windows
- protocol.py: add ChangeFolderRequest struct
2026-05-14 04:27:46 +00:00
LeoVasanko cd2b757f48 fastapi-vue-setup 0.9.2 2026-02-11 01:40:32 +00:00
LeoVasanko d24f9bdc77 Update fastapi-vue-setup. 2026-02-10 21:46:40 +00:00
LeoVasanko e2962953f2 Hivescan made continuously scanning, offer API, that mediahive can connect to and get realtime updates. 2026-02-07 08:28:37 +00:00
LeoVasanko daf4eb5e0c Merge mediahive. 2026-02-07 00:21:32 +00:00
LeoVasanko 658d198659 Initial commit of hivescan. 2026-02-03 19:43:14 +00:00