|
|
@@ -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
|
|
|
|