Fix scrobbing pages
This commit is contained in:
@ -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)
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user