Commit Graph

240 Commits

Author SHA1 Message Date
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
Deluan 694b5d1d39 tests: change test folder permissions 2020-02-03 17:53:59 -05:00
Deluan 5329ac7b72 refactor: better format for list of folders 2020-02-03 17:53:59 -05:00
Deluan 464880dd31 refactor: use stdlib `filepath.FromSlash` 2020-02-03 17:53:59 -05:00
Deluan 0e01f9a0f9 fix: use filepath.Join instead of path.Join 2020-02-03 17:53:59 -05:00
Deluan de1fea64bc refactor: introduce GC, to delete old data 2020-02-01 17:23:03 -05:00
Deluan 71c1844bca refactor: new persistence, more SQL, less ORM 2020-02-01 17:23:03 -05:00
Deluan c9f5625abf fix: skip files with errors during scan 2020-02-01 11:25:31 -05:00
Deluan 0d2911daf9 refactor: add Context to the persistence layer 2020-01-27 09:41:33 -05:00
Deluan 0ff741b394 fix: persistence tests were not being properly initialized 2020-01-26 17:10:13 -05:00
Deluan 461b7424e9 Ignore case in extracted tags 2020-01-24 09:46:59 -05:00
Deluan bff6f3a4bd Rename env vars prefix to ND_ 2020-01-24 01:29:31 -05:00
Deluan bee55c04c8 Rename project to Navidrome 2020-01-23 19:44:08 -05:00
Deluan 9557f7ceed Initial support for song browsing from UI 2020-01-22 10:47:43 -05:00
Deluan e03304650d Fix compilation tag, again 2020-01-21 22:41:18 -05:00
Deluan 654831f79d Fix bug in `compilation` tag parsing 2020-01-21 17:31:24 -05:00
Deluan 3a44f37622 Add comment tag, still missing multiline comments 2020-01-21 10:05:00 -05:00
Deluan 22a0b7e170 Don't override input tags with stream tags 2020-01-21 09:52:34 -05:00
Deluan c42e1bd2f5 Extract metadata from files in a directory in batch (one call to ffmpeg for all files) 2020-01-21 07:50:30 -05:00
Deluan 7529ae3752 Extract metadata with `ffmpeg` 2020-01-20 22:32:40 -05:00
Deluan c6ed0d5377 Remove flag to allow override media annotation 2020-01-20 18:19:16 -05:00
Deluan 67eeb218c4 Big Refactor:
- Create model.DataStore, with provision for transactions
- Change all layers dependencies on repositories to use DataStore
- Implemented persistence.SQLStore
- Removed iTunes Bridge/Importer support
2020-01-19 16:28:09 -05:00
Deluan fe058aa4a1 Don't override media annotations when scanning/importing 2020-01-18 21:45:44 -05:00
Deluan a4b75fd69d Test "Compilation" tag 2020-01-18 11:19:00 -05:00
Deluan 58a080eded Handle folder moves in Scanner 2020-01-18 11:00:20 -05:00
Deluan ccbdf688ea Reduced size of batches, to not break SQLite 2020-01-18 01:49:08 -05:00
Deluan 1929aaec1a Disabling tests that are not multi-platform, for now 2020-01-18 00:08:00 -05:00
Deluan 73597b22b4 Rewrite description of folder scan algorithm 2020-01-17 23:55:58 -05:00
Deluan 54d13d2022 Purge empty albums/artists 2020-01-17 23:28:11 -05:00
Deluan ea9ed4a287 Fix ChangeDetector to keep the dirMap from last scan 2020-01-17 22:41:10 -05:00
Deluan e55dfff485 Fix file descriptor leak 2020-01-17 21:23:26 -05:00
Deluan c0beaa6377 Integrate ArtistIndex logic into Artist 2020-01-17 20:54:28 -05:00
Deluan 123f543a94 New Folder Scanner - WIP 2020-01-17 20:54:28 -05:00
Deluan 25686c1742 Preparing for new scanner 2020-01-14 21:51:35 -05:00
Deluan a99c3a8af3 Another big refactor: Back to a single folder for persistence implementation 2020-01-14 18:47:57 -05:00
Deluan 614f4afe28 Implement Artist search with SQL, removed old search/indexer code 2020-01-13 16:06:30 -05:00
Deluan 28ee1f195c More logging in the Importer 2020-01-11 15:27:32 -05:00
Deluan c9be5f7201 Storm ChecksumsRepository complete. 2020-01-11 15:27:32 -05:00
Deluan 11f4505925 Renamed persistence packages 2020-01-11 15:27:32 -05:00
Deluan 0ca691b37f Storm ArtistRepository and PropertyRepository complete. 2020-01-11 15:27:32 -05:00
Deluan 40904b220e Renamed Id to ID, following GoLang convention 2020-01-11 15:27:32 -05:00
Deluan a4a8360a94 Add Dev flag to disable file presence verification 2020-01-11 15:27:32 -05:00
Deluan 24cbf766a3 Removed dependency on `engine` from `persistence` 2020-01-09 22:44:45 -05:00
Deluan 84d69a4f41 Replaced Beego logging 2020-01-09 22:44:45 -05:00