Commit Graph

283 Commits

Author SHA1 Message Date
Deluan 5dea258058 Extract basic tags, as a fallback 2020-09-08 13:33:07 -04:00
Deluan 0802ab73d7 Trim tag value, not tag key 2020-09-08 13:33:07 -04:00
Deluan 865b9cd545 Trim spaces from tags 2020-09-08 13:33:07 -04:00
Deluan e70ec53983 Rewrite taglib integration, now with TCMP 2020-09-08 13:33:07 -04:00
Deluan 2d0031f709 Parse more date formats 2020-09-08 13:33:07 -04:00
Deluan 78ecda5239 Get the first occurrence of multi-valued tags 2020-09-08 13:33:07 -04:00
Deluan a1879ff871 Reorganize tests 2020-09-08 13:33:07 -04:00
Deluan 34eda3c8fc Add config option to select tag extractor (taglib, ffmpeg) 2020-09-08 13:33:07 -04:00
Deluan 506899b083 Add more fallback options for main tags 2020-09-08 13:33:07 -04:00
Deluan 3a4e2523dd Fix possible concurrency issue 2020-09-08 13:33:07 -04:00
Deluan 58a0c44600 Embed audiotags lib, to make it static compilable 2020-09-08 13:33:07 -04:00
Deluan df4328819d Initial implementation of `taglib` MetadataExtractor 2020-09-08 13:33:07 -04:00
Deluan 1187ee7cc1 Moved Metadata Extraction to its own package 2020-09-08 13:33:07 -04:00
Deluan 0beec552b1 Introduce Metadata and MetadataExtractor interfaces 2020-09-08 13:33:07 -04:00
Deluan 6820e120cb Test for accented article sanitization 2020-09-08 09:40:41 -04:00
Deluan 28aefb4858 Fix sanitizing accented articles 2020-09-08 09:36:08 -04:00
Deluan a45c08f217 Ignore "hidden" files when importing a folder 2020-08-21 11:50:18 -04:00
Deluan b836871161 Handle CR, LF and CRLF line endings when importing Playlists 2020-08-19 12:22:41 -04:00
Deluan 28d1428c90 Add option to disable .m3u auto-import 2020-08-02 23:17:13 -04:00
Deluan f29e1eb248 Remove repeated call 2020-08-02 15:19:42 -04:00
Deluan f992b5663f Remove old scanner 2020-07-27 12:34:44 -04:00
Deluan 4e4fcb2304 Small refactorings, better var/function names 2020-07-27 10:51:50 -04:00
Deluan 60178c264d Keep annotations if tracks were already in DB 2020-07-23 03:26:39 -04:00
Deluan 040c7f1e7d Add missing call to refresh artists 2020-07-22 15:37:24 -04:00
Deluan 036f9d6730 Flush albums and artists after each folder added/updated/deleted 2020-07-22 12:56:50 -04:00
Deluan f96e2f6c4f Process deleted folders even if there are no changed folders 2020-07-22 01:29:44 -04:00
Deluan 7a5285ae47 When deleting folders, only flush artists/albums after deleting the mediaFiles 2020-07-22 01:00:16 -04:00
Deluan ba347bc0b1 Detect moved folders 2020-07-22 00:42:12 -04:00
Deluan d268075046 Change the default scanner to use new implementation 2020-07-19 21:39:06 -04:00
Deluan feca030c6d Give warning when playlists are not imported due to not having an admin user 2020-07-19 13:58:46 -04:00
Deluan 6adba03868 Renamed misleading function name 2020-07-17 22:55:51 -04:00
Deluan 609d172259 Use first admin user for all scan operations 2020-07-17 22:55:51 -04:00
Deluan 9cf8c92cae Break up processChangedDir into smaller functions 2020-07-17 22:55:51 -04:00
Deluan 8f512a40f7 Refactored playlist auto-import support 2020-07-17 22:55:51 -04:00
Deluan b9b6ce066b Auto-Import playlists found in the Music Folder 2020-07-17 22:55:51 -04:00
Deluan 3239be4a4d Change log level of some scanner operations 2020-07-17 12:49:37 -04:00
Deluan 51c295d1de Add new scanner algorithm, can be enabled with DevNewScanner config option 2020-07-17 12:06:49 -04:00
Deluan de0cc1f268 Move LoadAllAudioFiles tests to the proper test file 2020-07-16 18:18:48 -04:00
Deluan e7f6ba8f35 Move LoadAllAudioFiles function to the right file 2020-07-16 17:42:26 -04:00
Deluan aae43f4452 Remove unneeded `\n` 2020-07-13 11:49:06 -04:00
Deluan d4347f20ae Remove redundant log message 2020-07-12 20:42:38 -04:00
Deluan ee0ae0a06c Fix lint errors 2020-07-12 13:36:22 -04:00
Deluan 064da8e034 Add more trace logging to scanner 2020-07-12 13:30:03 -04:00
Deluan c2f40ea8a3 Show totals at the end of scan 2020-07-12 12:35:23 -04:00
Deluan f694e471fb Make private types unexported 2020-07-12 11:55:19 -04:00
Deluan dc8368c89c Return counter from DeleteByPath 2020-07-12 11:53:07 -04:00
Deluan 2f8b01015d Change log level for "path unavailable" 2020-07-04 11:36:57 -04:00
Deluan 17830d63b4 Ignore m3u files when scanning 2020-07-03 21:06:33 -04:00
Deluan bcaf330233 Make sure to select cover art from media_file that has it. Fix #360 2020-06-27 22:16:07 -04:00
Deluan ab1c943d1f Force album/artist refresh when folder changes, to cater for cover art files 2020-06-27 18:41:55 -04:00
Deluan eb109ebeb4 Remove duplicated helper functions, move them to `utils` package 2020-06-24 20:48:42 -04:00
Deluan 653b5ea9d3 Replace map[string]bool with map[string]struct{} 2020-06-14 03:11:16 -04:00
Deluan e73b71aaf7 Remove tracks from DB that were deleted while Navidrome was not running. Fixes #151 2020-06-14 03:11:16 -04:00
Deluan 01919661e9 Skip unreadable directories. Fixes #328 2020-06-14 03:11:16 -04:00
Deluan 3190611ec8 Call `ffmpeg` in batches 2020-06-14 03:11:16 -04:00
Deluan 238020c839 Handle folders with lots of albums and/or artists 2020-06-14 03:11:16 -04:00
Deluan 17df63b550 Fix `child.size` and `directory.playCount` compatibility with Subsonic API. Fixes #304 2020-05-19 23:51:23 -04:00
Deluan a4183aea8c Unexport private functions 2020-05-18 15:06:33 -04:00
Deluan 9e845cb116 Skip scanning folders if they contain a `.ndignore` file. Closes #297 2020-05-18 14:37:01 -04:00
Deluan 5ce3135f00 Fix gosec's G601 2020-05-13 15:32:42 -04:00
Deluan 0d9361734f Import and display disc subtitles 2020-05-12 12:57:53 -04:00
Deluan 5862157a2c Move test file to fixtures folder 2020-04-28 11:59:47 -04:00
Deluan ddeefad501 Fix `goimport` and `gosec` warnings 2020-04-26 15:07:36 -04:00
Deluan 5cd453afeb Fix all `errcheck` warnings 2020-04-26 15:07:36 -04:00
Deluan 03c3c192ed Fixing static checks about passing nil context 2020-04-26 15:07:36 -04:00
Deluan 1dd3a794f8 Reduce level of "invalid year" log message 2020-04-24 16:00:14 -04:00
Deluan 6c5dd245fe Parse TSO2 (seems that ffmpeg does not process this tag in some situations) 2020-04-24 15:02:20 -04:00
Deluan 371e8ab6ca Generate Order Fields based on sanitized version of original fields 2020-04-24 15:02:20 -04:00
Deluan 69c19e946c Add sort tags and use them in search 2020-04-24 15:02:20 -04:00
Deluan d7edbf93f0 Make test more reliable
In some systems, it was detecting the `go.mod` file as an audio file, probably because of the system's mime-type configuration
2020-04-24 11:05:17 -04:00
Deluan 5a072fbd10 Follow symlinks to directories when scanning 2020-04-23 20:31:44 -04:00
jvoisin 2ab647efe1 Add a test 2020-04-11 13:08:21 -04:00
jvoisin 04eb421186 Refactor a bit how ffmpeg is used to get metadata
- createProbeCommand returns a []string instead of (string, string[])
- Simplify the loop of createProbeCommand
2020-04-11 13:08:21 -04:00
Deluan 7bc3dace4c Revert "Improve ffmpeg's error diagnostic"
This reverts commit 4fc88f23
2020-04-09 14:26:42 -04:00
jvoisin 4fc88f23e9 Improve ffmpeg's error diagnostic
This should close #155
2020-04-09 10:40:16 -04:00
Deluan 9b272c8021 Small log tweak 2020-04-06 14:02:50 -04:00
Deluan 59707b3a8f Detect embedded art in ogg containers 2020-04-05 23:41:10 -04:00
Deluan 9b461735f4 Add comments to createXxxxCommand functions to clarify about the filepaths arguments being absolute paths 2020-04-03 14:49:35 -04:00
Deluan 3d6ce8a77f Skip calling `ffmpeg` if there are no files to probe 2020-04-02 17:38:20 -04:00
Deluan dcb3b3b5d1 fix: various album_artists <-> artists mismatches 2020-03-26 09:08:53 -04:00
Deluan 100db2bcfd feat: add artist filter to album view 2020-03-25 20:40:18 -04:00
Deluan b4c7cac964 refactor: moved magic strings to consts 2020-03-24 11:59:10 -04:00
Deluan f6e448c1ba refactor: removed unused code, unnecessary typecasts and fixed small warnings 2020-03-20 00:07:36 -04:00
Deluan fc14e346b9 feat: store duration as float, to cater for milliseconds 2020-02-20 17:02:06 -05:00
Deluan 5525145906 fix: audio stream's bitrate has precedence over container's bitrate 2020-02-20 13:56:45 -05:00
Deluan 74d87790b8 refactor: better ffmpeg output metadata parsing 2020-02-20 10:41:16 -05:00
Deluan ae02dc203e chore: remove unused code 2020-02-19 09:08:05 -05:00
Deluan fc7595a464 fix: cover art detection regex 2020-02-18 11:19:22 -05:00
Deluan 4ceaea7732 fix: extract stream level metadata 2020-02-18 10:00:05 -05:00
Deluan 894536c8ec Revert "fix: extract stream level metadata"
This reverts commit 92f6e55821.
2020-02-15 23:18:37 -05:00
Deluan 92f6e55821 fix: extract stream level metadata 2020-02-15 20:47:06 -05:00
Deluan b2d022b823 fix: ignore environment dependant test 2020-02-13 20:19:51 -05:00
Deluan ba08f00c20 feat: make rescan faster, only loading metadata from changed files 2020-02-13 20:18:17 -05:00
Deluan d9993c5877 refactor: separate metadata extraction from audio files scanning 2020-02-13 10:03:52 -05:00
Deluan edb839a41d fix: only update artists and albums if there were any changes in files 2020-02-12 23:05:10 -05:00
Deluan 400fa65326 feat: better scanner logging when level = info 2020-02-08 23:36:09 -05:00
Deluan ab10719d27 fix: use a regex to match year in ffmpeg date field. close #63 2020-02-08 23:17:12 -05:00
Deluan e33d2305a1 feat: support multiple year formats in the `date` tag (#63) 2020-02-06 14:44:50 -05:00
Deluan 6e2454f6cc refactor: add -i to ffmpeg ProbeCommand. make it more consistent with the DownsampleCommand 2020-02-03 23:04:58 -05:00
Deluan 4d06d250e6 fix: relative path was not working for rootFolder started with '.' 2020-02-03 17:53:59 -05:00