Save playback position on manual scrobbles

This commit is contained in:
2023-04-18 11:15:56 -04:00
parent efde57078e
commit 61c9e362a8

View File

@ -707,11 +707,17 @@ class Scrobble(TimeStampedModel):
if force_finish: if force_finish:
self.played_to_completion = True self.played_to_completion = True
self.in_progress = False self.in_progress = False
if not self.playback_position_seconds:
self.playback_position_seconds = int(
(self.stop_timestamp - self.timestamp).total_seconds()
)
self.save( self.save(
update_fields=[ update_fields=[
"in_progress", "in_progress",
"played_to_completion", "played_to_completion",
"stop_timestamp", "stop_timestamp",
"playback_position_seconds",
] ]
) )
logger.info(f"stopping {self.id} from {self.source}") logger.info(f"stopping {self.id} from {self.source}")
@ -719,7 +725,6 @@ class Scrobble(TimeStampedModel):
class_name = self.media_obj.__class__.__name__ class_name = self.media_obj.__class__.__name__
if class_name in LONG_PLAY_MEDIA.values(): if class_name in LONG_PLAY_MEDIA.values():
check_long_play_for_finish(self) check_long_play_for_finish(self)
return
def pause(self) -> None: def pause(self) -> None:
if self.is_paused: if self.is_paused: