github Moonfin-Client/Plugin 2.3.0
v2.3.0

3 hours ago

Moonbase 2.3.0 Release Notes github

Moonbase 2.3.0 is the server side of Moonfin 2.6.0. It adds the backend for anime markers, scores recommendations on the server, and on Jellyfin 12 hands that scoring to Jellyfin itself so every client gets it. It also fixes message text that could wipe every plugin setting on a restart, which on some servers ended with the plugin being removed. Moonbase now keeps a backup of its settings with a restore button, its scheduled tasks actually run on Jellyfin 10.11 and 12, and custom home rows refresh on their own. The admin defaults page picks up everything the new clients added, and the bundled web client moves up to Moonfin 2.6.0 with three new detail screen styles, Kids Mode, native Achievement Badges plugin support, and a redone Live TV guide.

Features

Anime Markers

  • A new Anime Filler & Recap Markers section on the Integrations tab. It's off by default and needs no API key.
  • Pick the libraries to look in, or leave them all unchecked to cover every library. A switch treats everything in the selected libraries as anime, for libraries that hold nothing else.
  • Filler, mixed and canon come from the Anime Filler List, and recaps come from Tenrai, a MyAnimeList episode mirror. Moonbase finds each show's MyAnimeList id from its provider ids, then the Fribb anime lists mapping, then an AniList search.
  • Subbed and Dubbed come from the audio tracks in your own files, with no internet needed. Episodes and seasons, movies, and dual audio files shown as Subbed/Dubbed each have their own toggle.
  • Choose where the pills sit, below the runtime, beside it, or on the thumbnail, and which ones show. The two canon pills start off.
  • A daily Moonfin Anime Markers Sync task runs at 4:00. It stops each run after 45 minutes and waits between requests so the sources aren't hammered, which means a big library can take a few nights to finish its first pass.
  • Admin tools to check matching, preview a series, fetch now, clear the marker cache, and read a debug log.
  • This is Jellyfin only for now.

Recommendations

  • Moonbase scores similar items on the server. Moonfin Recommends no longer has to do the work on each client, results are filtered by the user's library access, and it works on every Jellyfin version the plugin supports.
  • On Jellyfin 12 it plugs into Jellyfin's own similar items. Every client gets Moonfin's scoring that way, the stock web UI included, and Jellyfin caches the results for a day. Jellyfin's own providers only fill the slots Moonfin leaves empty.
  • A switch to hand it back. Use Moonfin Recommends for similar items, under Integrations > Recommendations, is on by default. Turning it off gives Jellyfin's stock recommendations back and the clients follow.
  • The scoring was retuned to a 200 point model. Shared genres, tags, directors, writers, actors and studios all count, with the second shared director or actor counting less than the first. A franchise or sequel title scores too, so Alien now matches Aliens, and a close release year and a similar community rating add a little on top.
  • This is Jellyfin only for now.

Settings Backup and Restore

  • Moonbase keeps a backup of its server settings and refreshes it at every startup, as long as the live settings aren't all defaults.
  • A reset gets caught. If the settings come back as defaults while a backup exists, the server log warns about it and the top of the config page shows "These settings look like they were reset" with a Restore these settings button. Restart the server after a restore. Per-user settings are stored separately and never touched.

Upcoming Episodes

  • Next air dates without Sonarr. A new TMDB next episode endpoint lets clients show when a series airs next even when Sonarr isn't set up. It goes through the server so the TMDB key never leaves it, and the answer is cached for six hours and shared by everyone.

Emby Client Logs

  • Send report to server works on Emby. Emby has no client log endpoint of its own, so Moonbase adds one, with an Enable client log upload switch under Diagnostics that's on by default. Reports land under Dashboard > Logs, capped at ten an hour per user and one megabyte each.

