Просмотр исходного кода

[webpages] Push to archivebox in a different place

Colin Powell 1 год назад
Родитель
Сommit
89541a13f2

+ 1 - 1
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):

+ 8 - 8
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

+ 4 - 1
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: