Commit Graph

396 Commits

Author SHA1 Message Date
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
Deluan 3af9972b41 Remove Beego tasks, make Importer available through DI 2020-01-09 22:44:45 -05:00
Deluan 4c61ac3272 Fix default PlsIgnoredPatterns configuration 2020-01-06 15:17:44 -05:00
Deluan 9260a8b9ed Changes to itl were merged, reverting to the original repo 2017-04-01 09:51:25 -04:00
Deluan c417a00e62 Renamed project to CloudSonic 2017-04-01 09:47:14 -04:00
Deluan a7ccd76d54 Allowing album cover ids with prefix (al-) 2016-03-30 10:01:37 -04:00
Deluan c2b1f9782b New configuration system 2016-03-30 00:05:57 -04:00
Deluan 3cc92a32bd Adding song and album counts 2016-03-27 20:13:00 -04:00
Deluan 9099e24413 Polishing 2016-03-26 22:34:20 -04:00
Deluan 0e20910061 Cleaning old data from artists indexes 2016-03-26 22:29:26 -04:00
Deluan 107321219a Trying to make code more manageable, before a big rewrite 2016-03-26 22:22:34 -04:00
Deluan 06828d8738 Polishing 2016-03-24 23:31:54 -04:00
Deluan db8c09d503 Better log messages 2016-03-24 13:53:52 -04:00
Deluan b9952bc3de Playlists support (99%) complete! 2016-03-24 13:28:20 -04:00
Deluan b3215f057f Setting Album/Artist names to [Unknown} if missing 2016-03-23 12:00:40 -04:00
Deluan 0e1618a6ac Using PersistentIDs instead of "Database" IDs 2016-03-23 11:43:20 -04:00
Deluan 59a0ab3793 Fixed bug with StarredAt 2016-03-22 21:32:22 -04:00
Deluan db992a9941 Small changes regarding StarredAt.
Making StarredAt more "precise", setting it to the time the change was detected.
getStarred.view now returns albums ordered by StarredAt.
loadRange method now take QueryOptions.Desc into account
2016-03-22 19:00:18 -04:00
Deluan 2a2af2f57a Adding Album total time (Duration) 2016-03-21 21:14:04 -04:00
Deluan a9d7d4d242 Even more metadata for playlists 2016-03-21 12:26:55 -04:00
Deluan 0b286afa08 UserRatings for Albums and MediaFiles 2016-03-21 10:24:40 -04:00
Deluan 5fd9da505e More metadata for children (albums/mediafiles) 2016-03-21 09:52:32 -04:00
Deluan 508bf7152f Removing purged ids from the search index 2016-03-18 19:50:21 -04:00
Deluan 3790aa45e4 Refactored PurgeInactive as a "generic" function.
Also delete indexes when removing records
2016-03-18 19:32:49 -04:00
Deluan c90a50827a Get() methods from all repositories now return a ErrNotFound when the id is nonexistent 2016-03-18 11:33:50 -04:00
Deluan a3238ce17b Cannot clear the index for now.
Have to come up with a solution to partially update the search index
2016-03-16 23:44:24 -04:00
Deluan 86da33f91d Revert "Always index songs and albums"
This reverts commit 4aa02e68e5.
2016-03-16 23:11:52 -04:00
Deluan 4aa02e68e5 Always index songs and albums 2016-03-16 15:35:21 -04:00
Deluan 31852ecf26 Better log 2016-03-15 17:44:15 -04:00
Deluan cdefabf760 Better log and less noise in prod mode 2016-03-15 17:31:35 -04:00
Deluan cad65f517c Polishing 2016-03-15 13:17:51 -04:00
Deluan 12aedc0996 Using checksums to detect modified stats in the iTunes Library 2016-03-15 11:04:17 -04:00
Deluan c01ce35f04 ignoring iTunesU and Podcasts (for now) 2016-03-13 22:11:44 -04:00
Deluan 27b47abfe0 Renamed method 2016-03-13 13:11:16 -04:00
Deluan 4d7f9ee012 Fixed iTunes location decoding 2016-03-12 11:36:24 -05:00
Deluan 329297dab8 Task for continuously check for iTunes Library updates 2016-03-11 19:02:51 -05:00
Deluan 12b0350d3e Task for continuously check for iTunes Library updates 2016-03-11 18:37:37 -05:00
Deluan 71f1fab575 Updated Date takes Last Played into account 2016-03-11 17:09:47 -05:00
Deluan f4c1dbdd3c Simplified DI resolution 2016-03-11 15:16:17 -05:00
Deluan 147a178933 Logging tracks/albums updates 2016-03-11 12:10:37 -05:00
Deluan 4780b54f01 Indexing everything 2016-03-10 23:24:30 -05:00
Deluan df957814a0 Implemented artists indexing, with Gomate 2016-03-10 23:19:13 -05:00
Deluan 2437eed586 Removed unnecessary "else"s 2016-03-10 09:37:35 -05:00
Deluan d8e6076d66 Skip tracks by mime type, not by iTunes kind
Also skip all special playlists (except iTunesU)
2016-03-10 09:37:25 -05:00
Deluan fc625ac70e Options to ignore patterns in playlists full path 2016-03-09 19:50:02 -05:00
Deluan a4e9d9da14 Option to ignore folder playlists 2016-03-09 19:06:50 -05:00
Deluan 4bb4fc0cb8 More playlists 2016-03-09 14:24:00 -05:00
Deluan 867ca0580c Just use html.UnescapeString.... 2016-03-08 20:54:50 -05:00
Deluan 8607e25c90 Moved properties to engine layer 2016-03-08 18:40:16 -05:00
Deluan 46e7627fd3 Optimized import, only updating changed data and purging old data 2016-03-08 14:19:07 -05:00
Deluan 56e9ad3def Silly bug... Where are the tests?!? 2016-03-07 09:24:35 -05:00
Deluan 0e492a053c Only read tag when the track was changed 2016-03-06 21:32:31 -05:00
Deluan be28ce1178 Better logging in scanner/importer 2016-03-06 20:42:53 -05:00
Deluan 319c829eea Hashs for Album and Artist IDs should be case insensitive 2016-03-06 11:55:17 -05:00
Deluan 36adace7a3 Better logging 2016-03-04 22:50:04 -05:00
Deluan 7a21665c97 Handling a possible bug in the tag library 2016-03-04 22:29:29 -05:00
Deluan 0b6093ce5d Handling a NPE 2016-03-04 19:49:51 -05:00
Deluan 8ff1a94d75 Fixing ArtistName for Compilations / Various Artists 2016-03-04 17:35:13 -05:00
Deluan 1c9d7721ad Implemented more getAlbumList.view types 2016-03-04 17:01:14 -05:00
Deluan 766fdbc60c Big Importer/Scanner refactor 2016-03-04 16:42:09 -05:00
Deluan 9a246b5432 First version of getAlbumList.view working.
- It still misses almost all type options
- Introduced "parent" in Child subresponse, as it was breaking DSub
2016-03-04 09:09:16 -05:00
Deluan 4b70daf143 Converted scanner to a proper Import "class", to facilitate testing 2016-03-03 20:01:27 -05:00
Deluan 848809d0df Supporting starred in getMusicDirectory.view 2016-03-03 15:41:24 -05:00
Deluan 1b945831cc Implementing coverArt 2016-03-03 10:34:17 -05:00
Deluan f01a5f143d Added Starred for Album and MediaFile 2016-03-03 01:07:13 -05:00
Deluan 012958cd08 go fmt 2016-03-03 00:46:23 -05:00
Deluan ffd6304a23 Added DiscNumber field, used to sort tracks 2016-03-03 00:42:42 -05:00
Deluan 1aeb22dcb7 Fixed (?) Artist x AlbumArtist 2016-03-03 00:25:26 -05:00
Deluan 7d5cafb17a Fixed string decoding during import 2016-03-03 00:10:35 -05:00
Deluan e9a46b77ff Logging errors during import 2016-03-03 00:07:10 -05:00
Deluan eabee8b502 More track info 2016-03-02 23:51:26 -05:00
Deluan 757e1992d7 Bare bones getMusicDirectory for albums! 2016-03-02 23:15:17 -05:00
Deluan 51bae19191 Added Genre and Track Number to getMusicDirectory 2016-03-02 22:43:31 -05:00
Deluan 4843ccb46c go fmt 2016-03-02 13:18:39 -05:00
Deluan 300ed0d9a4 Introduced interfaces for all repositories, completely isolating the persistence layer from the repositories usage and specification 2016-03-02 09:43:00 -05:00
Deluan 272a499c7e Refactoring to a cleaner architecture 2016-03-02 09:10:28 -05:00
Deluan 25a9320bce Sorting artist index 2016-03-01 19:52:58 -05:00
Deluan 5b65f85578 Fixed ampersand unescaping error 2016-03-01 18:19:57 -05:00
Deluan c64a0f8242 Implemented proper index grouping 2016-03-01 17:54:13 -05:00
Deluan 841d8f457f Implemented ProperyRepository. Now the Scanner stores the LastScan timestamp 2016-03-01 14:40:26 -05:00
Deluan 1ceefda6ca TODO 2016-03-01 13:31:52 -05:00
Deluan 54460d5860 Empty tests should be skipped 2016-03-01 12:43:55 -05:00
Deluan 1a4f783669 Some refactoring 2016-02-29 13:56:09 -05:00
Deluan 1c47b7b8ef Added empty tests in each package, to get the more precise coverage percentage 2016-02-29 13:38:41 -05:00
Deluan 49b512fc9c Big LedisDB refactoring 2016-02-29 01:06:42 -05:00
Deluan 515279606a Basic scanning working. Time to retrofit some tests.... 2016-02-28 15:46:53 -05:00
Deluan 14e52576a7 Scanning artists and albums too 2016-02-28 14:21:12 -05:00
Deluan bccfeec2d3 Added TODO 2016-02-28 09:44:32 -05:00
Deluan 280068373f Introduced CountAll for repositories 2016-02-28 02:56:41 -05:00
Deluan ecc0df9e7c More experimenting with tiedot 2016-02-27 03:35:01 -05:00
Deluan 85ddd19c3d Implemented first repository using tiedot 2016-02-26 01:32:31 -05:00