Admin Defaults

  • A Metadata Row picker under Details Screen, to reorder and show or hide Release Year, Parental Rating, Runtime & Seasons, Series Status, Upcoming Episodes, Genres and Seerr Availability.
  • Loading animation defaults for the image, position, size, speed, and whether the text shows.
  • Screensaver defaults for the backdrop, the extra component, how it moves, its position and size, the content type, and the library, collection and genre pickers.
  • Spotlight and Nouveau are in the detail screen style options.
  • Show Missing Collection Items and Show Seerr Availability Badges.
  • Modern cards on My Media row, Show Downloads Button, Show Live TV Button and Show Book Library Discovery.
  • Rate is an action button option, where it had been missing from the list so applying defaults always left it out.
  • Every language Moonfin offers for the default audio and subtitle language, Catalan included, in the same order the app shows them, plus fallback languages for both.
  • Grandparents is in the interface size options.
  • Chapter Marks joins the synced settings, and the Play Offline entry was dropped from the action button picker since no client has that button.

Elsewhere

  • The Moonbase entry in the dashboard sidebar shows the Moonfin logo on Jellyfin and a crescent moon on Emby.

Moonfin Web

The bundled web client picks up everything web relevant from Moonfin 2.6.0.

Three New Detail Screen Styles

  • Spotlight. The title or logo sits on a hero over a full bleed backdrop, with Play and a few actions under it and the rest behind a More Actions menu. The backdrop rotates through the item's own artwork.
  • Spotlight has cards instead of tabs. Cast, Chapters and Extras, Similar and Recommendations, Seasons and Episodes and the rest each get a card with artwork and a count. Opening one brings the grid up as a pop-up. Person pages get a still from the filmography as their backdrop, with separate cards for what's in your library and what Seerr knows about.
  • Nouveau is a full screen layout that stacks its sections one after another instead of hiding them behind tabs.
  • Minimalist is artwork, one play button and the episodes, and nothing else.
  • All three appear as previews in the setup wizard.
  • Missing collection items. A collection now shows the titles you don't have next to the ones you do, marked with a Seerr badge. Opening one takes you to its request page. Modern has this too.
  • Season tiles show their Seerr availability, with a toggle to hide them.

Achievement Badges

  • Moonfin draws the Achievement Badges plugin natively. The plugin's own interface only worked by injecting scripts into the Jellyfin web client, so it had been invisible in Moonfin. If your server runs it, Settings > Integrations > Achievement Badges opens the whole thing. There is nothing to turn on, the entry appears once the server answers, and Moonbase is not involved.
  • A rank header with your tier, score, the bar to the next tier and the points left to reach it, plus badges unlocked, completion, and your current and best streak. A showcase strip holds the badges you pinned.
  • Badges open onto their own page, with the description, progress against the target, and the titles the plugin suggests watching to finish it. Clicking a suggestion jumps straight to that item.
  • Daily and weekly quests, each with its goal, progress and reward, and one reroll of each to swap a set you don't want.
  • A score bank and power-ups. XP Boost doubles score for an hour, Double Credit makes the next thing you finish count twice, and Streak Freeze covers one missed day. Buy more from the shop with score.
  • Avatars and rank titles, a stats screen of watch records, a leaderboard, a week, month or year recap, per-library completion, and an activity feed of what the server has unlocked lately.

Kids Mode and Parental Controls

  • Kids Mode strips the app back and locks the way out with a PIN. It's under Settings > Account & Security, and turning it on asks you to set a fresh PIN, separate from the sign-in one and cleared when you leave.
  • What goes away. Settings collapse to a single Exit Kids Mode entry. Admin, Seerr, Live TV, SyncPlay and the libraries menu leave the navigation. The home screen keeps the library tiles and one combined Continue Watching and Next Up row, search loses its Seerr tab, and detail screens lose their admin, download, delete and request buttons.
  • Detail screens are forced to Minimalist with no technical details, no description, no ratings and no expanded tabs, and trailers stay in the app rather than opening YouTube.
  • Links to admin, Seerr and Live TV bounce back to home, so a saved link can't get around the hidden buttons.
  • Wrong PIN attempts back off after five tries, up to fifteen minutes. Switching it off gives your own layout back untouched, and it deliberately doesn't sync to your other devices.
  • Blocked ratings block everywhere now. They only ever filtered home rows. They now cover search and its suggestions, favorites, library and folder browsing, the media bar, the detail screen and playback itself, and a blocked title shows a padlock rather than artwork.
  • Episodes are judged by their series rating, so blocking a rating no longer leaves the episodes playable underneath a hidden series.
  • The list is a ceiling. Blocking a rating blocks everything stronger than it, and the list is stored per server and per user instead of once per device.

Anime Markers

  • The markers from the new Moonbase section show up on episode and season cards, the detail screen, and the player's Next Up card.

Live TV

  • The channel guide was redone. More channels fit on screen, the grid is anchored to the left with a mark on programs that started before the visible window, and the sort, date and recordings buttons moved above the grid so the genre filters get the full width. Programs that have ended show faded.
  • A quick channel changer. Press up during live playback, or use the Channels button next to Guide, for a carousel over what you're watching. It wraps around instead of stopping at the ends, shows the selected channel's program in a hero bar, and follows your guide sort.
  • The guide hero shows the program's own artwork and fuller program detail, and episode titles and numbering show in more places.
  • Back returns you to the channel you came in on, at now, and the guide opens on the channel you last watched.
  • Squashed cell text scrolls as a marquee, clicking a program defaults to Watch unless it's recording, and both the guide and the carousel refresh when a program boundary passes.
  • A Live TV button for the navigation, shown only when the server has a Live TV library. It's off by default.
  • Category filters cover the whole lineup. The Movies, Series, Sports, News and Kids chips only ever filtered the first fifty channels. They now walk the whole lineup and page in more as you scroll.

Loading, Skeletons and Animation Speed

  • Custom loading animations. Pick the Moonfin logo, a spinner, the running Moonfin, or one of three moon phase cycles, place it in one of nine spots or let it bounce around the screen, and set its size and speed. It's under Settings > Extras with a live preview.
  • Skeleton placeholders replace blank space and lone spinners while the home screen, libraries and detail pages load, so the layout doesn't jump once content arrives.
  • Animation speed settings under General Style, covering page transition fade, navigation speed and Modern card transition speed.

Playback and Subtitles

  • Chapter Marks, a synced toggle that marks where each chapter starts on the seek bar.
  • Pause While Scrubbing is now a choice, and scrub thumbnails are preloaded ahead and behind so scrubbing stops flickering black.
  • Current Time joins the progress bar time slot options.
  • A dismiss chip on the skip intro prompt, so you can clear it instead of waiting it out.
  • The Audio Transcode Target row is split into Locally Decoded Codecs and Transcode Target Codecs.
  • Seven more subtitle colors bring the palette to fifteen, on text fill, stroke and background, for SDR and HDR separately.

Home Screen and Libraries

  • Library sort and filter categories collapse, with Sort open to start.
  • Music video playlists get their own section on the Playlists page.
  • A Modern cards on My Media row toggle, and Continue Watching and Next Up default to posters.
  • Mixed content libraries can feed the media bar and appear in the shuffle picker.
  • Comics. Books libraries detect comic formats and badge them, and books and audiobooks get separate rows.
  • A Show Book Library Discovery toggle for the Open Library and LibriVox Discover tab.

Details Screen

  • A customizable metadata row, and upcoming episode air dates from Sonarr through Moonbase with TMDB as the fallback.
  • Action Buttons on Screen. Pick how many action buttons stay visible before the rest fold into More Actions, or All for a row that scrolls sideways.
  • Direct play failures explain themselves, with a hint about the setting that would change it.
  • Badges are easier to read, with a contrast ring and a shadow, and they recolor the moment you switch theme.
  • Date added appears under File Information, and Remove from Collection is on the context menu and the detail screen.
  • Navigation chevrons on the Cast, Chapters, Crew, Extras, Studios, Seerr and Filmography rows, for browsing them with a mouse.
  • Season cards show unplayed counts and watched checkmarks on Modern, long button labels scroll as a marquee, and episode titles lose the "Episode X" prefix.

