[books] Fix comic scrobbles overrwriting one another
This commit is contained in:
@ -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
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
Reference in New Issue
Block a user