18 Commits

Author SHA1 Message Date
john-okeefe 1621f1eaa2 Fix crash: device_updated is boolean not table 2026-05-30 10:33:26 -04:00
john-okeefe 1cef347e9c Fix: require json.util with dot notation not slash 2026-05-30 10:31:12 -04:00
john-okeefe 618793a075 Fix JSON encoding: force empty tables to encode as arrays
Lua's json.encode produces {} for empty tables instead of [].
Use json.util.InitArray to mark tables as arrays so they encode
correctly as [] for authors, bookmarks, highlights, notes, and books.
2026-05-30 10:24:56 -04:00
john-okeefe ac84585e50 Fix progress sync: match server schema for authors and chapter
- authors: changed from string to array (server expects []string)
- chapter: removed (server expects *int, not a title string)
2026-05-30 10:16:46 -04:00
john-okeefe edc4d5b3b5 Fix crash: use string.sub instead of non-existent startswith 2026-05-29 22:57:00 -04:00
john-okeefe 0c215ea00f Fix crash: use util.startswith instead of string method 2026-05-29 22:55:19 -04:00
john-okeefe 98eb57e3f7 Fix OPDS: add auth token to URL and hot-update in-memory servers
- Append ?token= auth param to OPDS catalog URL
- Replace any existing stale Bookhoard entry (with or without token)
- Hot-update OPDS plugin's in-memory servers table so catalog
  appears immediately without restarting KOReader
2026-05-29 22:51:50 -04:00
john-okeefe 89bdcc50f3 Auto-add OPDS catalog to KOReader after device registration
Writes directly to KOReader's opds.lua settings so the user
doesn't have to type the long URL. Also updates the manual
menu item to auto-configure instead of showing the URL.
2026-05-29 22:42:26 -04:00
john-okeefe 517a8d3473 Fix crash: use UIManager:close() instead of non-existent closeAllDialogs 2026-05-29 22:36:08 -04:00
john-okeefe b2aff262e8 Close waiting dialog before showing registration success 2026-05-29 22:32:09 -04:00
john-okeefe 265d6cb689 Fix crash when toggling auto-sync without a document open
Guard nil doc_settings in getBookhoardUUID and skip getProgress
call in toggleAutoSync when no document is loaded.
2026-05-29 22:16:47 -04:00
john-okeefe 4c9c9e98cf Direct users to /devices page for approval 2026-05-29 22:08:54 -04:00
john-okeefe e714aadab3 Simplify registration: direct users to Bookhoard web UI
Instead of showing a long auth URL that's impractical to type on
e-ink, tell users to open their Bookhoard web UI and approve from
Device Management. Uses persistent InfoMessage (no timeout) so
the message stays visible while they switch devices.
2026-05-29 21:55:57 -04:00
john-okeefe b931d668e2 Fix pcall return value handling in HTTP client
pcall wraps socket.http.request returns as:
  true, 1, status_code, headers, status_line

The old code captured '1' as the status code instead of
the actual HTTP status. Added '_' to skip the first return.
2026-05-29 21:48:29 -04:00
john-okeefe 9bea1342db Add sorting_hint to place menu item in Tools section 2026-05-29 21:32:01 -04:00
john-okeefe 1fcc1d9d6b Allow plugin on home screen for OPDS setup and registration 2026-05-29 21:16:27 -04:00
john-okeefe 9dc76aa5fd Add README for Gitea 2026-05-29 20:42:10 -04:00
john-okeefe 9d2310d87e Initial KOReader plugin: progress sync, annotations, device registration
Full feature set:
- In-plugin device registration with approval polling
- Reading progress sync (push on page update/close/suspend, pull on open/resume)
- Bookmark, highlight, and note sync via batch annotation collection
- Configurable sync behavior (silent/prompt/disable for forward/backward)
- OPDS catalog setup helper
- SHA-256 book hashing with doc_settings cache
- Debounced API calls with periodic push scheduling
2026-05-29 20:27:50 -04:00