diff --git a/vrobbler/apps/scrobbles/migrations/0051_scrobble_timezone.py b/vrobbler/apps/scrobbles/migrations/0051_scrobble_timezone.py index 02fc1e9..4ce6989 100644 --- a/vrobbler/apps/scrobbles/migrations/0051_scrobble_timezone.py +++ b/vrobbler/apps/scrobbles/migrations/0051_scrobble_timezone.py @@ -27,7 +27,7 @@ def set_default_timezone(apps, schema_editor): ) ): s.timezone = "Europe/Paris" - s.save(update_fields=["timezone"], push_media=False) + s.save(update_fields=["timezone"]) class Migration(migrations.Migration): diff --git a/vrobbler/apps/scrobbles/models.py b/vrobbler/apps/scrobbles/models.py index 4a43f2e..c2041da 100644 --- a/vrobbler/apps/scrobbles/models.py +++ b/vrobbler/apps/scrobbles/models.py @@ -554,7 +554,7 @@ class Scrobble(TimeStampedModel): long_play_seconds = models.BigIntegerField(**BNULL) long_play_complete = models.BooleanField(**BNULL) - def save(self, push_media=True, *args, **kwargs): + def save(self, *args, **kwargs): if not self.uuid: self.uuid = uuid4() @@ -569,11 +569,12 @@ class Scrobble(TimeStampedModel): self.timestamp = self.timestamp.replace(microsecond=0) self.media_type = self.MediaType(self.media_obj.__class__.__name__) - pushable_media = ( - hasattr(self.media_obj, "push_to_archivebox") - and callable(self.media_obj.push_to_archivebox) - and push_media - ) + return super(Scrobble, self).save(*args, **kwargs) + + def push_to_archivebox(self): + pushable_media = hasattr( + self.media_obj, "push_to_archivebox" + ) and callable(self.media_obj.push_to_archivebox) if pushable_media and self.user.profile.archivebox_url: try: @@ -591,8 +592,6 @@ class Scrobble(TimeStampedModel): }, ) - return super(Scrobble, self).save(*args, **kwargs) - @property def tzinfo(self): return pytz.timezone(self.timezone) @@ -913,6 +912,7 @@ class Scrobble(TimeStampedModel): "source": source, }, ) + return cls.create(scrobble_data) @classmethod diff --git a/vrobbler/apps/scrobbles/scrobblers.py b/vrobbler/apps/scrobbles/scrobblers.py index f8af23c..a6452a1 100644 --- a/vrobbler/apps/scrobbles/scrobblers.py +++ b/vrobbler/apps/scrobbles/scrobblers.py @@ -341,7 +341,10 @@ def manual_scrobble_webpage(url: str, user_id: int): }, ) - return Scrobble.create_or_update(webpage, user_id, scrobble_dict) + scrobble = Scrobble.create_or_update(webpage, user_id, scrobble_dict) + # possibly async this? + scrobble.push_to_archivebox() + return scrobble def gpslogger_scrobble_location(data_dict: dict, user_id: int) -> Scrobble: