Skip to content

Releases: Vernoxvernax/Puddler-RS

0.7.0

02 Jun 14:57
a5fd7a5
Compare
Choose a tag to compare

BREAKING CHANGE:

... yeah well, cause everything has been rewritten.

Just documenting all changes of this new version would take me days and even then I'd forget about certain things.
Well here is a short summary of the most notable ones:

  • Cleaner Code
  • Support for Plex Streaming
  • Emby/Jellyfin: Support for simple Pause and Stop commands (comming from emby app/web)
  • Actually usable interface
    • Pretty much every input is handled through crossterm with some neat eyecandy such as colors, highlights and bold text
    • And for some reason, almost all of the lines printed by puddler will be deleted afterwards.
      • While using puddler myself, I often got a little annoying at how verbose everything was.
      • Even though I knew exactly what item to play, just pressing enter, I ended up with a couple dozent of unnecessary lines during my viewing experience.
      • Not anymore.
    • Note that all menus are created and managed through crossterm and they are pretty untested as of right now.
  • The config files are now also much more cleaner. (I hope)

Additional Information:

  • Authentication for plex has only been tested with an admin account. I don't have plex pass and am not planning to get one.

Noteable changes since the first commit of 0.7.0

  • fix(printing): cleaner item titles; correctly splitting chars
    • "(Played)" was still in Mpv's titlebar.
    • ContinueMenu: Dont split chars based on the byte index
  • fix(jellyfin): avoid duplicates in menu
    • Whenever an episode has been played long enough to show up in Continue Watching, it also shows up in NextUp which lead to duplicates in the menu.
  • refactor(playlist): exit playlist mode when there is nothing left to do
  • fix(text): fix incorrect description of option (hardware acceleration)
  • fix(cli/config): don't override the debug_log option
  • fix(playback): fix the "finish" item option
  • fix(input): only update the interface when necessary
  • fix(jellyfin/emby): fix external subtitles url
  • feat(playback): support for user preferred audio/sub tracks
    • This is currently very experimental.
    • Every platform returns different kinds of language codes so I had to add another dependency. (very small though)
    • It's behaviour is currently pretty basic. When the preferred audio lang-code is something like eng, it will search the tracks of the file for a track that has the same language attribute. If the audio/sub preference is unset, the selection will fall back to the player, so the default track will be selected.
    • This is implemented for non-transcode streams, because you'd be forced to choose a track when transcoding.
  • fix(input): ask again for the server address if the request failed (login)
  • fix(input): only take keypresses; this should also fix user input on windows
  • fix(config/settings): correctly generate paths to the config files/folders
  • fix(transcoding): use the correct mediasource/file when selecting sub/audio tracks
  • fix(transcoding): ask for start-time even if there is no progress
  • fix(playback_reporting): correctly convert time and actually use the modified item
  • feat(jellyfin): add option to select from multiple mediasources
  • fix(interface): ask for subtitle tracks in a seperate window
  • fix(transcoding): added missing negation for numeric check (the mbps question is now working as expected)
  • fix(mpv): avoid getting strings like "(Played)" into the item title
  • fix(jellyfin): fix playback finished menu

Please create an issue if you find anything that seems weird, bug or not.

0.6.1

27 Mar 03:34
664e51d
Compare
Choose a tag to compare
  • Removed getch crate and rewrote it's functionality using the awesome crossterm crate with additional timeout features.
  • Fixed issue where episodes would be skipped if they would already be marked as played.
  • Fixed issue where episodes would be skipped when using the f option in the quick-menu.
  • Increase some request timeouts to 10 seconds.
  • Avoid discord problems.
  • Some code refactoring.
  • Bump dependencies.

0.6.0

