Procházet zdrojové kódy

Fix double scrobbling for real

Colin Powell před 2 roky
rodič
revize
7e2915850f
1 změnil soubory, kde provedl 5 přidání a 8 odebrání
  1. 5 8
      vrobbler/apps/scrobbles/models.py

+ 5 - 8
vrobbler/apps/scrobbles/models.py

@@ -246,6 +246,8 @@ class Scrobble(TimeStampedModel):
         scrobble_status = scrobble_data.pop('mopidy_status', None)
         if not scrobble_status:
             scrobble_status = scrobble_data.pop('jellyfin_status', None)
+        if not scrobble_status:
+            scrobble_status = "resumed"
 
         logger.debug(f"Scrobbling to {scrobble} with status {scrobble_status}")
         scrobble.update_ticks(scrobble_data)
@@ -285,7 +287,7 @@ class Scrobble(TimeStampedModel):
         check_scrobble_for_finish(self)
 
     def pause(self) -> None:
-        if self.is_paused and not self.played_to_completion:
+        if self.is_paused:
             logger.warning("Scrobble already paused")
             return
         self.is_paused = True
@@ -293,15 +295,10 @@ class Scrobble(TimeStampedModel):
         check_scrobble_for_finish(self)
 
     def resume(self) -> None:
-        if self.is_paused or not self.played_to_completion:
+        if self.is_paused or not self.in_progress:
             self.is_paused = False
             self.in_progress = True
-            return self.save(
-                update_fields=[
-                    "is_paused",
-                    "in_progress",
-                ]
-            )
+            return self.save(update_fields=["is_paused", "in_progress"])
 
     def update_ticks(self, data) -> None:
         self.playback_position_ticks = data.get("playback_position_ticks")