[books] Fix ordering problem with pages

This commit is contained in:
2024-04-16 03:00:20 -04:00
parent 2349c39487
commit d93c827b80

View File

@ -1,3 +1,4 @@
from collections import OrderedDict
import logging import logging
import re import re
import sqlite3 import sqlite3
@ -224,10 +225,9 @@ def build_scrobbles_from_book_map(
pages_processed = 0 pages_processed = 0
total_pages_read = len(book_map[koreader_book_id]["pages"]) total_pages_read = len(book_map[koreader_book_id]["pages"])
ordered_pages = sorted(book_map[koreader_book_id]["pages"].items(), key=lambda x: x[1]["start_ts"])
for cur_page_number, stats in book_map[koreader_book_id][ for cur_page_number, stats in ordered_pages:
"pages"
].items():
pages_processed += 1 pages_processed += 1
seconds_from_last_page = 0 seconds_from_last_page = 0
@ -249,14 +249,15 @@ def build_scrobbles_from_book_map(
should_create_scrobble = True should_create_scrobble = True
if should_create_scrobble: if should_create_scrobble:
scrobble_page_data = OrderedDict(sorted(scrobble_page_data.items(), key=lambda x: x[1]["start_ts"]))
first_page = scrobble_page_data.get( first_page = scrobble_page_data.get(
list(scrobble_page_data.keys())[0] list(scrobble_page_data.keys())[0]
) )
last_page = scrobble_page_data.get( last_page = scrobble_page_data.get(
list(scrobble_page_data.keys())[-1] list(scrobble_page_data.keys())[-1]
) )
start_ts = int(first_page.get("start_ts")) start_ts = int(stats.get("start_ts"))
end_ts = start_ts + playback_position_seconds end_ts = int(last_page.get("end_ts"))
timestamp = datetime.fromtimestamp(start_ts).replace( timestamp = datetime.fromtimestamp(start_ts).replace(
tzinfo=user.profile.tzinfo tzinfo=user.profile.tzinfo