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
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