Everything Else

  • The web app no longer fetches fonts from Google. Roboto ships inside the app, so nothing about your viewers reaches a third party on startup, and pages render correctly on an offline or firewalled network. NotoSans sits behind every theme, so non-Latin titles keep rendering everywhere.
  • Moonfin answers the Jellyfin session API. Pause, seek and volume sent from another client or the dashboard reach the web player, and it reports its real volume back.
  • A keyboard shortcut reference. Press ? or F1 on any screen for the keys that apply there, or find the full list under Settings > About.
  • A Grandparents interface scale, a step above Extra Large.
  • The audiobook player was laid out again, with the chapter drawer in its own column, compact rows that fit far more chapters, and timelines labelled by offset.
  • Credentials are redacted from logged URLs, not just the host.
  • The glass theme's focus halo, button press feedback and sliding pill tabs were reworked.

Bug Fixes

Server Settings

  • Message text can no longer reset every plugin setting. Characters XML can't store, like invisible control characters or an emoji cut in half when a title hit its length limit, were being saved straight into Moonfin.Server.xml from message, broadcast and theme name text. Jellyfin couldn't read the file back, so it silently wrote defaults over it and admins found every Moonbase setting blank after a restart. Those characters are removed before saving now.
  • A settings file that can't be read no longer stops the plugin loading. That error escaped the plugin's startup, which Jellyfin reads as a malfunction and can answer by deleting the plugin folder on the next start. That was the "uninstalled on restart" people saw.
  • Applying defaults only changes what the admin actually set. MDBList Ratings and TMDB Episode Ratings were checkboxes that forced every user on or off, and they're Not set, Yes or No dropdowns now. An action button picker you haven't touched stays Not set, with a Clear button, instead of replacing every user's own layout. Pushing defaults no longer copies one user's hidden Continue Watching and Next Up items to everyone else, saving the page no longer turns the category toggles back on or overwrites messages created after it was opened, and the confirmation says which of the user's choices get replaced.
  • A missing web app is named in the log. Admins only saw a 404 at /Moonfin/Web/. The log now says once which folders it checked and how to put the files back.
  • The plugin package names itself Moonbase, matching the catalog.

Scheduled Tasks

  • Moonfin's scheduled tasks run on their own on Jellyfin 10.11 and 12. Jellyfin 10.11 changed how a task's schedule is declared, so the IMDb charts, MDBList batch and list refreshes, studio logos, data heal and file transformation registration all quietly had no schedule and only ran when started by hand.
  • Custom home rows refresh on their own. A new Moonfin Custom Lists Sync task runs at startup and daily at 4:00, refreshing every enabled Letterboxd, TMDB, MDBList and IMDb chart row across all profiles. They had only refreshed when someone pressed refresh.

Privacy

  • New media notifications, the media bar and genre lists stop showing items a user isn't allowed to see. Jellyfin 10.11 added a parameter to its visibility check, Moonbase couldn't find it anymore, and so it let everything through, parental rating blocks and blocked tags included. It fails closed now.

Settings Sync

  • Hidden Continue Watching and Next Up items stay hidden on every device. When a second device synced, its list replaced the combined one instead of adding to it, so hidden items came back.
  • Media bar and similar item cards carry the user's watched state, so the checkmark, resume bar and unplayed count show on them. Those responses had no user data at all.

Retro Games

  • Artwork is much more reliable on large libraries. Importing a big arcade set no longer eats memory or sets off repeated full library scans, long titles stop timing out and retrying forever, scans wait for an import to finish, broken folder watchers are recreated, artwork deleted on disk is fetched again, stuck previews recover, and shutdown no longer hangs.
  • Switching retro games on starts artwork scanning straight away. Only a change to the selected game libraries triggered a scan, so a server that booted with games off had no artwork until the next scheduled scan.
  • PSP games can start in the web app. The player loads in a frame, and a frame can't be isolated while the page around it isn't, so PSP stopped with "Error for site owner". Set GamesIsolateWebApp to true in Moonfin.Server.xml to isolate the web app. It covers the whole app, so anything cross origin you've added has to allow it.

