ExportBookDto
One book inside a series, keyed for matching by path, name, and hash rather than by id: the whole point of the file is that ids on the far side are expected to be different.
completions object[]
Array [
completed_atstring<date-time>required
idstring<uuid>required
started_atstring<date-time>required
]
file_hashstring
Empty when the book was never analyzed; never treated as a value to match on in that case.
file_namestringrequired
Example:
v01.cbzpartial_hashstring
pathstringrequired
Relative to the series folder, so a series move does not invalidate it.
Example:
Vol 01/v01.cbzprogress object
The live resume position for one book. Retains r2_progression: it is the
only place the EPUB locator survives, since sessions strip it.
completedbooleanrequired
completed_at(string | null)<date-time>nullable
current_pageinteger<int32>required
progress_percentage(number | null)<double>nullable
r2_progressionstring | nullnullable
started_atstring<date-time>required
updated_atstring<date-time>required
sessions object[]
Omitted entirely (not an empty array) when the export was taken with
include_sessions=false.
Array [
active_duration_ms(integer | null)<int64>nullable
client_ended_atstring<date-time>required
client_started_atstring<date-time>required
device_idstringrequired
device_namestring | nullnullable
duration_sourcestringrequired
"measured", "inferred", or "unknown".
Example:
measuredidstring<uuid>required
kindstringrequired
"progress", "completed", or "reset".
Example:
progresspages_read(integer | null)<int32>nullable
passinteger<int32>required
server_recorded_atstring<date-time>required
to_page(integer | null)<int32>nullable
to_percentage(number | null)<double>nullable
]
ExportBookDto
{
"completions": [
{
"completed_at": "2024-07-29T15:51:28.071Z",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"started_at": "2024-07-29T15:51:28.071Z"
}
],
"file_hash": "string",
"file_name": "v01.cbz",
"partial_hash": "string",
"path": "Vol 01/v01.cbz",
"progress": {
"completed": true,
"completed_at": "2024-07-29T15:51:28.071Z",
"current_page": 0,
"progress_percentage": 0,
"r2_progression": "string",
"started_at": "2024-07-29T15:51:28.071Z",
"updated_at": "2024-07-29T15:51:28.071Z"
},
"sessions": "Unknown Type: array,null"
}