Commit Graph

2175 Commits

Author SHA1 Message Date
advplyr
1def32aa50 Fix req.query check and response 2025-03-18 17:03:43 -05:00
mikiher
40504da4d7
Improve book library page query performance for author sort order (#4080)
* Add migration to create authorNames* columns, in libraryItems including update triggers and indices

* Add authorNames columns and indices to LibraryItem model

* Add database triggers for updating author names in libraryItems (for new databases)

* Populate authorNames during book scanning

* Update book sorting to use new authorNames columns

* Add an index on podcastEpisodes.publishedAt

* Fix group_concat order by and update to sqlite 3.44.2

---------

Co-authored-by: advplyr <advplyr@protonmail.com>
2025-03-17 17:09:49 -05:00
Vito0912
3c9966e849
clean up 2025-03-17 20:04:01 +01:00
Vito0912
9b79aab4d5
logging 2025-03-17 19:58:55 +01:00
Vito0912
0123dacb29
download multiple items 2025-03-17 19:35:59 +01:00
Gabriel Gavrilov
394bf8cb70
Allow number types for payload metadata when updating books. (#4118)
* Allow number types for payload metadata

* cast numbers to string
2025-03-16 08:42:18 -05:00
advplyr
e29d3a3672 Cast OpenLibrary publishYear to string #4114 2025-03-15 17:41:07 -05:00
advplyr
de22177dbf Update opf parser to support refines meta elements 2025-03-13 17:49:05 -05:00
advplyr
e504bb09eb
Merge pull request #4106 from Roukanken42/fix/loading-epub-covers
Fix: Load epub covers via cover-image property
2025-03-12 17:06:00 -05:00
Roukanken
b86797a245
Fix: Load epub covers via cover-image property 2025-03-11 21:05:21 +01:00
Vito0912
953f21ed53
fix updating progress not updating finishedAt 2025-03-10 13:58:52 +01:00
IUser
e7ca6a4ea9 Fix spelling 2025-03-09 14:01:53 -07:00
advplyr
ddd8f15f2b
Merge pull request #4088 from nichwall/checkRemoveAuthors_fix
Fix empty series delete check
2025-03-08 18:03:36 -06:00
advplyr
8f308c6180 Close RSS feeds after removing empty series 2025-03-08 17:47:47 -06:00
Nicholas Wallace
10acf28fa6 Simplify log level determination 2025-03-08 12:46:36 -07:00
Nicholas Wallace
84e20e041c Fix: empty series delete flakiness 2025-03-08 11:16:34 -07:00
Nicholas Wallace
167617cce0 Add: transaction to empty author remove 2025-03-08 10:43:27 -07:00
advplyr
c29935e57b Update migration manager to validate migration files #4042 2025-03-06 17:24:33 -06:00
advplyr
b17e6010fd Add validation for custom metadata provider responses 2025-03-04 17:50:40 -06:00
Vito0912
a296ac6132
fix crash 2025-03-04 18:06:58 +01:00
advplyr
6075f2686f
Merge pull request #3546 from justcallmelarry/master
API PATCH /me/progress/:id - allow providing createdAt and respect provided finishedAt when syncing progress
2025-02-28 17:25:46 -06:00
advplyr
0ca65d1f79 Show download icon for queued/downloaded episodes in rss feed modal 2025-02-26 17:56:17 -06:00
Nicholas Wallace
6674189acd Add: prevent duplicates from being added to queue 2025-02-23 19:23:26 -07:00
advplyr
373d14a49e
Merge pull request #4034 from nichwall/custom-metadata-provider-logging
Add: log custom metadata provider to match other providers
2025-02-23 16:58:07 -06:00
advplyr
a17127f078
Merge pull request #4031 from nichwall/temp_file_ignore_refactor
Refactor ignore file logic
2025-02-23 16:56:09 -06:00
advplyr
20f812403f Add fileUtils recurseFiles and shouldIgnoreFile tests 2025-02-23 16:53:11 -06:00
advplyr
a864c6bcc6
Merge pull request #4020 from mikiher/invalidate-count-cache-on-entity-update
Invalidate count cache on entity update
2025-02-23 15:21:36 -06:00
mikiher
364ccd85fe Use count cache only when no filter is set 2025-02-23 08:53:57 +02:00
mikiher
d6b58c2f10 Revert "Invalidate count cache on entity update"
This reverts commit e8b60defb6.
2025-02-23 08:03:10 +02:00
Nicholas Wallace
4662fc5244 Add: log custom metadata provider to match other providers 2025-02-22 14:48:13 -07:00
Nicholas Wallace
13c20e0cdd Add: generic function to ignor files 2025-02-22 12:28:51 -07:00
alexshch09
452d354b52 fix(auth): Add admin-level auth to LibraryController delete update and issue removal 2025-02-22 00:44:52 +01:00
advplyr
9d7f44f73a Fix RSS Feed Open query 2025-02-21 17:39:36 -06:00
mikiher
e8b60defb6 Invalidate count cache on entity update 2025-02-21 09:45:10 +02:00
advplyr
7919a8b581 Fix get podcast library items endpoint when not including a limit query param #4014 2025-02-20 17:40:54 -06:00
mikiher
f9c0e52f18 Add title triggers in new databases 2025-02-19 17:39:32 +02:00
advplyr
6290cfaeb1 Auto format 2025-02-18 17:19:06 -06:00
advplyr
fd3d4f5fcf
Merge pull request #3978 from sloped/fix/detect-http-https-upgrades
fix: allow upgrading HTTP to HTTPS for redirects
2025-02-18 17:18:36 -06:00
mikiher
568bf0254d Change migration version to v2.19.4 2025-02-18 07:57:46 +02:00
mikiher
7038f5730f Set title[IgnorePrefix] when a podcast libraryItem is created 2025-02-16 14:57:05 +02:00
mikiher
0a8186cbda Add ANALYZE to database init sequence 2025-02-16 13:38:54 +02:00
mikiher
659164003f Clear LibraryItemsPodcastFilters count cache after podcast[Episode] is created or destroryed 2025-02-16 13:27:47 +02:00
mikiher
de5d8650e8 Add profiling to podcast library filterdata queries 2025-02-16 12:47:23 +02:00
mikiher
bacefb5f6f Format PodcastScanner (Pretteier-only changes) 2025-02-16 12:41:47 +02:00
mikiher
0169bf5518 Update podcast.numEpisodes when episodes are created or destroyed 2025-02-16 12:38:44 +02:00
mikiher
8f192b1b17 Add profiling to podcasts and podcast episodes page queries 2025-02-16 09:46:32 +02:00
mikiher
21343b5aa0 Add count cache to libraryItemsPodcastQueries 2025-02-16 09:40:29 +02:00
mikiher
a5508cdc4c Remove unnecessary 'distinct: true' from podcast episodes page query 2025-02-16 09:32:00 +02:00
mikiher
bd4f48ec39 Add required: true to includes in podcast episodes page query 2025-02-16 09:29:57 +02:00
mikiher
cb9fc3e0d1 Replace numEpisodesIncomplete subquery with cached user progress calculation 2025-02-16 09:22:06 +02:00
mikiher
707533df8f Remove numEpisodes subquery from podcasst page query 2025-02-16 09:15:54 +02:00
mikiher
2e48ec0dde Use libraryItem.title[IgnorePrefix] for sorting podcasts page query 2025-02-16 09:08:27 +02:00
mikiher
f1e46a351b Separate feed query from podcasts page query 2025-02-16 09:05:54 +02:00
mikiher
da8fd2d9d5 Set podcastId when mediaProgress is created 2025-02-16 08:57:10 +02:00
mikiher
f1de307bf9 Update cached user whenever mediaProgress is removed 2025-02-16 08:52:33 +02:00
mikiher
7282afcfde Add podcastId to mediaProgress model 2025-02-16 08:42:09 +02:00
mikiher
e2f1aeed75 Add numEpisodes to podcast model 2025-02-16 08:38:03 +02:00
mikiher
23a750214f Add migration in preparation for podcast query optimization 2025-02-16 08:35:51 +02:00
mikiher
8ee5646d79 fix stringifySequelizeQuery and add tests 2025-02-15 23:57:27 +02:00
advplyr
d9b206fe1c Fix server crash when quick match all updates existing series sequence #3961 2025-02-14 16:56:37 -06:00
advplyr
5ca12eee19 Fix count cache by stringify Symbols #3979 2025-02-13 18:07:59 -06:00
Conner McCall
f460297daf
fix: allow upgrading HTTP to HTTPS for redirects
Re: #3142 and #3658

When adding certain podcasts, the server encountered a redirect from an HTTP URL to an HTTPS domain, causing an error that was difficult for end users to diagnose without inspecting logs or HTML.

This issue arose due to SSRF security measures that blocked such redirects. Instead of failing in these cases, we now detect when the error is caused by an HTTP-to-HTTPS upgrade. If confirmed, we upgrade the initial URL to HTTPS and resend the request.

Since this change does not allow cross-protocol or cross-domain redirections, it remains secure while resolving most of the reported issues.

Affected podcasts that are now fixed:

- D&D is for Nerds
- The New Yorker: The Writer's Voice - New Fiction from The New Yorker
- Radiolab
2025-02-13 09:19:02 -06:00
advplyr
a34813b3ab Fix server crash remove column name ambiguity #3966 2025-02-12 08:52:20 -06:00
advplyr
d30a09f503
Merge pull request #3963 from mikiher/security-fix-GHSA-pg8v-5jcv-wrvw
Security fix for GHSA-pg8v-5jcv-wrvw
2025-02-11 16:50:52 -06:00
advplyr
ed3af5bdcd Fix server crash when feed cover image is requested but doesnt exist 2025-02-11 16:14:49 -06:00
mikiher
ec65376569 Security fix for GHSA-pg8v-5jcv-wrvw 2025-02-11 22:02:51 +02:00
mikiher
4cc300d6e9 Update changelog with v2.19.1 migration 2025-02-09 21:39:43 +02:00
advplyr
ef45f844e5 Update upwards migration to be idempotent 2025-02-08 12:37:34 -06:00
advplyr
9a261195b7
Update server/models/Book.js 2025-02-08 10:19:13 -06:00
mikiher
3d08a35aa0 Add index on (libraryId, mediaType, createdAt) 2025-02-08 14:53:01 +02:00
mikiher
a13143245b Improve page load queries on title, titleIgnorePrefix, and addedAt sort order 2025-02-08 12:29:23 +02:00
mikiher
52bb28669a Add a profile utility function 2025-02-08 10:41:56 +02:00
advplyr
a37fe3c3d2 Fix: Users with update permission unable to remove books from collection #3947 2025-02-07 17:09:48 -06:00
Michael Vincent
3f7af8acfb Add Accept-Encoding header to getPodcastFeed()
This commit adds the Accept-Encoding header to getPodcastFeed() with
gzip, compress, and deflate support. This allows servers to send a
compressed response that'll be decompressed by axios transparently.

Audiobookshelf is currently using axios v0.27.2, which enables the
decompress option by default. The decompress feature supports gzip,
compress, and deflate algorithms (see axios/lib/adapters/http.js).
axios v0.27.2 does not add the Accept-Encoding header to requests
automatically, so that's the responsibility of the caller.
2025-02-05 23:12:58 -06:00
advplyr
5e5a604d03 Fix name parser to not use "last, first" format when not using comma separators. Adds unit tests #3940 2025-02-05 17:25:31 -06:00
advplyr
201e12ecc3 Update downloadFile to debug log percentage complete 2025-02-05 16:15:00 -06:00
advplyr
24d6e390f0 Fix Book/Podcast updateFromRequest to support null values in string fields #3938 2025-02-05 15:31:57 -06:00
advplyr
aebb3ff413 Fix API including basepath in tracks contentUrl 2025-02-01 16:47:36 -06:00
advplyr
c3aad9486c Fix Logger.fatal to be a promise to ensure crash_logs.txt write 2025-01-30 17:27:32 -06:00
advplyr
b3b2bd7772 Fix feeds for collection/series pub date increment #3442 2025-01-28 17:11:57 -06:00
advplyr
95864705dc Update clean database to remove invalid CollectionBook records 2025-01-28 16:58:42 -06:00
tharvik
575927c101
server/podcast: stabilize random ID 2025-01-28 20:36:35 +01:00
advplyr
fbe186a925
Merge pull request #3899 from mikiher/pragma-from-env
Allows setting of some pragma values through environment variables
2025-01-27 16:21:40 -06:00
advplyr
6ed2b575b0
Merge pull request #3898 from mikiher/fix-batch-quick-match
Add bookSeries id attribute to findAllExpandedWhere
2025-01-26 13:27:41 -06:00
advplyr
558173e086 Update custom metadata provider results to sanitize html descriptions #3880 2025-01-26 10:51:18 -06:00
mikiher
23067e1818 Allows setting of some pragma values through environment variables 2025-01-26 13:44:57 +02:00
mikiher
9b4732c207 Add bookSeries id attribute to findAllExpandedWhere 2025-01-26 12:21:54 +02:00
advplyr
a4d0f95ecc
Merge pull request #3880 from mikiher/rich-text-book-descriptionss
Support rich text book descriptions
2025-01-25 13:42:37 -06:00
advplyr
922a5039ce Update descriptionPlain to only be available in json expanded 2025-01-25 13:30:30 -06:00
advplyr
d4ba8b9d9f Fix server crash on failed to extract epub image #3889 2025-01-24 17:24:37 -06:00
mikiher
286185329d Support rich text book descriptions 2025-01-22 08:53:23 +02:00
advplyr
28681d3783
Merge pull request #3732 from Timtam/allow-mrss-item-enclosures-for-podcasts
check for mrss item media:content when extracting item enclosures
2025-01-20 15:08:43 -06:00
advplyr
b816c0e7c4 Fix opening feed for series and collections 2025-01-20 14:18:22 -06:00
advplyr
a8b92819d1 Update feed episode description to use CDATA 2025-01-20 14:04:18 -06:00
advplyr
54a4b09592 Update RSS feed to exclude empty tags, format duration, use CDATA 2025-01-20 13:57:56 -06:00
advplyr
6745efc4d6 Revert case-insensitive cache manager update in #3780 2025-01-20 08:59:45 -06:00
Toni Barth
bdd8e5bb58 Merge remote-tracking branch 'remotes/upstream/master' into allow-mrss-item-enclosures-for-podcasts 2025-01-20 10:28:09 +01:00
advplyr
4a3254d338 Fix create library with mark media as finished when setting #3856 2025-01-18 15:57:44 -06:00
advplyr
4701b3ed0c Update audiobook rss feeds to increment pub dates in 1 minute intervals #3442 2025-01-17 17:21:35 -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