Package: sublime-music Version: 0.11.16-4 Severity: normal
Hi,when listening to music in sublime music, the song metadata indicated in the lower left corner and the play queue reachable in the lower right corner do not update when they should. This includes situations such as
* the next song starts when the previous has ended * the “Go to next song” button is used * another song is selected for playback somewhere else in the interface * a song is set to “play next“Instead they just stay stuck in in the state they have when starting up, i.e. showing the song that was first played after starting and the play queue at that time. Note that while the mentioned interface elements don't reflect the change, the actual playback and the time slider in the lower middle reflect the changes made, e.g. the time resets to the start when a new song is started and “play next” selections are correctly respected when switching to the next song.
When starting sublime-music it prints out various exception messages, which might be related to the problem, as can be seen in the attached log.
Regards Sven -- System Information: Debian Release: bookworm/sid APT prefers testing-debugAPT policy: (990, 'testing-debug'), (990, 'testing'), (102, 'unstable-debug'), (102, 'unstable'), (101, 'experimental-debug'), (101, 'experimental')
Architecture: amd64 (x86_64) Kernel: Linux 6.0.0-6-amd64 (SMP w/12 CPU threads; PREEMPT)Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages sublime-music depends on: ii gir1.2-gtk-3.0 3.24.36-4 ii gir1.2-nm-1.0 1.42.0-1 ii libjs-sphinxdoc 5.3.0-3 ii python3 3.11.2-1 ii python3-bleach 5.0.1-2 ii python3-dataclasses-json 0.5.7-3 ii python3-dateutil 2.8.2-1 ii python3-deepdiff 6.2.2-1 ii python3-fuzzywuzzy 0.18.0-4 ii python3-gi 3.42.2-3+b1 ii python3-levenshtein 0.12.2-2+b4 ii python3-mpv 1.0.1-3 ii python3-peewee 3.14.10+dfsg-1+b3 ii python3-requests 2.28.1+dfsg-1 ii python3-semver 2.10.2-3 ii sphinx-rtd-theme-common 1.2.0+dfsg-1 Versions of packages sublime-music recommends: ii libnotify4 0.8.1-1 ii python3-bottle 0.12.23-1 ii python3-keyring 23.9.3-2 ii python3-pychromecast 9.4.0-2 Versions of packages sublime-music suggests: ii network-manager 1.42.0-1 -- no debconf information
(sublime-music:76700): Gtk-CRITICAL **: 15:16:32.819: gtk_widget_set_size_request: assertion 'width >= -1' failed Bottle v0.12.23 server starting up (using WSGIRefServer())... Listening on http://0.0.0.0:8282/ Hit Ctrl-C to quit. Traceback (most recent call last): File "/usr/lib/python3/dist-packages/peewee.py", line 6970, in get return clone.execute(database)[0] ~~~~~~~~~~~~~~~~~~~~~~~^^^ File "/usr/lib/python3/dist-packages/peewee.py", line 4339, in __getitem__ return self.row_cache[item] ~~~~~~~~~~~~~~^^^^^^ IndexError: list index out of range During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/sublime_music/app.py", line 346, in do_activate self.dbus_manager.property_diff() File "/usr/lib/python3/dist-packages/sublime_music/dbus/manager.py", line 372, in property_diff new_property_dict = self.property_dict() ^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/sublime_music/dbus/manager.py", line 239, in property_dict "Metadata": self.get_mpris_metadata( ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/sublime_music/dbus/manager.py", line 335, in get_mpris_metadata artist_name = song.artist.name if song.artist else "" ^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/peewee.py", line 4486, in __get__ return self.get_rel_instance(instance) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/peewee.py", line 4477, in get_rel_instance obj = self.rel_model.get(self.field.rel_field == value) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/peewee.py", line 6522, in get return sq.get() ^^^^^^^^ File "/usr/lib/python3/dist-packages/peewee.py", line 6973, in get raise self.model.DoesNotExist('%s instance matching query does ' sublime_music.adapters.filesystem.models.ArtistDoesNotExist: <Model: Artist> instance matching query does not exist: SQL: SELECT "t1"."id", "t1"."name", "t1"."album_count", "t1"."starred", "t1"."biography", "t1"."music_brainz_id", "t1"."last_fm_url", "t1"."_artist_image_url_id" FROM "artist" AS "t1" WHERE ("t1"."id" = ?) LIMIT ? OFFSET ? Params: ['artist-74', 1, 0] Traceback (most recent call last): File "/usr/lib/python3/dist-packages/peewee.py", line 6970, in get return clone.execute(database)[0] ~~~~~~~~~~~~~~~~~~~~~~~^^^ File "/usr/lib/python3/dist-packages/peewee.py", line 4339, in __getitem__ return self.row_cache[item] ~~~~~~~~~~~~~~^^^^^^ IndexError: list index out of range During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/sublime_music/app.py", line 1039, in <lambda> lambda: self.window.update( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/sublime_music/ui/main.py", line 363, in update active_panel.update(app_config, force=force) File "/usr/lib/python3/dist-packages/sublime_music/ui/playlists.py", line 118, in update self.playlist_detail_panel.update(app_config=app_config, force=force) File "/usr/lib/python3/dist-packages/sublime_music/ui/playlists.py", line 523, in update self.update_playlist_view( File "/usr/lib/python3/dist-packages/sublime_music/ui/util.py", line 435, in wrapper result.add_done_callback( File "/usr/lib/python3/dist-packages/sublime_music/adapters/manager.py", line 151, in add_done_callback fn(self, *args) File "/usr/lib/python3/dist-packages/sublime_music/ui/util.py", line 423, in future_callback fn() File "/usr/lib/python3/dist-packages/sublime_music/ui/playlists.py", line 658, in update_playlist_view artist.name if (artist := song.artist) else None, ^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/peewee.py", line 4486, in __get__ return self.get_rel_instance(instance) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/peewee.py", line 4477, in get_rel_instance obj = self.rel_model.get(self.field.rel_field == value) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/peewee.py", line 6522, in get return sq.get() ^^^^^^^^ File "/usr/lib/python3/dist-packages/peewee.py", line 6973, in get raise self.model.DoesNotExist('%s instance matching query does ' sublime_music.adapters.filesystem.models.ArtistDoesNotExist: <Model: Artist> instance matching query does not exist: SQL: SELECT "t1"."id", "t1"."name", "t1"."album_count", "t1"."starred", "t1"."biography", "t1"."music_brainz_id", "t1"."last_fm_url", "t1"."_artist_image_url_id" FROM "artist" AS "t1" WHERE ("t1"."id" = ?) LIMIT ? OFFSET ? Params: ['artist-74', 1, 0] Traceback (most recent call last): File "/usr/lib/python3/dist-packages/sublime_music/app.py", line 1039, in <lambda> lambda: self.window.update( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/sublime_music/ui/main.py", line 363, in update active_panel.update(app_config, force=force) File "/usr/lib/python3/dist-packages/sublime_music/ui/playlists.py", line 117, in update self.playlist_list.update(app_config=app_config, force=force) File "/usr/lib/python3/dist-packages/sublime_music/ui/playlists.py", line 232, in update self.update_list(app_config=app_config, force=force) File "/usr/lib/python3/dist-packages/sublime_music/ui/util.py", line 435, in wrapper result.add_done_callback( File "/usr/lib/python3/dist-packages/sublime_music/adapters/manager.py", line 151, in add_done_callback fn(self, *args) File "/usr/lib/python3/dist-packages/sublime_music/ui/util.py", line 423, in future_callback fn() File "/usr/lib/python3/dist-packages/sublime_music/ui/playlists.py", line 273, in update_list util.diff_model_store(self.playlists_store, new_store) File "/usr/lib/python3/dist-packages/sublime_music/ui/util.py", line 166, in diff_model_store diff = DeepDiff(old_store, new_store) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 303, in __init__ self._diff(root, parents_ids=frozenset({id(t1)}), _original_type=_original_type) File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 1537, in _diff self._diff_iterable(level, parents_ids, _original_type=_original_type, local_tree=local_tree) File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 632, in _diff_iterable self._diff_iterable_in_order(level, parents_ids, _original_type=_original_type, local_tree=local_tree) File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 761, in _diff_iterable_in_order self._diff_by_forming_pairs_and_comparing_one_by_one( File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 863, in _diff_by_forming_pairs_and_comparing_one_by_one self._diff(next_level, parents_ids_added, local_tree=local_tree) File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 1543, in _diff self._diff_obj(level, parents_ids) File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 428, in _diff_obj self._diff_dict( File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 585, in _diff_dict self._diff(next_level, parents_ids_added, local_tree=local_tree) File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 1537, in _diff self._diff_iterable(level, parents_ids, _original_type=_original_type, local_tree=local_tree) File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 632, in _diff_iterable self._diff_iterable_in_order(level, parents_ids, _original_type=_original_type, local_tree=local_tree) File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 761, in _diff_iterable_in_order self._diff_by_forming_pairs_and_comparing_one_by_one( File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 863, in _diff_by_forming_pairs_and_comparing_one_by_one self._diff(next_level, parents_ids_added, local_tree=local_tree) File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 1524, in _diff elif isinstance(level.t1, Mapping): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen abc>", line 119, in __instancecheck__ AttributeError: __class__ Traceback (most recent call last): File "/usr/lib/python3/dist-packages/sublime_music/app.py", line 1039, in <lambda> lambda: self.window.update( ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/sublime_music/ui/main.py", line 363, in update active_panel.update(app_config, force=force) File "/usr/lib/python3/dist-packages/sublime_music/ui/playlists.py", line 117, in update self.playlist_list.update(app_config=app_config, force=force) File "/usr/lib/python3/dist-packages/sublime_music/ui/playlists.py", line 232, in update self.update_list(app_config=app_config, force=force) File "/usr/lib/python3/dist-packages/sublime_music/ui/util.py", line 435, in wrapper result.add_done_callback( File "/usr/lib/python3/dist-packages/sublime_music/adapters/manager.py", line 151, in add_done_callback fn(self, *args) File "/usr/lib/python3/dist-packages/sublime_music/ui/util.py", line 423, in future_callback fn() File "/usr/lib/python3/dist-packages/sublime_music/ui/playlists.py", line 273, in update_list util.diff_model_store(self.playlists_store, new_store) File "/usr/lib/python3/dist-packages/sublime_music/ui/util.py", line 166, in diff_model_store diff = DeepDiff(old_store, new_store) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 303, in __init__ self._diff(root, parents_ids=frozenset({id(t1)}), _original_type=_original_type) File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 1537, in _diff self._diff_iterable(level, parents_ids, _original_type=_original_type, local_tree=local_tree) File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 632, in _diff_iterable self._diff_iterable_in_order(level, parents_ids, _original_type=_original_type, local_tree=local_tree) File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 761, in _diff_iterable_in_order self._diff_by_forming_pairs_and_comparing_one_by_one( File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 863, in _diff_by_forming_pairs_and_comparing_one_by_one self._diff(next_level, parents_ids_added, local_tree=local_tree) File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 1543, in _diff self._diff_obj(level, parents_ids) File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 428, in _diff_obj self._diff_dict( File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 585, in _diff_dict self._diff(next_level, parents_ids_added, local_tree=local_tree) File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 1537, in _diff self._diff_iterable(level, parents_ids, _original_type=_original_type, local_tree=local_tree) File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 632, in _diff_iterable self._diff_iterable_in_order(level, parents_ids, _original_type=_original_type, local_tree=local_tree) File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 761, in _diff_iterable_in_order self._diff_by_forming_pairs_and_comparing_one_by_one( File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 863, in _diff_by_forming_pairs_and_comparing_one_by_one self._diff(next_level, parents_ids_added, local_tree=local_tree) File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 1524, in _diff elif isinstance(level.t1, Mapping): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen abc>", line 119, in __instancecheck__ AttributeError: __class__ Traceback (most recent call last): File "/usr/lib/python3/dist-packages/peewee.py", line 6970, in get return clone.execute(database)[0] ~~~~~~~~~~~~~~~~~~~~~~~^^^ File "/usr/lib/python3/dist-packages/peewee.py", line 4339, in __getitem__ return self.row_cache[item] ~~~~~~~~~~~~~~^^^^^^ IndexError: list index out of range During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/sublime_music/app.py", line 1003, in on_app_shutdown self.dbus_manager.shutdown() File "/usr/lib/python3/dist-packages/sublime_music/dbus/manager.py", line 99, in shutdown self.property_diff() File "/usr/lib/python3/dist-packages/sublime_music/dbus/manager.py", line 372, in property_diff new_property_dict = self.property_dict() ^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/sublime_music/dbus/manager.py", line 239, in property_dict "Metadata": self.get_mpris_metadata( ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/sublime_music/dbus/manager.py", line 335, in get_mpris_metadata artist_name = song.artist.name if song.artist else "" ^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/peewee.py", line 4486, in __get__ return self.get_rel_instance(instance) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/peewee.py", line 4477, in get_rel_instance obj = self.rel_model.get(self.field.rel_field == value) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/peewee.py", line 6522, in get return sq.get() ^^^^^^^^ File "/usr/lib/python3/dist-packages/peewee.py", line 6973, in get raise self.model.DoesNotExist('%s instance matching query does ' sublime_music.adapters.filesystem.models.ArtistDoesNotExist: <Model: Artist> instance matching query does not exist: SQL: SELECT "t1"."id", "t1"."name", "t1"."album_count", "t1"."starred", "t1"."biography", "t1"."music_brainz_id", "t1"."last_fm_url", "t1"."_artist_image_url_id" FROM "artist" AS "t1" WHERE ("t1"."id" = ?) LIMIT ? OFFSET ? Params: ['artist-74', 1, 0]
OpenPGP_signature
Description: OpenPGP digital signature

