Commit graph

465 commits

Author SHA1 Message Date
Moustapha Kodjo Amadou
1256e608c7 Refactor 2026-03-02 11:49:19 +01:00
Moustapha Kodjo Amadou
099180bc34 feat: enhance RhttpCompatibleClient with cancel token support and improve error handling; add new target for Windows ARM64 2026-02-25 12:56:16 +01:00
Moustapha Kodjo Amadou
9d829a16e7 refactor: update DoH resolution method to use hostname first; improve circuit breaker logic 2026-02-25 11:52:18 +01:00
Moustapha Kodjo Amadou
7fe77dafde fix: ensure state is updated only when mounted; increase timer duration to 40 seconds 2026-02-23 15:25:54 +01:00
NBA2K1
e1fa1f75bc Improve failure message by using itemType.name
- Replace raw itemType (e.g. "ItemType.manga") with itemType.name (e.g. "manga") for better legibility.
2026-02-22 14:45:01 +01:00
Moustapha Kodjo Amadou
eec96c6258
Merge pull request #644 from NBA2K1/main
Improve extension service lifecycle, isolate robustness, dedupe lists, and UI/lifecycle cleanups
2026-02-13 10:50:32 +01:00
Moustapha Kodjo Amadou
7a47d5340c - 2026-02-02 12:34:52 +01:00
Schnitzel5
7c4ad924b1 added option to exclude categories from mass update 2026-01-31 00:14:39 +01:00
Moustapha Kodjo Amadou
ee41024a4f rename 2026-01-26 17:30:07 +01:00
Moustapha Kodjo Amadou
d5aecf66dc Fix #643 2026-01-26 17:28:25 +01:00
Moustapha Kodjo Amadou
b53e869258 feat: add DNS-over-HTTPS (DoH) support (experimental) 2026-01-20 14:38:46 +01:00
NBA2K1
8b1f7fc581 Add service disposal and lifecycle cleanup
This commit improves memory management, reduces redundant interpreter
instantiation, and standardizes service usage patterns.

- Add `dispose()` to `ExtensionService` interface and implement it across
  Dart, JS, LNReader, and Mihon services.
- Replace repeated interpreter creation in `DartExtensionService` with a
  persistent `_interpreter` instance initialized once in the constructor.
- Add disposal logic for JS DOM selector and Cheerio instances to prevent
  memory leaks.
- Introduce `withExtensionService()` helper to ensure services are always
  disposed after use.
- Update call sites across the codebase to use `withExtensionService()`
  or manual try/finally disposal.
- Improve isolate service message handling by extracting `responsePort`
  earlier.
- Ensure safer defaults (e.g., returning empty lists, const lists) when
  service calls fail.
2026-01-13 01:11:19 +01:00
Moustapha Kodjo Amadou
83b7d31e0a Increase isolate pool size to enhance concurrent download capabilities 2026-01-09 11:48:23 +01:00
NBA2K1
09684a2641 improve isolate lifecycle and add timeouts
- Add StreamSubscription to manage ReceivePort listener lifecycle
- Introduce handshake timeout when waiting for isolate SendPort to prevent hangs
- Add response timeout in get<T>() to avoid indefinitely waiting for isolate replies
- Replace direct ReceivePort.listen with tracked subscription for safer cleanup
- Improve error handling for invalid or missing isolate responses
- Strengthen isolate startup reliability and shutdown consistency
2026-01-08 22:41:14 +01:00
Moustapha Kodjo Amadou
74b194602c update dependencies & update riverpod provider declarations 2026-01-08 14:27:08 +01:00
Moustapha Kodjo Amadou
b9f9a8398f Refactor download management with shared isolate pool and optimize concurrent downloads 2026-01-08 13:01:15 +01:00
Moustapha Kodjo Amadou
9458ae120b fix #637 2026-01-07 13:07:55 +01:00
NBA2K1
004885d557 Return library updater if library empty 2025-12-29 01:00:01 +01:00
NBA2K1
c911594e73 Add logging and detailed botToast, remove doWhile
- Use the logger to log failed updates

- After the update-botToast another botToast is being spawned to show exactly which manga(s) couldn't be updated.

- Remove the doWhile loop because it is unnecessary. The condition of mangaList.length == numbers is always true, meaning it only runs once.
2025-12-28 23:08:54 +01:00
NBA2K1
9bd8a62d31 Reduce Code Duplication
Extract the `_updateLibrary()` function from `updates_screen.dart` and `library_screen.dart` to a top-level function in `libray_updater.dart`.
2025-12-28 22:59:44 +01:00
Moustapha Kodjo Amadou
76645d97c1 fix: improve error handling for Cloudflare bypass failures 2025-12-14 14:01:40 +01:00
Moustapha Kodjo Amadou
23e41373dc conditionally show Android proxy server option and update notes 2025-12-10 13:42:34 +01:00
Moustapha Kodjo Amadou
6e4d3dd52e feat(server): add server check before starting 2025-12-10 13:38:15 +01:00
Moustapha Kodjo Amadou
1b708d6884 feat(server): integrate MExtensionServer 2025-12-08 15:14:12 +01:00
NBA2K1
5fdbf530cb stopCfResolutionWebviewServer()
Stop the cf server on app exit
2025-11-29 00:18:13 +01:00
NBA2K1
5c34dcab9a Start Cloudflare resolution after app starts
- Defer the Cloudflare resolution webserver until after runApp().

- await said function
2025-11-28 23:59:37 +01:00
Moustapha Kodjo Amadou
405c3d8e35 fix 2025-11-25 15:34:38 +01:00
Moustapha Kodjo Amadou
f06df9b3b1 feat: implement CF resolution server 2025-11-25 14:53:22 +01:00
Moustapha Kodjo Amadou
1d81906c4f refactor: update message handling in GetIsolateService to use listen instead of for loop 2025-11-25 14:06:47 +01:00
Moustapha Kodjo Amadou
6a099415db refactor: simplify filter parsing logic & pass client cookie to mihon server 2025-11-24 16:59:21 +01:00
Moustapha Kodjo Amadou
29fe96151d fix: enable logger usage in isolate service 2025-11-12 17:02:06 +01:00
Moustapha Kodjo Amadou
1f21a75762 refactor: replace getExtensionService with getIsolateService for page and video list retrieval 2025-11-11 14:51:10 +01:00
Moustapha Kodjo Amadou
251d7266f5 Remove unnecessary padding from HTML content in reader view 2025-11-09 00:37:35 +01:00
Moustapha Kodjo Amadou
c19974d6d1 fix 2025-11-09 00:11:23 +01:00
Moustapha Kodjo Amadou
93298c7376 fix novel download and improve HTML content processing 2025-11-08 23:37:22 +01:00
Moustapha Kodjo Amadou
d35192629b Add keepAlive calls in Synching and SyncServer build methods 2025-11-08 22:04:57 +01:00
Moustapha Kodjo Amadou
24849cc000
Merge pull request #517 from NBA2K1/Correct-directory
Standardize Folder Structure on Windows, Linux, iOS & macOS
2025-11-08 21:47:07 +01:00
Moustapha Kodjo Amadou
c28ab14e74 Refactor auto-scroll functionality in novel reader
- Removed the NovelAutoScrollState provider and its associated logic.
- Introduced autoScrollValues and setAutoScroll methods in NovelReaderController to manage auto-scroll settings.
- Updated NovelReaderView to handle auto-scroll state and page offset dynamically.
- Added UI elements in GeneralSettingsTab to control auto-scroll settings with a slider for page offset.
- Enhanced the auto-scroll feature to allow for play/pause functionality within the novel reader view.
2025-11-08 19:47:23 +01:00
NBA2K1
1b64f2650e Merge remote-tracking branch 'upstream/main' into Correct-directory 2025-11-08 14:59:23 +01:00
Moustapha Kodjo Amadou
af20e084b0 Refactor dependencies and remove unused packages; update Flutter HTML package; add novel reader settings UI 2025-11-08 01:38:29 +01:00
Moustapha Kodjo Amadou
ea50cc91ca Add IsolateService for improved asynchronous operations and refactor service calls to utilize it 2025-11-07 16:48:42 +01:00
Moustapha Kodjo Amadou
6e776612bf fix getVideoList to return torrent results directly instead of assigning to a variable 2025-11-07 12:23:35 +01:00
Moustapha Kodjo Amadou
0d0f488ef3 Update WidgetRef types to dynamic to fix updateTrackChapterRead 2025-10-31 11:38:39 +01:00
NBA2K1
a307e9d049 Merge remote-tracking branch 'upstream/main' into Correct-directory 2025-10-29 18:30:50 +01:00
Moustapha Kodjo Amadou
430e81e021 Refactor and update dependencies for Isar and Riverpod 2025-10-29 13:08:42 +01:00
Schnitzel5
5ef46ec13d adding support for LNReader plugins 2025-10-10 15:49:33 +02:00
NBA2K1
462e9b5fe7 Merge remote-tracking branch 'upstream/main' into Correct-directory 2025-10-09 19:13:22 +02:00
Moustapha Kodjo Amadou
1fa7f3123b update 2025-10-02 15:52:00 +01:00
Moustapha Kodjo Amadou
64cb896ea5
Merge pull request #574 from Schnitzel5/rework/local-source
reworked local source
2025-09-10 09:13:57 +01:00
Schnitzel5
5a6552e6f6 local folders now also scans for subtitles
- added help button to show an example of a local folder
2025-09-05 21:33:22 +02:00