The file "a/.ignore" should only cause the directory "a" to be ignored.
However, it also ignores all files starting with "a".
After this fix, it will only ignore paths starting with "a/".
* 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>
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
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.