clawdbot
2245d7e9c6
fix: server-side comic page extraction with caching
...
Fixes #3505 - Large comic books (300+ MB) were unusable due to
client-side extraction.
Changes:
- Add ComicCacheManager for server-side page extraction and caching
- Add GET /api/items/:id/comic-pages endpoint for page metadata
- Add GET /api/items/:id/comic-page/:page endpoint for individual pages
- Update ComicReader.vue to fetch pages on-demand from server
- Add browser-side preloading for adjacent pages
Before: Client downloads entire comic file, extracts in browser
After: Server extracts pages on-demand, caches to disk, streams to client
Performance improvements:
- Initial load: Only metadata request (~1KB) instead of full file (300MB+)
- Page turns: Single image request (~100KB-2MB) with disk caching
- Memory: No longer loads entire archive in browser memory
- Subsequent views: Cached pages served instantly from disk
2026-02-21 11:28:30 -05:00
mikiher
d7bfccdc4a
BackupManager: Remove backup fallback logic
2025-12-01 18:54:43 +02:00
mikiher
5f1edcb609
Wrap ensureDir in try-catch blocks
2025-12-01 18:00:34 +02:00
mikiher
0a82d6a41b
CoverSearchManager: Fix broken podcast cover search
2025-10-17 08:11:03 +03:00
mikiher
20de2ea388
Add "Best" option to book cover search
2025-10-03 08:23:53 +03:00
mikiher
7630dbdcb7
Replace cover search with streaming version
2025-10-02 13:30:03 +03:00
advplyr
a456865ec0
Fix issue with episode downloads without streams, fallback to regular dl on ffprobe fail
2025-09-10 17:10:00 -05:00
advplyr
a968aca304
Update podcast episode downloads to always attempt embedding meta tags regardless of format
2025-08-17 09:05:29 -05:00
advplyr
4d32a22de9
Update API Keys to be tied to a user, add apikey lru-cache, handle deactivating expired keys
2025-06-30 14:53:11 -05:00
advplyr
4f5123e842
Implement new JWT auth
2025-06-29 17:22:58 -05:00
advplyr
693dc00fa3
Update local session sync logs to help debug sync errors
CodeQL / Analyze (push) Waiting to run
Build and Push Docker Image / build (push) Waiting to run
Integration Test / build and test (push) Waiting to run
Run Unit Tests / Run Unit Tests (push) Waiting to run
2025-06-15 17:21:47 -05:00
advplyr
6968a5c02a
Merge pull request #4378 from Vito0912/feat/PodcastNots
...
CodeQL / Analyze (push) Waiting to run
Build and Push Docker Image / build (push) Waiting to run
Integration Test / build and test (push) Waiting to run
Run Unit Tests / Run Unit Tests (push) Waiting to run
Run Component Tests / Run Component Tests (push) Has been cancelled
Verify all i18n files are alphabetized / update_translations (push) Has been cancelled
Notifications for failed rss feeds and disabled rss feeds
2025-06-09 16:25:19 -05:00
advplyr
5e2bb0b12c
Fix notification js docs and update description/defaults
2025-06-09 16:21:05 -05:00
advplyr
e669a8d378
Merge pull request #4370 from Vito0912/feat/MaxFailedEpisodeChecks-
...
CodeQL / Analyze (push) Waiting to run
Build and Push Docker Image / build (push) Waiting to run
Integration Test / build and test (push) Waiting to run
Run Unit Tests / Run Unit Tests (push) Waiting to run
Adds ENV for MaxFailedEpisodeChecks
2025-06-05 15:06:27 -05:00
Vito0912
84c9c6cb50
move to global
2025-06-05 14:07:35 +02:00
Vito0912
6aa7c8a3d8
added notification
2025-06-05 13:34:18 +02:00
Vito0912
357176b301
catch timeout
2025-06-04 16:15:18 +02:00
Vito0912
9bb4dc3ab0
potential fix
2025-06-04 10:58:44 +02:00
Vito0912
709c33f27a
ensure proper type
2025-06-04 10:05:16 +02:00
Vito0912
4d846e225a
Adds ENV for MaxFailedEpisodeChecks
2025-06-04 10:02:17 +02:00
advplyr
63ccdb68f0
Fix m4b encoder backup file overwriting the encoded file when they have the same filename
2025-06-02 16:50:03 -05:00
advplyr
336de49d8d
Add new api endpoint for direct playing audio files using session id #4259
2025-05-05 17:00:43 -05:00
advplyr
2caa861b8a
Update local session mediaMetadata with current item mediaMetadata for undefined values
2025-04-18 17:04:11 -05:00
advplyr
d7f0815fb3
Merge branch 'master' into feat/metadataForPlaybackSessions
2025-04-18 16:34:13 -05:00
Vito0912
e6ab05e177
update so also populates data if mediaMetadata is not null
2025-04-18 07:29:34 +02:00
advplyr
bc1b99efd6
Fix socket events check user permissions for library items #4199
2025-04-12 17:39:51 -05:00
advplyr
ca7388b14e
Fix download podcast update library item size #4180
CodeQL / Analyze (push) Waiting to run
Build and Push Docker Image / build (push) Waiting to run
Integration Test / build and test (push) Waiting to run
Run Unit Tests / Run Unit Tests (push) Waiting to run
2025-04-02 17:35:57 -05:00
advplyr
92bb3527de
Add logs when sanitizing filename and update podcast episode download to set targetFilename on init #4121
2025-03-19 17:39:23 -05:00
advplyr
c29935e57b
Update migration manager to validate migration files #4042
2025-03-06 17:24:33 -06:00
Nicholas Wallace
6674189acd
Add: prevent duplicates from being added to queue
2025-02-23 19:23:26 -07:00
mikiher
7038f5730f
Set title[IgnorePrefix] when a podcast libraryItem is created
2025-02-16 14:57:05 +02:00
mikiher
0169bf5518
Update podcast.numEpisodes when episodes are created or destroyed
2025-02-16 12:38:44 +02:00
advplyr
ed3af5bdcd
Fix server crash when feed cover image is requested but doesnt exist
2025-02-11 16:14:49 -06:00
advplyr
6745efc4d6
Revert case-insensitive cache manager update in #3780
2025-01-20 08:59:45 -06:00
advplyr
1a67f57551
Update podcast downloads to fallback to download without tagging due to inaccurate rss feed enclosures #3837
2025-01-14 15:48:06 -06:00
Vito0912
121805ba39
Merge branch 'master' into feat/metadataForPlaybackSessions
2025-01-07 17:01:01 +01:00
advplyr
a1ec10bd0d
Fix sync request responding with 500 status code
2025-01-06 11:39:55 -06:00
advplyr
108eaba022
Migrate tools and collapse series. fix continue shelves. remove old objects
2025-01-05 14:09:03 -06:00
advplyr
d5ce7b4939
Migrate to new library item in scanner
2025-01-05 12:05:01 -06:00
advplyr
f366dfa909
Merge pull request #3780 from nichwall/api_cache_case_insensitive
...
API Cache Manager route uses case-insensitive match
2025-01-04 16:03:14 -06:00
advplyr
726a9eaea5
Fix local playback sync
2025-01-04 15:35:05 -06:00
advplyr
6d52f88a96
Update controllers to use toOldJSON functions
2025-01-04 15:20:41 -06:00
advplyr
d8823c8b1c
Update podcasts to new library item model
2025-01-04 12:41:09 -06:00
advplyr
69d1744496
Update podcasts to new library item model
2025-01-03 16:48:24 -06:00
advplyr
c251f1899d
Update PlaybackSession to use new library item model
2025-01-03 11:16:03 -06:00
Nicholas Wallace
f70f21455f
Req URL is lowercase in ApiCacheManager
2025-01-02 20:13:38 -07:00
advplyr
12c6f2e9a5
Update updateMedia endpoint to use new model
2025-01-02 17:21:07 -06:00
advplyr
4787e7fdb5
Updates to LibraryItemController to use new model
2025-01-02 15:42:52 -06:00
advplyr
dd0ebdf2d8
Implementing toOld functions for LibraryItem/Book/Podcast
2025-01-02 12:49:58 -06:00
advplyr
e7f7d1a573
Fix refresh feed when book is deleted and belonged to a series/collection
2025-01-01 12:06:01 -06:00