Running the progress command on an existing SQLite database gives me an error, maybe this is a new field in later firmware updates?
kobuddy --db 202508011.sqlite progress 2025-08-12 02:03:19 - kobuddy - INFO - Using 202508011.sqlite for highlights 2025-08-12 02:03:19 - kobuddy - INFO - processing 202508011.sqlite Traceback (most recent call last): File "/Users/USERNAME/.pyenv/versions/3.13.1/bin/kobuddy", line 8, in <module> sys.exit(main()) ~~~~^^ File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/__main__.py", line 74, in main print_progress(errors=args.errors) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^ File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/__init__.py", line 1070, in print_progress for bevents in get_books_with_events(**kwargs): ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^ File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/__init__.py", line 1060, in get_books_with_events vit = sorted(vit, key=lambda be: be.last) File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/common.py", line 61, in it_val for r in vit: ^^^ File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/__init__.py", line 1051, in iter_books_with_events for book, events in group_by_key(vit, key=lambda e: e.book).items(): ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/common.py", line 44, in group_by_key for i in l: ^ File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/common.py", line 61, in it_val for r in vit: ^^^ File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/__init__.py", line 959, in iter_events for x in _iter_events_aux(**kwargs): ~~~~~~~~~~~~~~~~^^^^^^^^^^ File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/__init__.py", line 568, in _iter_events_aux raise e File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/__init__.py", line 565, in _iter_events_aux yield from _iter_events_aux_Event(row=row, books=books, idx=i) File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/__init__.py", line 713, in _iter_events_aux_Event raise RuntimeError(f'Unexpected event kind: {name}\n' + context()) RuntimeError: Unexpected event kind: b'StartPercentage' row: <sqlite3.Row object at 0x103470a30> blob: bytearray(b'\x00\x00\x00\r\x00\x00\x00\x12\x00w\x00o\x00r\x00d\x00s\x00R\x00e\x00a\x00d\x00\x00\x00\x02\x00\x00\x00\x00\xd1\x00\x00\x00\x14\x00w\x00o\x00r\x00d\x00C\x00o\x00u\x00n\x00t\x00s\x00\x00\x00\t\x00\x00\x00\x00\x0c\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x0f\x00\x00\x00\x02\x00\x00\x00\x00\n\x00\x00\x00\x02\x00\x00\x00\x00\x1d\x00\x00\x00\x02\x00\x00\x00\x00\x1d\x00\x00\x00\x02\x00\x00\x00\x00\xd6\x00\x00\x00\x02\x00\x00\x00\x00\xd6\x00\x00\x00\x02\x00\x00\x00\x00\xd6\x00\x00\x00\x02\x00\x00\x00\x00\xd6\x00\x00\x00\x02\x00\x00\x00\x00\xd1\x00\x00\x00\x02\x00\x00\x00\x00\xd1\x00\x00\x00\x1e\x00e\x00v\x00e\x00n\x00t\x00T\x00i\x00m\x00e\x00s\x00t\x00a\x00m\x00p\x00s\x00\x00\x00\t\x00\x00\x00\x00\r\x00\x00\x00\x03\x00g\x80\x92l\x00\x00\x00\x03\x00g\x80\x92n\x00\x00\x00\x03\x00g\x80\x92p\x00\x00\x00\x03\x00g\x80\x92q\x00\x00\x00\x03\x00g\x80\x92r\x00\x00\x00\x03\x00g\x80\x92s\x00\x00\x00\x03\x00g\x80\x92t\x00\x00\x00\x03\x00g\x80\x92u\x00\x00\x00\x03\x00g\x80\x92v\x00\x00\x00\x03\x00g\x80\x92v\x00\x00\x00\x03\x00g\x80\x92z\x00\x00\x00\x03\x00g\x80\x92{\x00\x00\x00\x03\x00g\x80\x92\x83\x00\x00\x00\x10\x00V\x00i\x00e\x00w\x00T\x00y\x00p\x00e\x00\x00\x00\n\x00\x00\x00\x00\x16\x00R\x00e\x00a\x00d\x00i\x00n\x00g\x00V\x00i\x00e\x00w\x00\x00\x00\x1e\x00S\x00t\x00a\x00r\x00t\x00P\x00e\x00r\x00c\x00e\x00n\x00t\x00a\x00g\x00e\x00\x00\x00\x00\x01\xff\xff\xff\xff\x00\x00\x00,\x00P\x00a\x00g\x00e\x00s\x00T\x00u\x00r\x00n\x00e\x00d\x00T\x00h\x00i\x00s\x00S\x00e\x00s\x00s\x00i\x00o\x00n\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00O\x00r\x00i\x00e\x00n\x00t\x00a\x00t\x00i\x00o\x00n\x00\x00\x00\n\x00\x00\x00\x00\x10\x00P\x00o\x00r\x00t\x00r\x00a\x00i\x00t\x00\x00\x00\x06\x00G\x00A\x004\x00\x00\x00\x08\x00\x00\x00\x00\x04\x00\x00\x00\x16\x00o\x00r\x00i\x00e\x00n\x00t\x00a\x00t\x00i\x00o\x00n\x00\x00\x00\n\x00\x00\x00\x00\x10\x00P\x00o\x00r\x00t\x00r\x00a\x00i\x00t\x00\x00\x00\x12\x00b\x00o\x00o\x00k\x00_\x00t\x00y\x00p\x00e\x00\x00\x00\n\x00\x00\x00\x00\x10\x00U\x00n\x00l\x00o\x00c\x00k\x00e\x00d\x00\x00\x00\x0e\x00b\x00o\x00o\x00k\x00_\x00i\x00d\x00\x00\x00\n\x00\x00\x00\x00H\x006\x00a\x008\x001\x004\x005\x00a\x000\x00-\x003\x006\x008\x00f\x00-\x004\x005\x007\x005\x00-\x009\x006\x00e\x00f\x00-\x001\x001\x006\x000\x009\x002\x001\x00a\x004\x008\x005\x005\x00\x00\x00\x16\x00b\x00o\x00o\x00k\x00_\x00f\x00o\x00r\x00m\x00a\x00t\x00\x00\x00\n\x00\x00\x00\x00\x12\x00K\x00O\x00B\x00O\x00_\x00E\x00P\x00U\x00B\x00\x00\x000\x00E\x00x\x00t\x00r\x00a\x00D\x00a\x00t\x00a\x00R\x00e\x00a\x00d\x00i\x00n\x00g\x00S\x00e\x00s\x00s\x00i\x00o\x00n\x00s\x00\x00\x00\x02\x00\x00\x00\x00\x02\x00\x00\x00.\x00E\x00x\x00t\x00r\x00a\x00D\x00a\x00t\x00a\x00R\x00e\x00a\x00d\x00i\x00n\x00g\x00S\x00e\x00c\x00o\x00n\x00d\x00s\x00\x00\x00\x02\x00\x00\x00\x00\x1d\x00\x00\x00(\x00E\x00x\x00t\x00r\x00a\x00D\x00a\x00t\x00a\x00D\x00a\x00t\x00e\x00C\x00r\x00e\x00a\x00t\x00e\x00d\x00\x00\x00\n\x00\x00\x00\x00(\x002\x000\x002\x005\x00-\x000\x001\x00-\x001\x000\x00T\x000\x003\x00:\x002\x002\x00:\x000\x006\x00Z\x00\x00\x00\x16\x00C\x00o\x00n\x00t\x00e\x00n\x00t\x00T\x00y\x00p\x00e\x00\x00\x00\x0c\x00\x00\x00\x00\x1bapplication/x-kobo-epub+zip\x00\x00\x00 \x00B\x00u\x00t\x00t\x00o\x00n\x00P\x00r\x00e\x00s\x00s\x00C\x00o\x00u\x00n\x00t\x00\x00\x00\x00\x01\xff\xff\xff\xff') remaining: bytearray(b'\x00\x00\x00\x00\x01\xff\xff\xff\xff\x00\x00\x00,\x00P\x00a\x00g\x00e\x00s\x00T\x00u\x00r\x00n\x00e\x00d\x00T\x00h\x00i\x00s\x00S\x00e\x00s\x00s\x00i\x00o\x00n\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00O\x00r\x00i\x00e\x00n\x00t\x00a\x00t\x00i\x00o\x00n\x00\x00\x00\n\x00\x00\x00\x00\x10\x00P\x00o\x00r\x00t\x00r\x00a\x00i\x00t\x00\x00\x00\x06\x00G\x00A\x004\x00\x00\x00\x08\x00\x00\x00\x00\x04\x00\x00\x00\x16\x00o\x00r\x00i\x00e\x00n\x00t\x00a\x00t\x00i\x00o\x00n\x00\x00\x00\n\x00\x00\x00\x00\x10\x00P\x00o\x00r\x00t\x00r\x00a\x00i\x00t\x00\x00\x00\x12\x00b\x00o\x00o\x00k\x00_\x00t\x00y\x00p\x00e\x00\x00\x00\n\x00\x00\x00\x00\x10\x00U\x00n\x00l\x00o\x00c\x00k\x00e\x00d\x00\x00\x00\x0e\x00b\x00o\x00o\x00k\x00_\x00i\x00d\x00\x00\x00\n\x00\x00\x00\x00H\x006\x00a\x008\x001\x004\x005\x00a\x000\x00-\x003\x006\x008\x00f\x00-\x004\x005\x007\x005\x00-\x009\x006\x00e\x00f\x00-\x001\x001\x006\x000\x009\x002\x001\x00a\x004\x008\x005\x005\x00\x00\x00\x16\x00b\x00o\x00o\x00k\x00_\x00f\x00o\x00r\x00m\x00a\x00t\x00\x00\x00\n\x00\x00\x00\x00\x12\x00K\x00O\x00B\x00O\x00_\x00E\x00P\x00U\x00B\x00\x00\x000\x00E\x00x\x00t\x00r\x00a\x00D\x00a\x00t\x00a\x00R\x00e\x00a\x00d\x00i\x00n\x00g\x00S\x00e\x00s\x00s\x00i\x00o\x00n\x00s\x00\x00\x00\x02\x00\x00\x00\x00\x02\x00\x00\x00.\x00E\x00x\x00t\x00r\x00a\x00D\x00a\x00t\x00a\x00R\x00e\x00a\x00d\x00i\x00n\x00g\x00S\x00e\x00c\x00o\x00n\x00d\x00s\x00\x00\x00\x02\x00\x00\x00\x00\x1d\x00\x00\x00(\x00E\x00x\x00t\x00r\x00a\x00D\x00a\x00t\x00a\x00D\x00a\x00t\x00e\x00C\x00r\x00e\x00a\x00t\x00e\x00d\x00\x00\x00\n\x00\x00\x00\x00(\x002\x000\x002\x005\x00-\x000\x001\x00-\x001\x000\x00T\x000\x003\x00:\x002\x002\x00:\x000\x006\x00Z\x00\x00\x00\x16\x00C\x00o\x00n\x00t\x00e\x00n\x00t\x00T\x00y\x00p\x00e\x00\x00\x00\x0c\x00\x00\x00\x00\x1bapplication/x-kobo-epub+zip\x00\x00\x00 \x00B\x00u\x00t\x00t\x00o\x00n\x00P\x00r\x00e\x00s\x00s\x00C\x00o\x00u\x00n\x00t\x00\x00\x00\x00\x01\xff\xff\xff\xff') parsed: {b'wordsRead': (b'\x00\x00\x00\x02\x00\x00\x00\x00\xd1',), b'wordCounts': b'\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x0f\x00\x00\x00\x02\x00\x00\x00\x00\n\x00\x00\x00\x02\x00\x00\x00\x00\x1d\x00\x00\x00\x02\x00\x00\x00\x00\x1d\x00\x00\x00\x02\x00\x00\x00\x00\xd6\x00\x00\x00\x02\x00\x00\x00\x00\xd6\x00\x00\x00\x02\x00\x00\x00\x00\xd6\x00\x00\x00\x02\x00\x00\x00\x00\xd6\x00\x00\x00\x02\x00\x00\x00\x00\xd1\x00\x00\x00\x02\x00\x00\x00\x00\xd1', b'eventTimestamps': [datetime.datetime(2025, 1, 10, 3, 22, 20, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 22, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 24, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 25, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 26, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 27, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 28, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 29, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 30, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 30, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 34, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 35, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 43, tzinfo=datetime.timezone.utc)], b'ViewType': b'\x00R\x00e\x00a\x00d\x00i\x00n\x00g\x00V\x00i\x00e\x00w'} xxx bytearray(b'\x00\x00\x00\x00\x01\xff\xff\xff\xff\x00\x00\x00,\x00P\x00a\x00g\x00e\x00s\x00T\x00u\x00r\x00') idx: 3 parts: 13 pos: 421
Running the progress command on an existing SQLite database gives me an error, maybe this is a new field in later firmware updates?
kobuddy --db 202508011.sqlite progress 2025-08-12 02:03:19 - kobuddy - INFO - Using 202508011.sqlite for highlights 2025-08-12 02:03:19 - kobuddy - INFO - processing 202508011.sqlite Traceback (most recent call last): File "/Users/USERNAME/.pyenv/versions/3.13.1/bin/kobuddy", line 8, in <module> sys.exit(main()) ~~~~^^ File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/__main__.py", line 74, in main print_progress(errors=args.errors) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^ File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/__init__.py", line 1070, in print_progress for bevents in get_books_with_events(**kwargs): ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^ File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/__init__.py", line 1060, in get_books_with_events vit = sorted(vit, key=lambda be: be.last) File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/common.py", line 61, in it_val for r in vit: ^^^ File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/__init__.py", line 1051, in iter_books_with_events for book, events in group_by_key(vit, key=lambda e: e.book).items(): ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/common.py", line 44, in group_by_key for i in l: ^ File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/common.py", line 61, in it_val for r in vit: ^^^ File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/__init__.py", line 959, in iter_events for x in _iter_events_aux(**kwargs): ~~~~~~~~~~~~~~~~^^^^^^^^^^ File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/__init__.py", line 568, in _iter_events_aux raise e File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/__init__.py", line 565, in _iter_events_aux yield from _iter_events_aux_Event(row=row, books=books, idx=i) File "/Users/USERNAME/.pyenv/versions/3.13.1/lib/python3.13/site-packages/kobuddy/__init__.py", line 713, in _iter_events_aux_Event raise RuntimeError(f'Unexpected event kind: {name}\n' + context()) RuntimeError: Unexpected event kind: b'StartPercentage' row: <sqlite3.Row object at 0x103470a30> blob: bytearray(b'\x00\x00\x00\r\x00\x00\x00\x12\x00w\x00o\x00r\x00d\x00s\x00R\x00e\x00a\x00d\x00\x00\x00\x02\x00\x00\x00\x00\xd1\x00\x00\x00\x14\x00w\x00o\x00r\x00d\x00C\x00o\x00u\x00n\x00t\x00s\x00\x00\x00\t\x00\x00\x00\x00\x0c\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x0f\x00\x00\x00\x02\x00\x00\x00\x00\n\x00\x00\x00\x02\x00\x00\x00\x00\x1d\x00\x00\x00\x02\x00\x00\x00\x00\x1d\x00\x00\x00\x02\x00\x00\x00\x00\xd6\x00\x00\x00\x02\x00\x00\x00\x00\xd6\x00\x00\x00\x02\x00\x00\x00\x00\xd6\x00\x00\x00\x02\x00\x00\x00\x00\xd6\x00\x00\x00\x02\x00\x00\x00\x00\xd1\x00\x00\x00\x02\x00\x00\x00\x00\xd1\x00\x00\x00\x1e\x00e\x00v\x00e\x00n\x00t\x00T\x00i\x00m\x00e\x00s\x00t\x00a\x00m\x00p\x00s\x00\x00\x00\t\x00\x00\x00\x00\r\x00\x00\x00\x03\x00g\x80\x92l\x00\x00\x00\x03\x00g\x80\x92n\x00\x00\x00\x03\x00g\x80\x92p\x00\x00\x00\x03\x00g\x80\x92q\x00\x00\x00\x03\x00g\x80\x92r\x00\x00\x00\x03\x00g\x80\x92s\x00\x00\x00\x03\x00g\x80\x92t\x00\x00\x00\x03\x00g\x80\x92u\x00\x00\x00\x03\x00g\x80\x92v\x00\x00\x00\x03\x00g\x80\x92v\x00\x00\x00\x03\x00g\x80\x92z\x00\x00\x00\x03\x00g\x80\x92{\x00\x00\x00\x03\x00g\x80\x92\x83\x00\x00\x00\x10\x00V\x00i\x00e\x00w\x00T\x00y\x00p\x00e\x00\x00\x00\n\x00\x00\x00\x00\x16\x00R\x00e\x00a\x00d\x00i\x00n\x00g\x00V\x00i\x00e\x00w\x00\x00\x00\x1e\x00S\x00t\x00a\x00r\x00t\x00P\x00e\x00r\x00c\x00e\x00n\x00t\x00a\x00g\x00e\x00\x00\x00\x00\x01\xff\xff\xff\xff\x00\x00\x00,\x00P\x00a\x00g\x00e\x00s\x00T\x00u\x00r\x00n\x00e\x00d\x00T\x00h\x00i\x00s\x00S\x00e\x00s\x00s\x00i\x00o\x00n\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00O\x00r\x00i\x00e\x00n\x00t\x00a\x00t\x00i\x00o\x00n\x00\x00\x00\n\x00\x00\x00\x00\x10\x00P\x00o\x00r\x00t\x00r\x00a\x00i\x00t\x00\x00\x00\x06\x00G\x00A\x004\x00\x00\x00\x08\x00\x00\x00\x00\x04\x00\x00\x00\x16\x00o\x00r\x00i\x00e\x00n\x00t\x00a\x00t\x00i\x00o\x00n\x00\x00\x00\n\x00\x00\x00\x00\x10\x00P\x00o\x00r\x00t\x00r\x00a\x00i\x00t\x00\x00\x00\x12\x00b\x00o\x00o\x00k\x00_\x00t\x00y\x00p\x00e\x00\x00\x00\n\x00\x00\x00\x00\x10\x00U\x00n\x00l\x00o\x00c\x00k\x00e\x00d\x00\x00\x00\x0e\x00b\x00o\x00o\x00k\x00_\x00i\x00d\x00\x00\x00\n\x00\x00\x00\x00H\x006\x00a\x008\x001\x004\x005\x00a\x000\x00-\x003\x006\x008\x00f\x00-\x004\x005\x007\x005\x00-\x009\x006\x00e\x00f\x00-\x001\x001\x006\x000\x009\x002\x001\x00a\x004\x008\x005\x005\x00\x00\x00\x16\x00b\x00o\x00o\x00k\x00_\x00f\x00o\x00r\x00m\x00a\x00t\x00\x00\x00\n\x00\x00\x00\x00\x12\x00K\x00O\x00B\x00O\x00_\x00E\x00P\x00U\x00B\x00\x00\x000\x00E\x00x\x00t\x00r\x00a\x00D\x00a\x00t\x00a\x00R\x00e\x00a\x00d\x00i\x00n\x00g\x00S\x00e\x00s\x00s\x00i\x00o\x00n\x00s\x00\x00\x00\x02\x00\x00\x00\x00\x02\x00\x00\x00.\x00E\x00x\x00t\x00r\x00a\x00D\x00a\x00t\x00a\x00R\x00e\x00a\x00d\x00i\x00n\x00g\x00S\x00e\x00c\x00o\x00n\x00d\x00s\x00\x00\x00\x02\x00\x00\x00\x00\x1d\x00\x00\x00(\x00E\x00x\x00t\x00r\x00a\x00D\x00a\x00t\x00a\x00D\x00a\x00t\x00e\x00C\x00r\x00e\x00a\x00t\x00e\x00d\x00\x00\x00\n\x00\x00\x00\x00(\x002\x000\x002\x005\x00-\x000\x001\x00-\x001\x000\x00T\x000\x003\x00:\x002\x002\x00:\x000\x006\x00Z\x00\x00\x00\x16\x00C\x00o\x00n\x00t\x00e\x00n\x00t\x00T\x00y\x00p\x00e\x00\x00\x00\x0c\x00\x00\x00\x00\x1bapplication/x-kobo-epub+zip\x00\x00\x00 \x00B\x00u\x00t\x00t\x00o\x00n\x00P\x00r\x00e\x00s\x00s\x00C\x00o\x00u\x00n\x00t\x00\x00\x00\x00\x01\xff\xff\xff\xff') remaining: bytearray(b'\x00\x00\x00\x00\x01\xff\xff\xff\xff\x00\x00\x00,\x00P\x00a\x00g\x00e\x00s\x00T\x00u\x00r\x00n\x00e\x00d\x00T\x00h\x00i\x00s\x00S\x00e\x00s\x00s\x00i\x00o\x00n\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00O\x00r\x00i\x00e\x00n\x00t\x00a\x00t\x00i\x00o\x00n\x00\x00\x00\n\x00\x00\x00\x00\x10\x00P\x00o\x00r\x00t\x00r\x00a\x00i\x00t\x00\x00\x00\x06\x00G\x00A\x004\x00\x00\x00\x08\x00\x00\x00\x00\x04\x00\x00\x00\x16\x00o\x00r\x00i\x00e\x00n\x00t\x00a\x00t\x00i\x00o\x00n\x00\x00\x00\n\x00\x00\x00\x00\x10\x00P\x00o\x00r\x00t\x00r\x00a\x00i\x00t\x00\x00\x00\x12\x00b\x00o\x00o\x00k\x00_\x00t\x00y\x00p\x00e\x00\x00\x00\n\x00\x00\x00\x00\x10\x00U\x00n\x00l\x00o\x00c\x00k\x00e\x00d\x00\x00\x00\x0e\x00b\x00o\x00o\x00k\x00_\x00i\x00d\x00\x00\x00\n\x00\x00\x00\x00H\x006\x00a\x008\x001\x004\x005\x00a\x000\x00-\x003\x006\x008\x00f\x00-\x004\x005\x007\x005\x00-\x009\x006\x00e\x00f\x00-\x001\x001\x006\x000\x009\x002\x001\x00a\x004\x008\x005\x005\x00\x00\x00\x16\x00b\x00o\x00o\x00k\x00_\x00f\x00o\x00r\x00m\x00a\x00t\x00\x00\x00\n\x00\x00\x00\x00\x12\x00K\x00O\x00B\x00O\x00_\x00E\x00P\x00U\x00B\x00\x00\x000\x00E\x00x\x00t\x00r\x00a\x00D\x00a\x00t\x00a\x00R\x00e\x00a\x00d\x00i\x00n\x00g\x00S\x00e\x00s\x00s\x00i\x00o\x00n\x00s\x00\x00\x00\x02\x00\x00\x00\x00\x02\x00\x00\x00.\x00E\x00x\x00t\x00r\x00a\x00D\x00a\x00t\x00a\x00R\x00e\x00a\x00d\x00i\x00n\x00g\x00S\x00e\x00c\x00o\x00n\x00d\x00s\x00\x00\x00\x02\x00\x00\x00\x00\x1d\x00\x00\x00(\x00E\x00x\x00t\x00r\x00a\x00D\x00a\x00t\x00a\x00D\x00a\x00t\x00e\x00C\x00r\x00e\x00a\x00t\x00e\x00d\x00\x00\x00\n\x00\x00\x00\x00(\x002\x000\x002\x005\x00-\x000\x001\x00-\x001\x000\x00T\x000\x003\x00:\x002\x002\x00:\x000\x006\x00Z\x00\x00\x00\x16\x00C\x00o\x00n\x00t\x00e\x00n\x00t\x00T\x00y\x00p\x00e\x00\x00\x00\x0c\x00\x00\x00\x00\x1bapplication/x-kobo-epub+zip\x00\x00\x00 \x00B\x00u\x00t\x00t\x00o\x00n\x00P\x00r\x00e\x00s\x00s\x00C\x00o\x00u\x00n\x00t\x00\x00\x00\x00\x01\xff\xff\xff\xff') parsed: {b'wordsRead': (b'\x00\x00\x00\x02\x00\x00\x00\x00\xd1',), b'wordCounts': b'\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x0f\x00\x00\x00\x02\x00\x00\x00\x00\n\x00\x00\x00\x02\x00\x00\x00\x00\x1d\x00\x00\x00\x02\x00\x00\x00\x00\x1d\x00\x00\x00\x02\x00\x00\x00\x00\xd6\x00\x00\x00\x02\x00\x00\x00\x00\xd6\x00\x00\x00\x02\x00\x00\x00\x00\xd6\x00\x00\x00\x02\x00\x00\x00\x00\xd6\x00\x00\x00\x02\x00\x00\x00\x00\xd1\x00\x00\x00\x02\x00\x00\x00\x00\xd1', b'eventTimestamps': [datetime.datetime(2025, 1, 10, 3, 22, 20, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 22, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 24, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 25, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 26, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 27, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 28, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 29, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 30, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 30, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 34, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 35, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 10, 3, 22, 43, tzinfo=datetime.timezone.utc)], b'ViewType': b'\x00R\x00e\x00a\x00d\x00i\x00n\x00g\x00V\x00i\x00e\x00w'} xxx bytearray(b'\x00\x00\x00\x00\x01\xff\xff\xff\xff\x00\x00\x00,\x00P\x00a\x00g\x00e\x00s\x00T\x00u\x00r\x00') idx: 3 parts: 13 pos: 421