ajurna ce809ed1a9 **Refactor directory scanning and add scan task support**
- Added a new `scan_directory` task to enable folder scans as asynchronous tasks while maintaining compatibility with the immediate backend.
- Introduced the `reconcile` function, replacing `generate_directory` for improved separation of concerns between database writes and read operations.
- Established a unique constraint on `Directory` (`one_directory_name_per_parent`) to prevent duplicate directories under the same parent.
- Added a "Scan" button to the frontend for re-reading folders from disk, along with new task invocation endpoints in the API.
- Updated tests across modules to validate the new `scan_directory` task, unique constraints, and database indexing logic.
- Improved cleanup logic for stale files, directories, and thumbnails to handle concurrent operations efficiently.
- Simplified `scan_comics` management command by removing user dependency and aligning it with the new `reconcile` function.
- Enhanced frontend components (`TheComicReader`, `TheComicList`, and others) to include lifecycle method cleanups, prevent memory leaks, and handle task-based scans.
2026-10-13 15:58:06 +01:00
2019-07-29 13:21:48 +01:00
2021-05-04 09:47:06 +01:00
2021-04-29 16:33:03 +01:00
2022-08-26 13:11:29 +01:00
2026-01-14 16:59:53 +00:00
2026-01-14 16:59:53 +00:00
2026-01-14 16:59:53 +00:00
2022-08-31 09:42:42 +01:00
2026-10-13 15:57:40 +01:00

CBWebReader

CBWebReader is web-based CBR and CBZ file reader implemented in Django with a Vue frontend. The application allows a user to host their collection of digital comics (CBR, CBZ and PDF formats) as a remotely accessible collection.

CBWebReader Screenshot

Core technologies

The following technologies will aid development by ensuring a consistent development environment for all developers:

The primary frameworks and tool's are used within the application:

Getting started

The CBWebReader is a Django project and follows the standard conventions for a Django application. To get started just look in the compose folder and there is an example setup. just rename the .env.docker file to .env and add some config details and it should work right away.

License

This is a human-readable summary of (and not a substitute for) the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) License.

S
Description
Web Based CBR, CBZ and PDF file reader.
Readme CC-BY-SA-4.0
16 MiB
0 Stars 1 Watchers 0 Forks
Languages
Python 52.3%
Vue 26.5%
JavaScript 19.7%
Dockerfile 0.7%
HTML 0.5%
Other 0.3%