Skip to content

Refactors Calibre Wireless Device & Calibre Library#404

Merged
daveallie merged 16 commits intocrosspoint-reader:masterfrom
itsthisjustin:fix/calibre-wireless-device
Jan 27, 2026
Merged

Refactors Calibre Wireless Device & Calibre Library#404
daveallie merged 16 commits intocrosspoint-reader:masterfrom
itsthisjustin:fix/calibre-wireless-device

Conversation

@itsthisjustin
Copy link
Contributor

Our esp32 consistently dropped the last few packets of the TCP transfer in the old implementation. Only about 1/5 transfers would complete. I've refactored that entire system into an actual Calibre Device Plugin that basically uses the exact same system as the web server's file transfer protocol. I kept them separate so that we don't muddy up the existing file transfer stuff even if it's basically the same at the end of the day I didn't want to limit our ability to change it later.

I've also added basic auth to OPDS and renamed that feature to OPDS Browser to just disassociate it from Calibre.

@itsthisjustin
Copy link
Contributor Author

@daveallie until this is merged calibre device transfers will be broken sadly. It's insanely inconsistent apparently due to the chipsets wifi implementation. Works great 3 times in a row, fails 6 times in a row after that. I spent 3 days trying to fix until I gave up and just added official crosspoint device support to calibre itself.

Let me know if you want the calibre plugin in it's own repo that I can maintain without muddying up prs here or if you want it to stay within this repo.

The cool side effect of this is you can now manage your device wirelessly with calibre including deleting files and eventually syncing progress

@itsthisjustin itsthisjustin changed the title Refactors Calibre Wireless Device and Renames Calibre Library to OPDS Browser Refactors Calibre Wireless Device & Calibre Library Jan 17, 2026
@daveallie
Copy link
Member

Hey @itsthisjustin, very glad you found a way around this, flakey bugs are actually the devil.

As you offered I'd prefer to split out the Calibre plugin into its own repo in the organisation, I've invited you to the organisation, and I've created a new repo to house this (and potentially future plugins we may need): https://github.com/crosspoint-reader/calibre-plugins.

I'll grant you write access to that repo once you're in the organisation.

@osteotek
Copy link
Member

osteotek commented Jan 23, 2026

Hi @itsthisjustin I apologize for bothering, but I’m wondering if it’s possible to complete this PR. It seems like there aren’t many tasks left to complete, but I might be mistaken. I’m more than willing to assist with it.

@itsthisjustin
Copy link
Contributor Author

Functionally it should be good if you want to fix anything up be my guest

@osteotek
Copy link
Member

osteotek commented Jan 23, 2026

@itsthisjustin I've made PR to to your branch that resolves conflicts with master (and removing calibre plugin - to be uploaded to https://github.com/crosspoint-reader/calibre-plugins)
Once it is merged, we can merge this one here.

Calibre plugin is exactly what I wanted, btw, thanks

@osteotek
Copy link
Member

@daveallie would it be possible to merge this one, I've tested it, works well

daveallie added a commit to crosspoint-reader/calibre-plugins that referenced this pull request Jan 27, 2026
@daveallie
Copy link
Member

Looks good, I've moved that plugin code over to https://github.com/crosspoint-reader/calibre-plugins, and updated the docs here.

@daveallie daveallie merged commit 3a761b1 into crosspoint-reader:master Jan 27, 2026
1 check passed
Jessica765 pushed a commit to Jessica765/crosspoint-reader that referenced this pull request Feb 3, 2026
…r#404)

Our esp32 consistently dropped the last few packets of the TCP transfer
in the old implementation. Only about 1/5 transfers would complete. I've
refactored that entire system into an actual Calibre Device Plugin that
basically uses the exact same system as the web server's file transfer
protocol. I kept them separate so that we don't muddy up the existing
file transfer stuff even if it's basically the same at the end of the
day I didn't want to limit our ability to change it later.

I've also added basic auth to OPDS and renamed that feature to OPDS
Browser to just disassociate it from Calibre.

---------

Co-authored-by: Arthur Tazhitdinov <[email protected]>
Co-authored-by: Dave Allie <[email protected]>
Unintendedsideeffects pushed a commit to Unintendedsideeffects/crosspoint-reader that referenced this pull request Feb 17, 2026
…r#404)

Our esp32 consistently dropped the last few packets of the TCP transfer
in the old implementation. Only about 1/5 transfers would complete. I've
refactored that entire system into an actual Calibre Device Plugin that
basically uses the exact same system as the web server's file transfer
protocol. I kept them separate so that we don't muddy up the existing
file transfer stuff even if it's basically the same at the end of the
day I didn't want to limit our ability to change it later.

I've also added basic auth to OPDS and renamed that feature to OPDS
Browser to just disassociate it from Calibre.

---------

Co-authored-by: Arthur Tazhitdinov <[email protected]>
Co-authored-by: Dave Allie <[email protected]>
kalleeh added a commit to kalleeh/crosspoint-reader that referenced this pull request Feb 26, 2026
High:
- X3-3: fetchComic() now updates currentComic = num immediately at the
  top of the function (when num > 0) so navigation always advances past
  a failed comic; previously currentComic was only updated on JSON parse
  success, causing comic crosspoint-reader#404 (and any other missing comic) to retry
  forever when the user pressed Right

Low:
- X3-1: png.open() failure path in downloadAndDisplayImage() now clears
  the screen and shows the standard failure message instead of leaving
  the stale "Decoding..." text on screen; subsequent render() calls from
  scroll will also show the correct failure state rather than "Image
  loading..." which falsely implied the image might still arrive

Co-Authored-By: Claude Sonnet 4.6 (1M context) <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants