Skip to content

Releases: PD-Codes/MediaForge

v1.5.0

Choose a tag to compare

@github-actions github-actions released this 09 Aug 13:11
46349c0
  • feat: merge catalogue entries that share a TMDB id into one row with a pill per source
  • feat: pick which source a merged row downloads from, with a preferred-source default
  • feat: show a live match count on each status chip and disable empty ones
  • feat: add lots of missing things
  • feat: add A-Z jump rail, status filters and sorting to the Catalogue page
  • feat: rebuild the catalogue action bar so it stays out of the way on phones
  • feat: give the catalogue details modal a backdrop header like the download modal
  • feat: let third-party catalogues supply their own source colour
  • feat: add a Catalogue page with the full A-Z list of AniWorld and SerienStream [BETA]
  • feat: wire filmo.to, 9anime and aniwaves through search, home feed, auto-sync and monitoring and the hole system
  • feat: add aniwaves.ru series provider with EchoVideo hoster extractor #24
  • feat: add 9anime.or.at series provider with MegaPlay hoster #24
  • feat: add Filmo (filmo.to) movie provider and mint-based hoster resolution [Feature - Provider]: Filmo.to #27
  • feat: reactions, revocable invites, and a working service worker
  • feat: "because you watched" row, and shared skeleton/empty states
  • feat: scoped API keys and a generated OpenAPI document
  • feat: real dry run, plus provider contract tests
  • feat: external worker host, and enforce library scoping
  • feat: wire rules, language profiles and maintenance windows into the download path; add error explanations, bulk actions and settings profiles
  • feat: operations, audit log, groups, rules and language profiles
  • feat: schema migrations, audit log, groups and worker heartbeats
  • feat: module-registered content sources reach the search bar
  • fix: some fixes
  • fix: use a pooled requests session for TMDB instead of a new TLS handshake per call
  • fix: correct the relative import depths in catalogue_worker — bulk queue and auto-sync never ran
  • fix: treat a merged row as queued, synced or selected when any of its sources is
  • fix: load app.js on the Catalogue page so the library check has anything to check against
  • fix: make the catalogue status chips filter for a category instead of hiding it
  • fix: recompile the German catalog — a merge reinstated an older .mo missing 14 strings
  • fix: lots of fixes
  • fix: card layout, module settings fields, dynamic search, cross-language duplicate detection; feat: empty-room reaper, gap dismiss, filter dropdowns
  • fix: render the missing per-row source label in the merged catalogue list
  • fix: show the A-Z rail drag bubble (offsetParent is null while hidden)
  • fix: lock body scroll while the catalogue details modal is open
  • fix: six reported bugs across home feed, module settings, design defaults and the module modal
  • fix: fix style in search suggestions
  • fix: worker status, module deactivation, full audit trail and UI defects
  • fix: worker status, module deactivation, full audit trail and UI defects
  • fix: some modal fixes from previous feat addings
  • fix: Show third-party modules' sites in the DNS test, not just UpTime
  • fix: make live module registration immune to concurrent requests
  • refactor: drop the dead in-memory catalogue cache now that the store owns it
  • refactor: split the 6939-line db.py into a domain package
  • perf: halve the catalogue id backfill's concurrency and delay its start by 90s
  • perf: cache the per-entry library check instead of rescanning on every keystroke
  • perf: throttle the catalogue list re-render on window resize
  • chore: refresh catalogue lists once a day instead of twice, on a background timer
  • docs: document register_catalogue's color parameter and the new page controls
  • style: fix bottom of overview cards
  • test: run the bulk worker for real instead of stubbing start_job
  • test: catch relative imports that point outside the package or at nothing
  • test: cover row merging, source picking and both urls of a merged pair
  • test: guard that app.js is loaded before catalogue.js

v1.4.3

Choose a tag to compare

@github-actions github-actions released this 04 Aug 19:54
  • feat: adding image hoster allow to module function
  • fix: some bugfixes in uptime monitoring system
  • fix: stop leaking the install id from the settings page
  • style: List View Fixes
  • style: wrap the library path in the download modal instead of clipping it
  • security: fix docker resolve the HIGH findings that failed the Trivy gate
  • security: fix some issues with certificates

v1.4.2

Choose a tag to compare

@github-actions github-actions released this 04 Aug 09:29
  • feat: adding new functions to start page 2, adding more functions to jellyfin/plex connectivity (incl. an "Your Profile"), fix some bugs, adding Feature from #26
  • feat: add PyPI dependency preflight before a docker code update
  • feat: add POST /api/update/docker-preflight (admin only)
  • feat: add detail.docker_code_update telemetry data point
  • feat: hide the release banner when that version is already installed
  • feat: offer a retry button and readable reasons when comic preparation fails
  • feat: announce versions with a release banner and a collapsible changelog box
  • feat: link release posts straight to the settings updates tab
  • feat: show a non-dismissible home page modal for important dev infos
  • fix: bound every generated SQL list to a fixed size & issues on Main Menu Shortcuts
  • fix: mobile list rows, integration badges, drop duplicate Auto-Sync path control
  • fix: many style fixes, separation for Instance and profile settings and a fix for #26
  • fix: refuse a docker code update on a dev install even when no channel is sent
  • fix: reject docker code updates on the dev channel and on read-only venvs
  • fix: re-read the cache sizes when the library settings tab is opened
  • fix: distinguish an unmeasurable cache from an empty one in the settings
  • fix: let cached covers revalidate so clearing the cache actually takes effect
  • fix: rebuild comic cover URLs after preparation instead of reusing a cached 404
  • fix: bump the cover cache-buster even when no card was marked stale
  • fix: send no-store on a cover that does not exist yet, for comics and books
  • fix: try every available extractor instead of only the first installed one
  • fix: fall back to another tool when the peek cannot list a comic archive
  • fix: forget circumstantial comic conversion failures after a minute, not an hour
  • fix: let an explicit prepare request retry instead of replaying a cached failure
  • fix: offer the prepare button when a comic conversion failed for a retryable reason
  • fix: clear cover spinners when preparation finishes and only show them where a cover is missing
  • fix: detect a finished comic conversion instead of polling a field the API never sends
  • fix: restart a lost comic conversion request instead of waiting out the deadline
  • fix: stop flagging comics as unprepared once their converted copy exists
  • fix: style fix for specific checkboxes
  • fix: key dev info read state on the server uid instead of the reusable row id
  • perf: prefer the extractor that last succeeded for a format
  • docs: document container updates in the README
  • docs: document dev info post types in the wiki (EN/DE)
  • style: adding flags to language buttons and correct styles. Also adding language as default for new accounts
  • style: rework the language availability pills
  • style: replace update overlay ring spinner with 9-square fade loader
  • test: cover the release-banner suppression rules
  • test: cover extractor fallback, promotion and failure-cache behaviour
  • security: per-install device credential and signed requests
  • security: backup atomicity, telemetry leaks, direct-link SSRF, HLS temp dir
  • security: reject pre-release and non-dotted target versions for docker code updates
  • security: validate the target version against a strict PEP 440 regex and resolve it server-side only
  • security: reject non-http(s) release URLs before they reach an href

v1.4.1

Choose a tag to compare

@github-actions github-actions released this 31 Jul 18:55

This should fix some Captcha issues

  • feat: let _ensure_xvfb report whether a display is actually available
  • fix: fail with an actionable message when no X display is available instead of an unreadable TargetClosedError
  • fix: guard the hanime browser launch for a missing display, its xvfb call was swallowed by a bare except
  • fix: report a missing display as a setup problem, not a crash
  • fix: handle a missing display in the interactive captcha solver, which had no generic error branch
  • fix: verify Xvfb actually stayed alive before promising a display
  • security: strip the Chromium launch command from telemetry payloads, it leaked provider domains including an adult source
  • security: log captcha browser failures by reason code instead of the raw patchright message

v1.4.0

Choose a tag to compare

@github-actions github-actions released this 31 Jul 17:45
  • feat: adding Homescreen 2.0 Banner
  • feat: add classify.is_transport_failure for the crash channel, sharing the unreachable-server tables
  • feat: add MegakinoUnavailable so routes classify by type instead of exception class names
  • feat: add a comic library with reader for all common archive formats
  • feat: index CBZ, CBT, CB7, CBR, CBA and PDF comics grouped into series and issues
  • feat: read series, issue number and credits from ComicInfo.xml, fall back to the filename
  • feat: add a comic reader with single and double-page spreads, zoom and fit modes
  • feat: queue a cover for every issue, series covers first
  • feat: give every comic its own downscaled cover, prepared visibly in the background
  • feat: extract a single page from CBR/CBA instead of repacking the whole archive
  • feat: downscale covers to 640px WebP (1.5 MB page -> 7 KB cover)
  • feat: repack CBR/CBA into a cached CBZ, never touching the original file
  • feat: cache comic covers on disk and drop cache entries when the source is gone
  • feat: add optional ComicVine enrichment, off by default and rate-limited below the API cap
  • feat: add a series/single-issue switch to the comic shelf
  • feat: wire comic_auto_prepare_all so it actually converts every issue
  • feat: point at the automatic preparation setting from the reader
  • feat: prepare comic covers in the background and show that it is happening
  • feat: extract one cover per series after a scan instead of never starting
  • feat: show preparation progress in the shelf header and on each card
  • feat: add a comics settings section for covers, caches and diagnostics
  • feat: add a setting for replacing originals after conversion, off and unwired
  • feat: split the library into one shelf per media kind
  • feat: add /library hub with per-kind tiles and live counters
  • feat: add media_kinds column to custom_paths, configurable in settings
  • feat: add library sub-menu to the sidebar, planned kinds shown disabled
  • feat: let modules register a shelf via register_thirdparty(section="library")
  • feat: TMDB backdrop as the title window's header image (in Modal / Beta)
  • feat: changes on Start Page 2, Hover Information, module changes with TMDB, integration of OpenSubtitles (free API Key needed)
  • feat: add flag.integrations.mediaplayer as its own data point, separate from mediascan
  • feat: add telemetry/classify.py as the single place cancellations and unreachable-server errors are classified
  • feat: wire up the flag./detail. data points that were registered but never emitted
  • feat: let build_play_event emit syncplay.room_content under its own consent toggle
  • feat: make the devInfo feature-usage dashboard registry-driven so unwired keys are visible
  • feat: jellyfin specific settings added, also some fixes in other settings
  • feat: optional absolute episode numbering from the "[Episode NNN]" title marker (aniworld)
  • feat: library => read PDF and EPUB in an overlay instead of a browser tab
  • feat: adding more library functions and fix: one progress bar for single-file jobs, working accent hex input, no search history on load
  • feat: Web Player Overhaul with more options, styles, etc. Also some bug fixes
  • fix: some fixed in ebook library
  • fix: stop reporting yt-dlp hoster errors as MediaForge crashes
  • fix: keep network transport failures out of the telemetry crash channel
  • fix: answer 502 instead of 500 in /api/episodes and /api/providers when megakino.to is unavailable
  • fix: stop filing telemetry crash reports for megakino.to outages on the remaining two routes
  • fix: answer 502 instead of 500 when megakino.to returns an unusable response
  • fix: stop filing a telemetry crash report for every megakino.to outage
  • fix: handle a truncated JSON body in /api/seasons, which had no upstream branch at all
  • fix: for megakino => guard against list-typed API fields in parse_meta
  • fix: accept a JSON array in megakino.to fields documented as plain text
  • fix: stop one malformed megakino.to record from failing the whole /api/series response
  • fix: fixing language
  • fix: use a comics-specific translation for "Series" so German reads Reihen, not Serien
  • fix: accept kind="comic" for reading bookmarks (was collapsed onto epub)
  • fix: group comics by folder and recognise the numbering styles real libraries use
  • fix: treat the parent folder as the series name, filename only for number and title
  • fix: accept an underscore or dot before a bare issue number
  • fix: poll the preparation status immediately instead of 2.5s late
  • fix: show the preparing spinner in the single-issue view too
  • fix: read a trailing "- 0001" as the issue number instead of a story title
  • fix: read a leading number when the title carries its own dash
  • fix: decode percent-escaped characters in filenames (H%f6lle -> Hölle)
  • fix: take the year out of brackets that also name a publisher
  • fix: detect bsdtar when it is installed as "tar", as on Windows 10+ and macOS
  • fix: make the whole poster card clickable on the comic and book shelves
  • fix: add keyboard activation and ARIA state to poster cards
  • fix: prepare comic covers on shelf load, not only during a scan
  • fix: queue cover preparation from /api/library?kind=comic so an already scanned library gets covers at all
  • fix: read the group preference lazily — calling into library_core.js at parse time aborted the page module and left LIB_KIND undefined
  • fix: backdrop and text fix in modal
  • fix: home panel storage view fix for Unix and Docker
  • fix: home panel hidden queue rows will counts visible only
  • fix: assign MEDIA_STATS_ENABLED in its own settings block (was a 500 on probe-worker saves)
  • fix: cockpit storage/limits, mobile heading overflow, empty hover drawer, calendar release dates and series detection
  • fix: queue keep the home page run strip live
  • fix: restore the default home-feed row order and record why the personal rows lead
  • fix: style the shared Start Page groups in the home page modal, which does not load settings_rows.css
  • fix: never report user-initiated cancellations as crashes or errors
  • fix: keep the console silent while the devInfo server is offline or in maintenance
  • fix: honour a download cancel in the CLI captcha solver instead of holding the browser open
  • fix: reset the push-notification fan-out scope in a finally block
  • fix: report flag.self_update after the restart so it survives the process exit
  • fix: only arm the v1 API telemetry throttle when an event was actually sent
  • fix: some fixes in start page order
  • fix: repair Kindle markup, page geometry, chapters and typography
  • fix: change aniworld episode changer to correct season, but leave number absolute
  • fix: some fixes and addings
  • fix: some fixes in book reader
  • fix: settings => put Layout first on the Start Page tab and style its subheadings
  • fix: some fixes in module management, startpage 2 and some more
  • fix: Modules => make CineInfo sources a first-class module capability
  • fix: Web Player => a double tap must not leave fullscreen
  • fix: Fix a crash when uninstalling a module (also causing an lint error)
  • fix: some bug fixes in hanime style, seerr poster responsive, etc.
  • fix: fix hanime issues
  • fix: hanime search backend moved, and unblock its poster CDN
  • fix: sync the German catalogue and wrap the hardcoded strings
  • fix: a successful single-episode retry is no longer booked as failed
  • fix: harden the transcoder, the workers and numeric settings
  • fix: vendor hls.js instead of loading it from a CDN
  • fix: watchdog no longer aborts long downloads
  • fix: validate library paths before queueing an upscale
  • fix: encoding/upscaling no longer deletes the original before the move
  • fix: upscale and encoding queue doesnt run at the same time anymore
  • refactor: generalise _genres_str into a shared _text coercion helper
  • refactor: drop the comic_auto_covers toggle, covers are never optional
  • refactor: split library.js/.css into core + video + books modules
  • perf: parse the megakino API response once instead of decoding the body twice
  • perf: omit empty fields from cached issue rows
  • perf: swap in late covers in place instead of repainting the grid
  • perf: skip the ffprobe pass on book-only paths and the book pass on video-only ones
  • perf: drop the other kind's payload from /api/library responses
  • perf: cache the telemetry consent/enabled_keys read instead of hitting SQLite per event
  • perf: move SyncPlay session telemetry out of the room and registry locks
  • perf: bound the image proxy and collapse concurrent fetches
  • perf: pause polling in hidden tabs, add a queue badge endpoint
  • perf: SQLite pragmas, batched calendar writes and the missing indexes
  • chore: uv lock for py7zr
  • chore: drop the orphaned German msgid left behind by the start page rewording
  • chore: fix .dockerignore, drop dead folders, complete the docs
  • chore: add .gitattributes to fix line-ending noise
  • docs: describe all three classification consumers in classify.py's module docstring
  • docs: describe the folder-per-series layout in the README and the empty state
  • docs: describe the comic library in the README
  • docs: describe the per-media-kind libraries in the README
  • docs: Update Readme and pyproject.toml
  • docs: record that third-party modules never get a telemetry interface
  • docs: document what telemetry never reports in PRIVACY.md and README
  • docs: state the PR title and language rules in the PR template
  • style: theme tokens for status colours, checkbox class, missing breakpoints
  • test: guard the page-module/core load-order contract for all three shelves
  • test: cover crash-safe publishing, hanime cards and the retry plan
  • test: add a pytest suite and wire it into CI
  • build: add py7zr for .cb7 and libarchive-tools to the Docker image for .cbr
  • ci: change Triage for modules
  • ci: consolidate workflows and cut the build minutes
  • ci: pin third-party actions to SHAs and harden the workflows
  • security: keep response content out of the megakino error message, size and position only
  • security: bound th...
Read more

v1.3.1

Choose a tag to compare

@github-actions github-actions released this 27 Jul 09:28
  • fix: emergency fix => upscaling and encoding error fix and bump to version 1.3.1
  • docs: Remove 'Other Cool Projects' section from README

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 26 Jul 22:46
  • feat: complete overhaul of application and many fixes and changes
  • feat: download subtitles from stream too into mkv file
  • feat: new statistics page, download duplicate system (better quality download, audio merge), and some bug fixes as usual
  • feat: Dev Version is now able to install modules for the future version
  • feat: adding themes (templates) to module store and change style of favorites
  • feat: add compact view and better bulk edit for auto-sync
  • feat: adding more general system information to telemetry for better analysis
  • feat: Overhaul design of Auto-Sync Section
  • fix: remove deleted .env.example from pyinstaller spec (build issues)
  • fix: upscaling issue fix
  • fix: watcher system issues fixed (I hope)
  • fix: library scan in duplicate check
  • fix: subtitle download fixes for every extractor
  • fix: some fixes in statistics
  • fix: download duplicate better quality fix from previous commit
  • fix: .env migration to db (there was something missing)
  • fix: Mobile View: When Menu open, the main page will not be scrollable anymore
  • fix: fix download system with language maps to one central map instead of multiple ones, also adding information and buttons for developers how they can create and upload own modules/templates
  • fix: Fix in Module store after installing an package
  • fix: style change of advanced search, some bug fixes (image cache, download abort, rest of files after download abort cleanup, captcha issue after download abort)
  • fix: module store fix with unsigned modules
  • fix: some missing files in last commit
  • fix: workflow fixes
  • fix: add missing translation
  • fix: complete truncated api_autosync_batch endpoint
  • fix: module store doesnt show update
  • fix: auto-sync css issues fixed and batch selection function
  • chore: update CI workflows (scans, build checks, PR helpers) and improve PR template
  • docs: add webplate to readme
  • style: fix checkbox style of "Default for Sites"
  • style: Theme Module padding was not set correctly
  • style: fix media library toolbar to have an better border
  • ci: disable trivy secret scanning to prevent false positives from dependencies
  • ci: add cross-platform build checks, security scans (CodeQL, Trivy) and PR validation workflows

