Skip to content

Releases: linuxserver/docker-beets

nightly-670a3bcd-ls116

12 Mar 08:12
73725fd
Compare
Choose a tag to compare
Pre-release

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-670a3bcd-ls116/index.html

LinuxServer Changes:

Rebase to Alpine 3.21, unpin beetcamp.

Remote Changes:

Add beets-id3extract to community plugins (#5660)

Add link to community plugin beets-id3extract

2.2.0-ls261

07 Mar 18:52
a7240c8
Compare
Choose a tag to compare

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/2.2.0-ls261/index.html

LinuxServer Changes:

Rebase to Alpine 3.21.

Remote Changes:

Updating PIP version of beets to 2.2.0

nightly-1f938674-ls115

07 Mar 18:56
6c50094
Compare
Choose a tag to compare
Pre-release

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-1f938674-ls115/index.html

LinuxServer Changes:

Rebase to Alpine 3.21, unpin beetcamp.

Remote Changes:

Fix IMBackend#compare on ImageMagick 7.1.1-44 (#5650)

2.2.0-ls260

28 Feb 18:57
5a80bbf
Compare
Choose a tag to compare

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/2.2.0-ls260/index.html

LinuxServer Changes:

Rebase to Alpine 3.21.

Remote Changes:

Updating PIP version of beets to 2.2.0

nightly-1f938674-ls114

28 Feb 18:55
8281524
Compare
Choose a tag to compare
Pre-release

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-1f938674-ls114/index.html

LinuxServer Changes:

Rebase to Alpine 3.21, unpin beetcamp.

Remote Changes:

Fix IMBackend#compare on ImageMagick 7.1.1-44 (#5650)

nightly-1f938674-ls113

28 Feb 10:15
1247b94
Compare
Choose a tag to compare
Pre-release

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-1f938674-ls113/index.html

LinuxServer Changes:

Rebase to Alpine 3.21, unpin beetcamp.

Remote Changes:

Fix IMBackend#compare on ImageMagick 7.1.1-44 (#5650)

2.2.0-ls259

21 Feb 18:56
de15c64
Compare
Choose a tag to compare

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/2.2.0-ls259/index.html

LinuxServer Changes:

Rebase to Alpine 3.21.

Remote Changes:

Updating PIP version of beets to 2.2.0

nightly-fe289573-ls112

20 Feb 05:07
bdcdb0e
Compare
Choose a tag to compare
Pre-release

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-fe289573-ls112/index.html

LinuxServer Changes:

Rebase to Alpine 3.21, unpin beetcamp.

Remote Changes:

Lyrics: Resurrect translations and refactor ReST and command line handling (#5485)

🎵 The Refactoring Blues 🎵 by Claude

Verse 1:
Got those lyrics plugin blues
Cleaning up some messy code
Moving classes, fixing views
Making changes down the road

Chorus:
We're refactoring tonight
Making the codebase clean and bright
Translation's got a brand new home
And ReST files found their own

Verse 2:
Added Microsoft Translate
Keeping tokens safe and sound
Config options up-to-date
Better structure all around

Bridge:
Path operations simplified
Groups of artists, neat and tied
Error handling's looking fine
Comments clear along each line

Verse 3:
RestFiles in their own class now
Cleaning imports, showing how
Better typing makes it clear
What should go and what stays here

Final Chorus:
We're refactoring tonight
Making the codebase clean and bright
Translation's got a brand new home
And our code can stand alone!

— inspired by the diff


Technical Changes

  • Replaced deprecated and broken Bing translations by Microsoft
    Translator API

    • Isolated all functionality in the Translator class.
    • Updated translation settings configuration.
    • Added support for synced lyrics from LRCLib.
  • Added support for preserving existing translations to help users to
    manage their characters quota.

    • Added error handling and logging
    • Added tests
  • Created RestFiles class for ReST document handling

    • Simplified path operations using pathlib
    • Added tests
  • Improved command line options handling

Caching of translations

The plugin will not re-translate lyrics if translations already exist,
see

$ beet -v lyrics albumartist::Sel karta -f
...
lyrics: LyricsPlugin: Fetching lyrics for Sel - Saulės Miestas
lyrics: LRCLib: Fetching JSON from https://lrclib.net/api/get
lyrics: LyricsPlugin: 🟢 Found lyrics: 32275 | 1996 / Neįvertinta Karta: Sel - Saulės Miestas
lyrics: Translator: Posting data to https://api.cognitive.microsofttranslator.com/translate
lyrics: Translator: 🟢 Translated lyrics to EN

$ beet -v lyrics albumartist::Sel karta -f
...
lyrics: LyricsPlugin: Fetching lyrics for Sel - Saulės Miestas
lyrics: LRCLib: Fetching JSON from https://lrclib.net/api/get
lyrics: LyricsPlugin: 🟢 Found lyrics: 32275 | 1996 / Neįvertinta Karta: Sel - Saulės Miestas
lyrics: Translator: 🔵 Translations already exist

nightly-c315487b-ls112

18 Feb 10:10
bdcdb0e
Compare
Choose a tag to compare
Pre-release

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-c315487b-ls112/index.html

LinuxServer Changes:

Rebase to Alpine 3.21, unpin beetcamp.

Remote Changes:

Importer typehints and small importer refactor (#5611)

Description

Hello y'all.

One of the dev from the beets-flask
app
here. We are extending
the ImportSession in our application to get the interactive imports
working in our application. Overall that was not a too pleasant
experience as a ton of typehints are missing in that area of the beets
code. This PR wants to fix this ;)

Changes

Moved importer state logic into a dataclass. Is clearer and more
isolated now in my opinion, we are not using it but I found it quite
confusing when looking at it.

Added a ton of typehints to the importer.py file. Predominantly the
ImportSession, ImportTask (and derivatives) and pipeline stage
decorators are now (hopefully) completely typed. Additionally I fixed
some typhint issues in the util.__init__.py file, mainly related to
the PathLike type.

If you have some strong opinions about any of the changes feel free to
revert or edit the PR.

Best,
Sebastian

P.S: I noticed that beets does not use Abstract Base Classes is there
any reason for that or is it just of historic nature? I think some Base
Classes could be adapted to use an ABC metaclass quite easily.

nightly-5c8f1c1e-ls112

20 Feb 17:10
bdcdb0e
Compare
Choose a tag to compare
Pre-release

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-5c8f1c1e-ls112/index.html

LinuxServer Changes:

Rebase to Alpine 3.21, unpin beetcamp.

Remote Changes:

Fix convert plugin attempting to process a non-media file (#5261)

Description

My library is managed using Beets for organization and
git-annex as storage backend.
Therefore when using this system, while my library files always exists
on my filesystem, some files may be empty (without content). In this
case, when I'm running the convert plugin, I don't wants it to process
files which are empty (same apply for any Beets plugin). Hence, I added
a check that the file is readable as a MediaFile before doing any
process.

Before this fix, trying to encode an empty file would have lead to an
error while leaving convert doing its side-effects and convert
would also copy empty files to destination for files that doesn't need
to be re-encoded.

In my case, this is empty files, but the problem can be anything else
(depending on the storage backend) and/or corrupted files. Conclusion, I
think checking that the file is readable is always recommended before
proceeding to heavy operation
like this.