From ea09604ce935ca3d75ddd8a545ae6dbe6c6ef4ca Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 8 Jun 2023 14:42:28 +0200 Subject: [PATCH] Display a message when rating submission fails due to server error - a message is written to status bar and history, translatable - another message is sent via log.error() --- picard/ui/ratingwidget.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/picard/ui/ratingwidget.py b/picard/ui/ratingwidget.py index 2bf2a3878d..4fd87e0440 100644 --- a/picard/ui/ratingwidget.py +++ b/picard/ui/ratingwidget.py @@ -93,6 +93,15 @@ def _getRatingFromPosition(self, position): rating = self._maximum return rating + def _submitted(self, document, http, error): + if error: + self.tagger.window.set_statusbar_message( + N_("Failed to submit rating for track '%(track_title)s' due to server error %(error)d"), + {'track_title': self._track.metadata['title'], 'error': error}, + echo=None, + ) + log.error("Failed to submit rating for %s (server HTTP error %d)", self._track, error) + def _update_track(self): track = self._track rating = str(self._rating) @@ -103,7 +112,7 @@ def _update_track(self): if config.setting["submit_ratings"]: ratings = {("recording", track.id): self._rating} try: - self.tagger.mb_api.submit_ratings(ratings, None) + self.tagger.mb_api.submit_ratings(ratings, self._submitted) except ValueError: # This should never happen as self._rating is always an integer log.error("Failed to submit rating for recording %s", track.id, exc_info=True)