v1.2.5

Choose a tag to compare

@github-actions github-actions released this 20 Jul 21:05
4e7f58e
  • feat: Add System Tray and Autostart support
  • feat: show total queue count on main sidebar item
  • feat: adding more routes for modular, included now: Provider, Mirrors, notifications, uptime integration (provider)
  • feat: new integration for Jellyfin - NFO File Provider
  • fix: change notifications from german to english
  • fix: 'NoneType' object is not callable
  • fix: change seerr modals to use default ones
  • fix: some more telemetry stuff for better debugging errors
  • fix: [Bug]: NVENC detection fails: hardware probe uses undersized test frame (128x128)
  • fix: mediaforge settings title
  • fix: add missind card for encoding in settings

v1.2.4

Choose a tag to compare

@github-actions github-actions released this 17 Jul 22:49
  • revert: 4 New providers (due performance issues)
  • feat: 4 New providers (WARNING NOT FULLY WORKING)
  • feat: adding cineinfo orchestrator to modules
  • feat: backup function added
  • feat: Library Duplicate Check
  • fix: uptime monitor fixes
  • fix: Fix Docker Environment with Playwright, that chromium isnt able to write its database because of security locks
  • draft fix: some fixes in new providers (not finished)
  • fix: some fixes and style changes
  • fix: secure custom paths deletion protection and prevent silent fallback
  • fix: fixes in styles, Seerr Modals (provider check), backup (backup without password now possible), Confirmation Modals and some more
  • fix: adding real issue comment and telemetry info
  • fix: test fix of captcha resolve
  • fix: fix app restart logic when app is started directly in console with pip
  • docs: fix image
  • docs: update readme
  • style: rework of Menu Style
  • style: restyled settings and integrations section
  • revert: removing the 4 providers due to too many bugs

v1.2.3

Choose a tag to compare

@github-actions github-actions released this 14 Jul 20:27
390c4b3
  • feat: add ALTCHA proof-of-work captcha support to solver
  • feat: add optional debug logging for captcha browser console/network errors
  • feat: send telemetry event when captcha solving times out or fails
  • feat: adding module sensitive settings and dependency installation
  • feat: change module store unverified button to an list where also not checked modules are listed (Attention)
  • fix: delay first Turnstile click to let widget settle before interacting
  • fix: only steal window focus in visible/manual captcha mode, never in background
  • fix: adding button and security routes to install module dependencies
  • fix: docker fix for xvfb cleanup
  • fix: fix some detection settings