Explorar o código

[books] Fix comic scrobbles overrwriting one another

Colin Powell hai 4 semanas
pai
achega
9277db97e5
Modificáronse 2 ficheiros con 4 adicións e 4 borrados
  1. 3 3
      vrobbler/apps/scrobbles/models.py
  2. 1 1
      vrobbler/apps/scrobbles/views.py

+ 3 - 3
vrobbler/apps/scrobbles/models.py

@@ -991,7 +991,7 @@ class Scrobble(TimeStampedModel):
 
     @property
     def can_be_updated(self) -> bool:
-        if self.media_obj.__class__.__name__ in LONG_PLAY_MEDIA.values():
+        if self.media_obj.__class__.__name__ in LONG_PLAY_MEDIA.values() and self.source != "readcomicsonline.ru":
             logger.info(
                 "[scrobbling] cannot be updated, long play media",
                 extra={
@@ -1172,7 +1172,7 @@ class Scrobble(TimeStampedModel):
             # If it's marked as stopped, send it through our update mechanism, which will complete it
             if scrobble and (
                 scrobble.can_be_updated
-                or read_log_page
+                or (read_log_page and scrobble.can_be_updated)
                 or scrobble_data["playback_status"] == "stopped"
             ):
                 if read_log_page:
@@ -1496,7 +1496,7 @@ class Scrobble(TimeStampedModel):
         # --- Sort safely by numeric page_number ---
         def safe_page_number(entry):
             try:
-                return int(entry.get("page_number", 0))
+                return int(getattr("page_number", entry), 0)
             except (ValueError, TypeError):
                 return float("inf")  # push invalid entries to the end
 

+ 1 - 1
vrobbler/apps/scrobbles/views.py

@@ -625,7 +625,7 @@ def scrobble_start(request, uuid):
 
     if (
         user.profile.redirect_to_webpage
-        and media_obj.__class__.__name__ == Scrobble.MediaType.WEBPAGE
+        and (media_obj.__class__.__name__ == Scrobble.MediaType.WEBPAGE or media_obj.__class__.__name__ == Scrobble.MediaType.BOOK)
     ):
         logger.info(f"Redirecting to {media_obj} detail page")
         return HttpResponseRedirect(media_obj.url)