Skip to main content

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 [
  • completedAtstring<date-time>required
    idstring<uuid>required
    startedAtstring<date-time>required
  • ]
  • fileHashstring

    Empty when the book was never analyzed; never treated as a value to match on in that case.

    fileNamestringrequired
    Example: v01.cbz
    partialHashstring
    pathstringrequired

    Relative to the series folder, so a series move does not invalidate it.

    Example: Vol 01/v01.cbz
    progress 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
    completedAt(string | null)<date-time>nullable
    currentPageinteger<int32>required
    progressPercentage(number | null)<double>nullable
    r2Progressionstring | nullnullable
    startedAtstring<date-time>required
    updatedAtstring<date-time>required
    sessions object[]

    Omitted entirely (not an empty array) when the export was taken with includeSessions=false.

  • Array [
  • activeDurationMs(integer | null)<int64>nullable
    clientEndedAtstring<date-time>required
    clientStartedAtstring<date-time>required
    deviceIdstringrequired
    deviceNamestring | nullnullable
    durationSourcestringrequired

    "measured", "inferred", or "unknown".

    Example: measured
    idstring<uuid>required
    kindstringrequired

    "progress", "completed", or "reset".

    Example: progress
    pagesRead(integer | null)<int32>nullable
    passinteger<int32>required
    serverRecordedAtstring<date-time>required
    toPage(integer | null)<int32>nullable
    toPercentage(number | null)<double>nullable
  • ]
  • ExportBookDto
    {
    "completions": [
    {
    "completedAt": "2024-07-29T15:51:28.071Z",
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "startedAt": "2024-07-29T15:51:28.071Z"
    }
    ],
    "fileHash": "string",
    "fileName": "v01.cbz",
    "partialHash": "string",
    "path": "Vol 01/v01.cbz",
    "progress": {
    "completed": true,
    "completedAt": "2024-07-29T15:51:28.071Z",
    "currentPage": 0,
    "progressPercentage": 0,
    "r2Progression": "string",
    "startedAt": "2024-07-29T15:51:28.071Z",
    "updatedAt": "2024-07-29T15:51:28.071Z"
    },
    "sessions": "Unknown Type: array,null"
    }