Jellyfin 12

  • The Moonfin header button shows in the Jellyfin 12 web UI. It was being placed in the old header, which Jellyfin 12 keeps in the page but hides. It now sits next to the user avatar and survives page changes and other plugins adding header items.

Themes

  • A custom theme with a wrong optional field is rejected with a clear error, instead of being accepted and then breaking theme loading in the clients.

Moonfin Web

Playback and SyncPlay

  • Automatic intro and outro skips under SyncPlay fire once. Most players land a frame short of the segment end, which looked like a fresh entry, so every client re-issued the skip forever.
  • Drift correction can't park a client seconds behind the rest of its group.
  • Web trickplay previews load, where the preview requests had been coming back 401.

Home and Library

  • Recently Added TV cards show the show's artwork. A show added as an individual episode displayed that episode's screenshot instead of the poster, so the row was inconsistent.
  • Watched state updates while the app is open, so views reflect what you just finished without a reload.
  • Rows fill a wide window on first load, and a row no longer loads, vanishes and reloads on repeat.
  • Home loads again when the server comes back, instead of staying empty after a brief outage.
  • Continue Watching stops reordering as it pages, multiple Since You Watched rows all show, and Recently Released rows populate for movie libraries with subfolders or multiple paths.
  • Custom external rows refresh daily instead of being cached forever in the browser too.
  • Latest Media rows normalise properly on Jellyfin 12, which can hand back a series, a season or an episode for the same show.
  • The genre page shows the right items and counts, and home section checkboxes respond to clicks.
  • Playlist images change when you replace the auto-generated collage, and Recordings, Favorites and genre cards stop showing old artwork.
  • Books libraries stop showing a black screen, single file audiobooks play on Jellyfin 12, and audiobooks stay out of the video Continue Watching row.
  • Season episode counts come from the server, and collections made up of episodes render.
  • The left sidebar no longer opens itself when Home loads.
  • Hidden libraries stay hidden in the sidebar, the top toolbar and recursive rows and searches.
  • Game libraries open their games, and shuffle spreads across the library instead of picking clusters of neighbouring titles.
  • Library grid focus stops drifting on vertical scroll, and a letter jump no longer yanks the view back.

Performance

  • Artwork decodes at the size it's drawn, and rows ask the server for fewer fields per item.
  • Next Up and Continue Watching load fast. Next Up stops asking for the People and Artists fields, and the resume queries use an indexed lookup instead of joins that took seconds.

Details and Interface

  • Focused artwork stays crisp. A hovered card scaled as one unit, so its title and subtitle drifted and went soft. The artwork scales on its own now, and focused cards aren't covered by the card to their right.
  • Text follows the theme on detail screens instead of being forced white.
  • An item with only your personal rating shows a ratings row.
  • Action buttons stay on screen when they have room, and the Skip Intro and Next Up focus outlines sit flush with their cards.
  • The top navigation buttons expand as soon as the pointer reaches them.
  • Plugin settings open in a new tab rather than an embedded view that showed a black screen.
  • The Seerr requester line gives the name its own line, where a long username was cut off.
  • The library dropdown is sized to its content, collection titles wrap, and the glass pill focus ring lines up with the pill.

Search, Connections and Servers

  • Accented titles match unaccented typing, and an accented title files under its own letter on the alphabet strip.
  • Jellyfin 12 servers authenticate studio images, book pages and car artwork. Jellyfin 12 dropped the api_key query name, so the token is sent under the name each server reads.
  • Raw error text is gone. Errors show the server's own reason, the HTTP status, or a plain connection message.
  • Seasons Seerr marks deleted can be requested again. The deleted status was read as available, so those seasons carried a green check and couldn't be selected.
  • Next Up comes back on Emby 4.10, Delete is offered on Emby for users who are allowed to, and HDR shows as HDR in Emby's playback info panel.

Contributors

Huge thanks to everyone who contributed this release:

Don't miss a new Plugin release

NewReleases is sending notifications on new releases.