You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Running beet update (including pretend mode) shows confused output that suggests that the albumtype and albumtypes fields are likely to be corrupted.
More specifically it would seem that albumtypes is a string but is being treated like a list of strings.
As such the albumtype is being set to albumtypes[0] (a logical change)
If we have albumtypes = ["album", "remix"] and albumtype = 'remix' this would correctly set the albumtype to be "album" instead of "remix".
Instead albumtypes is a ';' separated string list of albumtypes. "album; remix" and the update command is trying to set albumtype to albumtypes[0] i.e. 'a'
It is probably worth noting too that the change does not appear to succeed if -p is not specified. The database_change event is triggered but the data does not change to match the "predicted" output shown and in fact remains the same.
My guess is that the informational output is wrong (it is run in a loop in show_model_changes calling _field_diff which has no special handling.
The store method that gets called to do the update is being called with different data. (using a print inside db.pyModel::store we get.
>>>>>updating record with UPDATE items SET albumtype=?,albumtypes=?,mtime=? WHERE id=? using ['remix', 'album; remix', 0, 705]
I may try to work out a fix but I'm new to beets and still working out how things hang together.
Actually, it is worse than I thought. The spurious changes do get applied (though not always, it seems)
Here is a example of data after update has been applied
beet ls -f '$album: $title $albumtype {$albumtypes}' artist:dead can dance
Aion: The Arrival and the Reunion a {['a', 'l', 'b', 'u', 'm']}
Aion: Saltarello a {['a', 'l', 'b', 'u', 'm']}
Aion: Mephisto a {['a', 'l', 'b', 'u', 'm']}
Aion: The Song of the Sibyl a {['a', 'l', 'b', 'u', 'm']}
Aion: Fortune Presents Gifts Not According to the Book a {['a', 'l', 'b', 'u', 'm']}
Aion: As the Bell Rings the Maypole Spins a {['a', 'l', 'b', 'u', 'm']}
Running
beet update
(including pretend mode) shows confused output that suggests that the albumtype and albumtypes fields are likely to be corrupted.More specifically it would seem that albumtypes is a string but is being treated like a list of strings.
As such the albumtype is being set to albumtypes[0] (a logical change)
If we have
albumtypes = ["album", "remix"]
andalbumtype = 'remix'
this would correctly set the albumtype to be "album" instead of "remix".Instead
albumtypes
is a ';' separated string list of albumtypes."album; remix"
and the update command is trying to set albumtype to albumtypes[0] i.e. 'a'Problem example
Led to this problem:
To put context to that, here is the tagging in place on those tracks.
It is probably worth noting too that the change does not appear to succeed if -p is not specified. The database_change event is triggered but the data does not change to match the "predicted" output shown and in fact remains the same.
My guess is that the informational output is wrong (it is run in a loop in
show_model_changes
calling_field_diff
which has no special handling.The
store
method that gets called to do the update is being called with different data. (using aprint
insidedb.py
Model::store
we get.I may try to work out a fix but I'm new to beets and still working out how things hang together.
Setup
My configuration (output of
beet config
) is:The text was updated successfully, but these errors were encountered: