Releases: Vernoxvernax/Puddler-RS
0.7.0
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.
- Pretty much every input is handled through
- 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
- 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
- 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 movePuddler
up one directory (intoRoaming
). - Rename the
Puddler
folder topuddler
and delete the empty folder:VernoxVernax
.
- go into
- Linux:
mv ~/.config/Puddler ~/.config/puddler
- You might also want to check out the first item in Puddler's settings.
- Windows:
- 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
- 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
andunmark
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.
- Use formats like these
- [#2] Decreased limit to mark items was watched, from 90% to 80%.
- Plenty of other bug-fixes
0.5.11
- 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
- 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
being3min 30seconds
- fixed window title in series mode
0.5.9
- 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
- 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
- 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
- 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