audiobookshelf/server/utils
Boris Rybalkin f8a28e4439 Make library scan symlink resolution configurable
recurseFiles passes realPath:true to recursive-readdir-async, which
resolves symlinks and returns the canonical real path of each file. The
relative path is then computed as fullname.replace(folderPath, ''),
which assumes fullname stays under folderPath. When the library folder
is (or is under) a symlink, the resolved realpath no longer starts with
folderPath, so the replace does nothing and the item path is rebuilt as
folderPath + realpath -> a doubled, non-existent path, and the items
fail to scan.

Make resolution configurable via SCANNER_RESOLVE_SYMLINKS (default
unchanged: resolves). Setting SCANNER_RESOLVE_SYMLINKS=0 keeps the
folder path as given, so libraries on symlinked storage roots scan
correctly.
2026-06-11 13:41:02 +01:00
..
generators Cleanup abmetadata file parsing & fix server crash #5268 #4287 #5142 2026-05-27 17:33:14 -05:00
migrations Migrate tools and collapse series. fix continue shelves. remove old objects 2025-01-05 14:09:03 -06:00
parsers Improved subtitle parsing to account for bare colon in title 2026-02-06 14:31:09 -05:00
queries Adjust discover/search changes for API compatibility 2026-02-23 19:22:45 -05:00
areEquivalent.js Add feed migration and cleanup 2023-07-05 18:18:37 -05:00
comicBookExtractors.js Fix catch exception on failed to parse comic metadata #3804 2025-01-08 16:53:56 -06:00
constants.js Update comments on matroska 2026-04-10 16:42:39 -05:00
ffmpegHelpers.js Implement SSRF filter for podcast episode downloads 2026-04-25 16:46:54 -05:00
fileUtils.js Make library scan symlink resolution configurable 2026-06-11 13:41:02 +01:00
globals.js fix(AIFF is supported, but AIF isn't) 2025-04-20 07:56:44 +05:30
htmlEntities.js Ability to decode HTML Entities when all tags are stripped. Fixes #929 2022-08-30 19:20:35 -04:00
htmlSanitizer.js Update server settings authLoginCustomMessage to sanitize on save and load 2026-03-11 17:18:05 -05:00
index.js Update author & library item image endpoints to clamp width/height query params 2026-04-17 16:30:08 -05:00
libraryHelpers.js Migrate tools and collapse series. fix continue shelves. remove old objects 2025-01-05 14:09:03 -06:00
longTimeout.js Fix:Shares not working with timeouts longer than 23 days #3164 2024-07-27 17:40:51 -05:00
notifications.js Fix typo on onTest notification body 2026-05-30 15:43:50 -05:00
podcastUtils.js Update podcastUtils to sanitize episode subtitle from rss feed 2026-04-17 16:59:22 -05:00
prober.js Fix merging embedded chapters for multi-track audiobooks giving incorrect chapter ids #3361 2025-01-12 09:56:48 -06:00
profiler.js Add a profile utility function 2025-02-08 10:41:56 +02:00
rateLimiterFactory.js Support disabled rate limiter by setting max to 0, add logs when rate limit is changed from default 2025-07-12 10:51:07 -05:00
scandir.js Update watcher to re-scan library items when non-media files are added/updated #4245 2025-05-01 17:17:40 -05:00
stringifySequelizeQuery.js fix stringifySequelizeQuery and add tests 2025-02-15 23:57:27 +02:00
zipHelpers.js Fix multiple download for podcasts & cleanup 2025-03-18 17:28:49 -05:00