- Move all files from bruno-yaml/* to bruno/* - Maintains existing directory structure within categories - Updates bruno/user/auth files with OAuth2 refresh token flow - Updates bruno/user/profile files for user profile management - Adds bruno/dashboard/ directory with dashboard API tests - Preserves all existing test scenarios and OpenCollection YAML format - No functional changes - file reorganization only
93 lines
2.7 KiB
YAML
93 lines
2.7 KiB
YAML
info:
|
|
name: Sync Progress - Single Book
|
|
type: http
|
|
seq: 1
|
|
|
|
http:
|
|
method: POST
|
|
url: '{{base_url}}/api/sync/koreader/progress'
|
|
auth: inherit
|
|
headers:
|
|
- key: Content-Type
|
|
value: application/json
|
|
body:
|
|
type: json
|
|
json:
|
|
library_id: optional-library-uuid
|
|
books:
|
|
- uuid: book-uuid-here
|
|
title: Book Title
|
|
authors:
|
|
- Author Name
|
|
progress: 0.45
|
|
percentage: 0.45
|
|
last_read: '2026-01-30T20:00:00Z'
|
|
chapter: 3
|
|
epubcfi: 'epubcfi(/6/4/2:15)'
|
|
character: 15432
|
|
|
|
docs: |-
|
|
## Sync KOReader Progress - Single Book
|
|
|
|
Synchronizes reading progress for a single book from KOReader device.
|
|
|
|
**Method:** POST
|
|
|
|
**Endpoint:** /api/sync/koreader/progress
|
|
|
|
**Authentication:** Bearer token (koreader_device_token)
|
|
|
|
**Request Body:**
|
|
- `library_id` (string, optional): Library UUID for multi-library setups
|
|
- `books` (array): Array with single book progress
|
|
- `uuid` (string): Unique book identifier (often SHA-256 hash)
|
|
- `title` (string): Book title
|
|
- `authors` (array): List of authors
|
|
- `progress` (number): Progress decimal (0.0 to 1.0)
|
|
- `percentage` (number): Progress percentage (0.45 = 45%)
|
|
- `last_read` (string): ISO 8601 timestamp of last read
|
|
- `chapter` (integer): Current chapter number
|
|
- `epubcfi` (string): EPUB Canonical Fragment Identifier
|
|
- `character` (integer): Character position in book
|
|
- `page` (integer, optional): Current page number
|
|
|
|
**Response:**
|
|
- `synced` (integer): Number of books synced
|
|
- `timestamp` (string): Server sync timestamp
|
|
- `books` (array): Sync results
|
|
- `uuid` (string): Book UUID
|
|
- `status` (string): `synced`, `updated`, `skipped`
|
|
- `server_progress` (object): Server-side progress data
|
|
|
|
**Status Codes:**
|
|
- 200: Success
|
|
- 401: Unauthorized
|
|
- 400: Invalid request format
|
|
|
|
**KOReader Progress Tracking:**
|
|
- SHA-256 based book identification (universal across devices)
|
|
- EPUB CFI for precise location (standard format)
|
|
- Chapter-based navigation
|
|
- Character-level precision
|
|
- Supports EPUB, FB2, PDF, DJVU, MOBI formats
|
|
|
|
**EPUB CFI Format:**
|
|
- Standardized location format for EPUBs
|
|
- Example: `epubcfi(/6/4/2:15)`
|
|
- Identifies exact position even after reflow
|
|
- Works across different devices/apps
|
|
- Preserved after file modifications
|
|
|
|
**Book Identification:**
|
|
- Primary: SHA-256 hash of book file
|
|
- Universal: Same book = same UUID across devices
|
|
- Format-agnostic: Works for any supported format
|
|
- Case-sensitive: Hash must match exactly
|
|
|
|
**Use Cases:**
|
|
- Real-time page turn sync
|
|
- Progress backup
|
|
- Cross-device continuity
|
|
- Reading time tracking
|
|
- Chapter completion detection
|