Fix scrobbing pages

This commit is contained in:
2023-03-27 01:31:05 -04:00
parent d19838a26f
commit ee01ffa4ad
3 changed files with 7 additions and 4 deletions

View File

@ -22,6 +22,7 @@ class AuthorAdmin(admin.ModelAdmin):
class PageAdmin(admin.ModelAdmin): class PageAdmin(admin.ModelAdmin):
date_hierarchy = "created" date_hierarchy = "created"
list_filter = ("book",) list_filter = ("book",)
ordering = ("book", "number")
@admin.register(Book) @admin.register(Book)

View File

@ -130,6 +130,7 @@ def build_scrobbles_from_pages(
new_scrobbles = [] new_scrobbles = []
new_scrobbles = [] new_scrobbles = []
pages_created = []
for page_row in rows: for page_row in rows:
koreader_id = page_row[KoReaderPageStatColumn.ID_BOOK.value] koreader_id = page_row[KoReaderPageStatColumn.ID_BOOK.value]
page_number = page_row[KoReaderPageStatColumn.PAGE.value] page_number = page_row[KoReaderPageStatColumn.PAGE.value]
@ -147,8 +148,9 @@ def build_scrobbles_from_pages(
KoReaderPageStatColumn.DURATION.value KoReaderPageStatColumn.DURATION.value
] ]
page.save(update_fields=["start_time", "duration_seconds"]) page.save(update_fields=["start_time", "duration_seconds"])
page.refresh_from_db() pages_created.append(page)
for page in pages_created:
if page.is_scrobblable: if page.is_scrobblable:
# Page number is a placeholder, we'll re-preocess this after creation # Page number is a placeholder, we'll re-preocess this after creation
logger.debug( logger.debug(
@ -161,7 +163,7 @@ def build_scrobbles_from_pages(
timestamp=page.start_time, timestamp=page.start_time,
played_to_completion=True, played_to_completion=True,
in_progress=False, in_progress=False,
book_pages_read=page_number, book_pages_read=page.number,
long_play_complete=False, long_play_complete=False,
) )
new_scrobbles.append(new_scrobble) new_scrobbles.append(new_scrobble)

View File

@ -231,7 +231,7 @@ class Page(TimeStampedModel):
@property @property
def seconds_to_next_page(self) -> int: def seconds_to_next_page(self) -> int:
seconds = 0 seconds = 999999 # Effectively infnity time as we have no next
if not self.end_time: if not self.end_time:
self._set_end_time() self._set_end_time()
if self.next: if self.next:
@ -265,7 +265,7 @@ class Page(TimeStampedModel):
def _set_end_time(self) -> None: def _set_end_time(self) -> None:
if self.end_time: if self.end_time:
return self.end_time return
self.end_time = self.start_time + timedelta( self.end_time = self.start_time + timedelta(
seconds=self.duration_seconds seconds=self.duration_seconds