[books] Fix comic scrobbles overrwriting one another
This commit is contained in:
@ -991,7 +991,7 @@ class Scrobble(TimeStampedModel):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def can_be_updated(self) -> bool:
|
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(
|
logger.info(
|
||||||
"[scrobbling] cannot be updated, long play media",
|
"[scrobbling] cannot be updated, long play media",
|
||||||
extra={
|
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 it's marked as stopped, send it through our update mechanism, which will complete it
|
||||||
if scrobble and (
|
if scrobble and (
|
||||||
scrobble.can_be_updated
|
scrobble.can_be_updated
|
||||||
or read_log_page
|
or (read_log_page and scrobble.can_be_updated)
|
||||||
or scrobble_data["playback_status"] == "stopped"
|
or scrobble_data["playback_status"] == "stopped"
|
||||||
):
|
):
|
||||||
if read_log_page:
|
if read_log_page:
|
||||||
@ -1496,7 +1496,7 @@ class Scrobble(TimeStampedModel):
|
|||||||
# --- Sort safely by numeric page_number ---
|
# --- Sort safely by numeric page_number ---
|
||||||
def safe_page_number(entry):
|
def safe_page_number(entry):
|
||||||
try:
|
try:
|
||||||
return int(entry.get("page_number", 0))
|
return int(getattr("page_number", entry), 0)
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
return float("inf") # push invalid entries to the end
|
return float("inf") # push invalid entries to the end
|
||||||
|
|
||||||
|
|||||||
@ -625,7 +625,7 @@ def scrobble_start(request, uuid):
|
|||||||
|
|
||||||
if (
|
if (
|
||||||
user.profile.redirect_to_webpage
|
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")
|
logger.info(f"Redirecting to {media_obj} detail page")
|
||||||
return HttpResponseRedirect(media_obj.url)
|
return HttpResponseRedirect(media_obj.url)
|
||||||
|
|||||||
Reference in New Issue
Block a user