The Calibre dependency was due to the script testing for validity of the
downloaded file, as often they would be corrupted from aa. But CWA is
already doing that, so we are just having redundant code here.
For the cloudflarebypasser, I basically run my own version now, instead
of depending on an external library, this way we have better control for
debugging and on the docker image.
Fixes#18, #33, #27, #48, #65, #78, #86, #88, #89
---------
Co-authored-by: mik593 <91991279+mik593@users.noreply.github.com>
This PR addresses an issue where the "download selected" functionality
behaves unexpectedly. If a user makes a selection of books to download,
performs a new search without clearing the previous selection, and
selects new books, clicking "download selected" would still include the
books from the prior selection. This causes the "download selected"
button to fail, as the books from the previous selection are no longer
available.
A potential enhancement could allow users to select books across
multiple searches and download them collectively. This could be achieved
by creating a dedicated section in the UI to track and display the
currently selected books. This feature might go well with a broader UI
overhaul, as has been suggested in some issues - maybe after your CF
bypass rewrite?
Co-authored-by: CaliBrain <calibrain@l4n.xyz>
Related to #53
This PR adds sorting to the results table. This can be done by clicking
on the header of the table.
For narrow columns, the arrow indicating the ordering is underneath the
column title instead of next to the title - not sure how to solve that
elegantly without a minor redesign of the table :D

Fix mobile being unable to scroll across to the buttons
Retain overflow-hidden when collapsed to hide content
Changing of CSS removes extra margin-bottom: rem padding incidentally
This PR uses the Anna's Archive API to get a fast download URL to
download the book directly. Bypasses parsing HTML with the Cloudflare
proxy.
---------
Co-authored-by: Laurids Düllmann <laurids@vicegold.com>
This PR add the option to set UID/GID during runtime, making sure the
application is running as a non-root user.
Besides this, it also helps with making sure UID/GID match between
containers.