Skip to content

v1.17 — first release

Choose a tag to compare

@trulow trulow released this 01 Sep 19:22
· 6 commits to main since this release

Added

  • Bookshelf: paged cover grid with disk cache, or a left-aligned list view.
    Search, sort by title / unread / recently-added, filter by category.
  • Manga details: cover, author, artist, status, genres, description, and a
    Continue button that opens the chapter you stopped part-way through.
  • Chapter list: read state, chapter number, scanlator, upload date, reading
    progress, and whether the file is on the device. Newest-first or oldest-first.
  • Download and read: chapters fetched page by page, assembled into a CBZ with
    ComicInfo.xml, opened in KOReader's own reader. Resumable at the page level.
  • Bulk downloads: all missing chapters, unread only, or a typed range
    (1-50). Pause and resume, with the queue persisted to disk.
  • Deleting: per-series (all, read only, or a range) or library-wide. Sizes and
    counts shown before anything is removed; unread downloads never touched.
  • Bidirectional read-status sync with a SQLite outbox that survives restarts.
    Page progress debounced at 25 seconds. Rules in docs/sync.md.
  • Offline support: bookshelf, cached details and chapter lists, and any
    downloaded chapter work with Wi-Fi off. Save for offline… pre-fetches
    metadata for the library.
  • Next chapter at end of book, downloading it if needed; back to chapter list
    or bookshelf. Bindable as gestures.
  • Debug menu: sync, offline and cover diagnostics, library dump, reset local
    sync state.

Notes

  • Requires a Suwayomi-Server with the GraphQL API at /api/graphql. Every
    query was written against the committed introspection dump in schema/.
  • Do not also run Suwayomi's built-in KOReader sync — two systems writing the
    same read state will make progress oscillate.
  • No stream mode, no source browsing, and no add/remove from library. Bookmarks
    are not synced.
  • Pages download sequentially; parallel fetching is not achievable in pure Lua
    with blocking sockets.

Full Changelog: https://github.com/trulow/suwayomi.plugin/commits/v1.17