01 Nov 18:54
8381c83
Compare
Choose a tag to compare
  • BREAKING CHANGE:
    • Puddler now has it's dedicated configuration folder on Windows. Additionally, it's folder-name is finally lowercase.
    • How to use your old config files:
      • Windows:
        • go into %APPDATA%\Roaming\VernoxVernax, and move Puddler up one directory (into Roaming).
        • Rename the Puddler folder to puddler and delete the empty folder: VernoxVernax.
      • Linux:
        • mv ~/.config/Puddler ~/.config/puddler
      • You might also want to check out the first item in Puddler's settings.
  • Small little change to re-enable "continue-watching" section for Emby-beta instances (#5).
  • Fix bug to allow empty input (sometimes).
  • Print connection status on only one line.
  • Load external subtitles automatically.
  • Add limit of 15 items to "continue-watching" (this should be a quick-menu).
  • New dev branch to keep a reasonably stable code base on main #7
  • Automated builds and artifact generation #9 and #7
  • Ask the user to finish/play-item-again, if the item has not been marked as 100% played. Additionally, an option to just mark it as played. #8
  • Make discord operate multithreaded. #8
  • Switch to an active discord-presence library: jewlexx/discord-presence.
  • Switch to an active libmpv abstraction: sirno/libmpv-sirno.
  • Fix semi-automatic config repairs. (this sounds cooler than it actually is)
  • Bump other dependencies.
  • Lots of code-refactoring.

0.5.13

25 Sep 15:26
4ed7e81
Compare
Choose a tag to compare
  • Whoops, looks like I skipped a version... anyways
  • YAY. We got our first few issues!
  • A lot more user-friendly error messages in case of connection issues
  • Fixed special playback
    • When choosing a special from the "Continue Watching" menu:
Library:
  Specials:
    SP1
    SP2
  Season 1:
    E01 [WATCHED]
    SP1
    E02

>> After finishing SP1 (which was selected from the "C.W." menu), the script will continue with E02, instead of SP2.
  • Additionally, the You've chosen ... message will now include a little indicator (Embedded) at the end, if the special is the one from the specials season or the embedded one.
  • Yes, there has already been commits to implement exactly this feature. Unfortunately, some of Emby's implementations are neither documented, nor do they make sense. Please understand, or submit issues.
  • [#1] Added configuration setting to use the default configuration folder, or the one specified in --mpv-config-dir.
  • [#1] Added the --glsl-shaders CLI options.
    • Useful if you want to load additional shaders without touching MPV's configs.
  • [#1] Pressing just [ENTER] will now automatically choose the first unwatched item.
  • New --debug CLI option to log all of MPV's messages to ./mpv.log.
  • [#2] Added mark and unmark commands in series mode, to change the watched state of items.
    • Use formats like these mark 1-10, mark 1,2,3, mark 8
    • Note that this command is only available in series mode, in order to keep the searching functional.
    • The watched state will only be changed on the server. Restart Puddler to see the changes.
    • Keep an eye on the message prompt to see if these are available or not.
  • [#2] Decreased limit to mark items was watched, from 90% to 80%.
  • Plenty of other bug-fixes

0.5.11

07 Mar 09:15
0140e3e
Compare
Choose a tag to compare
  • Don't collapse BoxSets when issuing the "ALL" search term
  • Reinstate the discord presence paused state (long overdue)
    • Mostly not that important, but the behavior of it changes a little:
    • Since the actual API-Call got removed from MPV's client API, the script will rely on whether the playback position has changed or not
  • Discord-Presence: no more verbose information on the playback-state (like "Paused"). The script will now just remove the timer and put a small pause-icon-indicator on the bottom right of the application icon
  • Updated mpv.lib just in case
  • If you want features, changes, improvements, then please open an issue or contact me. I'm bored.
  • Add autoplay option to continue after waiting 5 seconds (you can only exit these through CTRL+C, unless you've watched everything)
  • Add hardware decoding option (auto-safe)
  • Refactored code; removed pointless "Starting mpv..." message

0.5.10

20 Dec 22:47
57e08ac
Compare
Choose a tag to compare
  • reinstatet nextup tv-show for jellyfin servers (don't ask me)
  • activated the "do you want to continue at" question for all transcoding requests
  • turned transcoding question input to float, so you can type something like 3.5 being 3min 30seconds
  • fixed window title in series mode

0.5.9

16 Oct 13:44
Compare
Choose a tag to compare
  • emby now prints series and movies in the latest section (limited to 10 entries each)
  • fixed printing when a played episode/special is shown at "continue-watching" (yes this can happend)
  • specials can now appear in the "play-next" prompt after finishing an episode
  • discord presence actually turned off (paused state wasn't blocked)
  • the codec field can apparently be undefined -> fallback to "???" added

0.5.8

22 Sep 21:17
Compare
Choose a tag to compare
  • new option to resume from manually specified minute (if transcoding is enabled)
  • recreated mpv.lib to link against new features
  • fixed playback report when continuing stream with transcoding turned on
  • fixed next episode option after watching a nested special (below)
  • changed hotkey for next episode to 'n' instead of 'c'
  • updated readme for those who installed visual studio 2022
  • fixed a few printing mistakes

First important decision:

Imagine this situation:

  • Item A [Played]
  • Item B [Played]
  • Item C

What should happen if the user specificly rewatches and finishes Item A.
Should Item B be recommened for continuation, or Item C?

This had me thinking for a while, but in the end I decided for the latter (recommending Item C).
: Items that have already been finished, won't be recommended anymore. (unless you change the status in the emby interface of course)


Second important decision:

Imagine the following:

Specials:

  • Sp 1
  • Sp 2
    Season 1:
  • Ep 1
  • Sp 1
  • Ep 2

Sp 1 has been added to season 1 since its content extends story events from Ep 1 (done by your database).

What is supposed to happen if the user plays & finishes Sp 1?
Should the player continue with Sp 2 or with Ep 2?

Once again a pretty hard question. I decided for the latter (Ep 2).



0.5.7

08 Aug 17:16
Compare
Choose a tag to compare

  • video transcode option (by entering mbps when starting a stream)
    • this requires you to choose one audio and one subtitle stream since emby/embyopensource don't support copying multiple of these
    • Hardware encoding recommended but not necessary | The media server will automatically scale the video stream based on the mbps input (server-side)
  • default config file does not need to be recreated if missing keys have been identified
  • config folders are now automatically created if not existent
  • fixed bug on windows for pressing enter in the menu
  • fixed regex to include windows's stupid backslashes
  • finally removed irrelevant "using libmpv" message
  • rewrote a few things
  • killed several small bugs
  • ran clippy

0.5.6-1

23 Jul 18:11
Compare
Choose a tag to compare

  • fixed recently introduced bugs
  • 0.5.6 advertised features are now fully working
  • autologin always chooses the first entry (unless default server configuration is set)
  • discovered git source option for cargo.toml => you don't need to clone mpv-rs seperately anymore