Open
Conversation
…udflare challenge solver. - Added a `DynamicInterceptor` to Coil's `ImageLoader` to conditionally route image requests through the `CloudflareKiller`. - Updated `TextAdapter` and `UIHelper` to pass Cloudflare requirements when binding images in the reader. - Refactored `CloudflareKiller` with a semaphore to prevent concurrent challenge resolutions and improved challenge detection logic. - Enhanced `WebViewResolver` with a JavaScript injection to automatically attempt to submit Cloudflare Turnstile/challenge forms. - Updated `MainAPI` to automatically inject Cloudflare bypass headers into search and stream response poster headers when enabled.
Contributor
Author
|
If you accept this PR, I’ll be able to make another PR with the providers that use CloudflareKiller. Until then, I can’t submit a PR with them. |
- Added `NovelasLigerasProvider`, `DevilNovelsProvider`, `FenrirRealProvider`, `FuckNovelPiaProvider`, `LnoriProvider`, `NovelManiaProvider`, `PlanetaEpubProvider`, `RewayatProvider`, `ReadhiveProvider`, `VynovelProvider`, and `WuxiaClickProvider`. - Refactored `RanobesProvider` and `WtrLabProvider` with improved chapter fetching, pagination logic, and JSON parsing. - Updated `KolNovelProvider` to use `free.kolnovel.com` and adjusted selectors for search and main page. - Fixed `WPReader` chapter content extraction and search logic. - Improved `ReadActivityViewModel` image handling by properly resolving relative paths and converting `image` tags to `img`. - Enhanced `BookDownloader2` notification logic and added error handling for `WorkManager` initialization. - Added language flags to provider names in search and language selection dialogs. - Updated colors for various providers in `colors.xml`.
LagradOst
requested changes
Apr 14, 2026
Owner
LagradOst
left a comment
There was a problem hiding this comment.
The code looks good in general. Will do further testing later, before I merge.
| val uniqueWorkName = "${ID_REFRESH_READINGPROGRESS}_$currentTab" | ||
| (WorkManager.getInstance(context)).enqueueUniqueWork( | ||
|
|
||
| val workManager = try { |
Owner
There was a problem hiding this comment.
This should be a function, so all instances of WorkManager.getInstance will not crash.
Contributor
Author
|
I'm still reviewing this PR, in a few hours I'll upload it 100% functional. |
fcf2cb2 to
867305c
Compare
…rieving `WorkManager`.
Contributor
Author
|
done... i think so haha |
- Refactored `NovelFireProvider` and `LightNovelTranslationsProvider` to improve data extraction and error handling. - Updated `AnnasArchive` main URL. - Enhanced `CloudflareKiller` with more granular cookie clearing and persistence logic. - Cleaned up unused data classes in `MtlNovelsProvider`.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implemented Cloudflare bypass support for images and improved the Cloudflare challenge solver.
DynamicInterceptorto Coil'sImageLoaderto conditionally route image requests through theCloudflareKiller.TextAdapterandUIHelperto pass Cloudflare requirements when binding images in the reader.CloudflareKillerwith a semaphore to prevent concurrent challenge resolutions and improved challenge detection logic.WebViewResolverwith a JavaScript injection to automatically attempt to submit Cloudflare Turnstile/challenge forms.MainAPIto automatically inject Cloudflare bypass headers into search and stream response poster headers when enabled.