Deluan
d913108de2
Add option to disable track cover art. Should help with cloud mounting (rclone)
2020-10-29 10:57:33 -04:00
Deluan
bf5318d776
Add flag to enable new cache layout
2020-10-26 09:54:36 -04:00
Deluan
1e56f4da76
Add simple cache warmer, disabled by default
2020-10-25 23:22:52 -04:00
Deluan
f3bb51f01b
Add formatting to config dump
2020-10-25 23:22:52 -04:00
Deluan
f9e0de31b8
Fix missing last.fm and spotify config keys. Closes #589
2020-10-22 08:31:47 -04:00
Deluan
19ead8f7e8
Add initial spotify client implementation
2020-10-20 16:07:31 -04:00
Deluan
eb74dad7cd
Add initial last.fm client implementation
2020-10-20 16:07:31 -04:00
Deluan
af55b93ac8
Make taglib the default metadata extractor
2020-10-05 21:01:03 -04:00
Deluan
34eda3c8fc
Add config option to select tag extractor (taglib, ffmpeg)
2020-09-08 13:33:07 -04:00
Deluan
76e522710a
New option: SearchFullString, to match query strings anywhere in searchable fields, not only in word boundaries
...
Based on feedback from @orlea, in https://github.com/deluan/navidrome/issues/255#issuecomment-683427754
2020-08-30 13:08:10 -04:00
Deluan
28d1428c90
Add option to disable .m3u auto-import
2020-08-02 23:17:13 -04:00
Deluan
0403ec2a07
Use OS-independent path separators
2020-07-28 08:49:07 -04:00
Deluan
f992b5663f
Remove old scanner
2020-07-27 12:34:44 -04:00
Deluan
d46a8cf89f
Allows config file to be specified with env var ND_CONFIGFILE. Fixes #415
2020-07-20 18:36:12 -04:00
Deluan
7e81a3b895
Fix default background image for login
2020-07-20 14:34:02 -04:00
Deluan
d268075046
Change the default scanner to use new implementation
2020-07-19 21:39:06 -04:00
Deluan
f0160f5d2a
Rate limit login attempts using a Sliding Window counter rate-limiter
2020-07-19 14:45:05 -04:00
Deluan
51c295d1de
Add new scanner algorithm, can be enabled with DevNewScanner config option
2020-07-17 12:06:49 -04:00
Deluan
74cf0ee1c1
Create Data Folder if it does not exist
2020-07-12 12:36:08 -04:00
Deluan
7c3fd38559
Add option to change IP address to bind
2020-07-08 20:54:56 -04:00
Deluan
1cc03fdd8c
Add initial support for Google Analytics
2020-07-03 13:51:31 -04:00
Deluan
dd91f983b5
Add new config option to show a custom welcome message in the login screen
2020-07-03 11:51:15 -04:00
Deluan
8181aba61f
Clean up a bit
2020-07-03 10:19:44 -04:00
Deluan
2d0539300d
Exit if specified config file is not present
2020-07-03 10:10:49 -04:00
Deluan
6954e1b4eb
Fix linting error
2020-07-03 09:46:58 -04:00
Deluan
ef9af6ed1a
Don't fail if config file isnot found
2020-07-03 09:39:28 -04:00
Deluan
99e269208e
Fix lint errors
2020-07-02 18:17:31 -04:00
Deluan
a65c9bbb16
Refactor and clean up
2020-07-02 17:53:51 -04:00
Deluan
d2e4cade62
Change duration config types
2020-07-02 17:53:51 -04:00
Deluan
5021c0fd0c
Replace multiconfig with cobra+viper
2020-07-02 17:53:51 -04:00
Deluan
2371e9b943
Add option to set jpeg quality level. Closes #371
2020-06-29 17:20:38 -04:00
Alex Palaistras
08cd28af2d
Load cover art from file directory
...
This commit adds support for loading cover art from media file
directories, according to configured filename priorities (of which an
additional, special choice of `embedded` is given).
Cover art paths are resolved during scanning and stored in the database
as part of the `album.cover_art_path` column; if embedded cover art is
matched, this will default to the path of the media file itself, and if
no cover art is matched at all.
Similarly, the `album.cover_art_id` column will default to a reference
to `media_file.id` if embedded cover art is wanted, but if an external
cover art file is matched, this will instead be set to a reference to
the `album.id` value itself, prefixed with the `al-` constant.
Stored cover art paths are once again resolved and matched against
configuration when covers are requested; that is, any change in
configuration between scanning and requesting cover art may not return
correct data until a re-scan is complete.
Tests will be added in future commits.
2020-06-24 20:48:42 -04:00
Deluan
c742ae0843
Remove unused feature toggles
2020-06-11 22:11:59 -04:00
Deluan
7547888f10
Change default session timeout to 24h
2020-05-30 10:34:16 -04:00
Deluan
1bca8fca97
Enable UI starred by default
2020-05-23 01:07:34 -04:00
Deluan
8a68cecdb9
Add ToggleStar to SongContextMenu (WIP)
2020-05-22 15:23:42 -04:00
Deluan
41010515ee
Enable Playlist Management in the UI by default
2020-05-16 19:16:48 -04:00
Deluan
f881e2a54b
Add option to enable (experimental) playlists in UI
2020-05-16 18:35:34 -04:00
Deluan
4b70cc52d6
Reduce log level of config file being used
2020-05-03 14:09:31 -04:00
Deluan
cccd0235cf
Add option to specify ConfigFile path
2020-05-02 23:17:38 -04:00
Deluan
c816ca4525
Add config option to enable/disable Transcoding configuration
2020-04-29 21:59:05 -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
db246900a6
Introduce a new configuration to select the login background image URL
2020-04-08 09:07:15 -04:00
Deluan
1bc68c20fc
Create and configure image cache
2020-04-05 22:02:06 -04:00
Deluan
75cd21da1f
Add BaseURL configuration ( fixes #103 )
2020-04-03 19:05:38 -04:00
Deluan
15606770ca
chore: removed non-working config flag
2020-03-22 01:13:55 -04:00
Deluan
0d8a2b310f
fix: the default session timeout must be 30 minutes, not seconds!
2020-03-21 12:17:20 -04:00
Deluan
c8cd755451
feat: use human readable sizes in cache size configuration
2020-03-18 20:39:10 -04:00
Deluan
faac303eff
feat: allow session timeout to be configurable. closes #101
2020-03-18 20:16:18 -04:00
Deluan
e02f3d3ec9
refactor: clean up unused config options
2020-03-17 15:20:35 -04:00
Deluan
1d886156d5
feat: better SQLite3 configuration, to avoid DB contention
2020-02-28 15:06:31 -05:00
Deluan
876354e58e
feat: MaxTranscodingCacheSize is now specified in MB
2020-02-26 14:08:14 -05:00
Deluan
a6b0c57ce0
feat: add a proper caching system to the transcoding functionality
2020-02-20 19:25:39 -05:00
Deluan
2c146ea1fe
feat: add option to auto-create admin user on first start-up
...
Useful for development purposes
2020-02-08 14:50:33 -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
8372dee000
feat: experimental downsampling support
2020-02-03 22:53:57 -05:00
Deluan
d389d40db1
feat: improve logs, remove config for disable authentication
2020-02-01 17:23:03 -05:00
Deluan
90a1e6d213
feat: add server name and version to all responses
...
This is inline with other Subsonic compatible servers, like funkwhale, madsonic, ampache...
2020-01-30 14:43:24 -05:00
Deluan
ac4aa1ebe2
feat: PORT env var can override configured port
2020-01-26 22:18:30 -05:00
Deluan
4e3b13050b
fix: tests
2020-01-26 18:25:12 -05:00
Deluan
cc6eacd608
fix: option to skip flags, to avoid breaking the tests
2020-01-26 18:00:10 -05:00
Deluan
7c2728aadc
fix: only try to load config file if it exists, or else it would not load any config at all...
2020-01-26 17:09:08 -05:00
Deluan
f9db80c409
feat: add conf for data folder, default current folder (not ./data anymore)
2020-01-26 16:42:56 -05:00
Deluan
828dc8f0f4
feat: add -help, simplified config loading
2020-01-26 16:21:07 -05:00
Deluan
684932217e
Disable loading config from flags, as it was not behaving correctly
2020-01-24 01:36:22 -05:00
Deluan
bff6f3a4bd
Rename env vars prefix to ND_
2020-01-24 01:29:31 -05:00
Deluan
137a20dd9e
Change default scan interval to 1 minute
2020-01-23 22:53:19 -05:00
Deluan
bee55c04c8
Rename project to Navidrome
2020-01-23 19:44:08 -05:00
Deluan
182c0b5d5e
Add configuration for scan interval. Default 5 mins
2020-01-22 08:48:02 -05:00
Deluan
f0ee41a8af
Add context to all methods in engine layer
2020-01-22 08:39:57 -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
28cd3ec3e4
Fix startup order, setting LogLevel
2020-01-20 17:35:04 -05:00
Deluan
99c28731d4
Authenticate Subsonic API calls using the DB
2020-01-20 13:42:43 -05:00
Deluan
491bfb1f69
Create initial user if User table is empty. Also make model.QueryOptions compatible with rest.QueryOptions
2020-01-19 22:47:22 -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
123f543a94
New Folder Scanner - WIP
2020-01-17 20:54:28 -05:00
Deluan
ca2c897340
Add flag to disable startup banner
2020-01-15 17:51:52 -05:00
Deluan
5240d83fcf
Replace fmt.Print with log.Error
2020-01-15 11:02:27 -05:00
Deluan
a167669717
Change default db path
2020-01-14 18:55:12 -05:00
Deluan
a99c3a8af3
Another big refactor: Back to a single folder for persistence implementation
2020-01-14 18:47:57 -05:00
Deluan
3d76144f82
Allow LogLevel to be configurable. Also add filename and line number when LogLevel>=debug
2020-01-13 19:57:36 -05:00
Deluan
536244bc44
Removed LedisDB persistence layer. May reimplement in the future (not likely thou)
2020-01-13 16:37:24 -05:00
Deluan
4b1c909a4d
Make persistence provider pluggable at runtime
2020-01-11 15:27:32 -05:00
Deluan
5acc9c7a22
Make DisableAuthentication a Dev flag
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
ff5b91da54
Renamed DisableValidation to DisableAuthentication
2020-01-09 22:44:45 -05:00
Deluan
23e38ec82f
Removed (almost) all remaining init()
2020-01-09 22:44:45 -05:00
Deluan
79701caca3
Removed Beego routing/controllers, converted to Chi.
...
Also introduced Wire for dependency injection
2020-01-09 22:44:45 -05:00
Deluan
4c61ac3272
Fix default PlsIgnoredPatterns configuration
2020-01-06 15:17:44 -05:00
Deluan
c417a00e62
Renamed project to CloudSonic
2017-04-01 09:47:14 -04:00
Deluan
62bfc85b07
Changed default port to 4533
2016-03-30 12:57:44 -04:00
Deluan
132fe06950
Cleaned default PlaylistIgnoredPatterns
2016-03-30 00:28:52 -04:00
Deluan
c2b1f9782b
New configuration system
2016-03-30 00:05:57 -04:00
Deluan
9049d97820
Moving code away from conf package.
...
This is necessary, as the conf package will hold only configuration, and cannot have dependencies on other packages
2016-03-29 18:27:14 -04:00
Deluan
768764bea7
getRandomSongs.view (partially) implemented
2016-03-29 00:01:27 -04:00
Deluan
2319454997
search3.view implemented
2016-03-28 10:01:43 -04:00
Deluan
a562bfd17e
getStarred2.view implemented
2016-03-28 09:46:16 -04:00
Deluan
615dc862af
getAlbum.view implemented
2016-03-28 09:23:44 -04:00
Deluan
82576223dc
getAlbumList2.view done
2016-03-27 23:04:05 -04:00
Deluan
94d76cb212
getArtist.view implemented
2016-03-27 21:27:45 -04:00
Deluan
0a137657fe
getArtists.view implemented
2016-03-27 20:35:10 -04:00
Deluan
1610b2180b
Removed stutter
2016-03-27 17:24:59 -04:00
Deluan
5a0864769b
Isolated ledis gomate implementation in its own package
2016-03-27 17:20:46 -04:00
Deluan
ee8e9864ea
Added getSong.view
2016-03-25 00:04:22 -04:00
Deluan
ea4d94fa84
Enabling CORS
2016-03-24 20:00:35 -04:00
Deluan
ea46c0a427
Put Unknown Artist in the end of the index
2016-03-24 17:52:27 -04:00
Deluan
3c8f6e9a65
Polishing
2016-03-24 14:44:21 -04:00
Deluan
b9952bc3de
Playlists support (99%) complete!
2016-03-24 13:28:20 -04:00
Deluan
a27803a4d1
deletePlaylist
2016-03-24 12:17:35 -04:00
Deluan
52850c6ef0
createPlaylist
2016-03-24 12:06:39 -04:00
Deluan
fc8bb34ae3
setRating.view implemented
2016-03-23 19:37:48 -04:00
Deluan
c50b0bdc48
star/unstar implemented
2016-03-23 17:46:54 -04:00
Deluan
cdcb5c6f49
Implemented getAvatar
2016-03-21 20:31:28 -04:00
Deluan
5dd4b15079
Moving up: API level 1.8.0
2016-03-21 17:36:09 -04:00
Deluan
68c456e188
Halfway of getNowPlaying implementation
2016-03-17 10:08:47 -04:00
Deluan
4748ce142f
Introduced NowPlayingRepository. Don't do anything for now
2016-03-16 20:27:48 -04:00
Deluan
b660a70688
Introduced engine.Scrobbler
...
Also refactored mocks into their original packages, to avoid cyclic references. Is there a better way to have mocks in GoLang tests?
2016-03-16 17:59:28 -04:00
Deluan
cdefabf760
Better log and less noise in prod mode
2016-03-15 17:31:35 -04:00
Deluan
12aedc0996
Using checksums to detect modified stats in the iTunes Library
2016-03-15 11:04:17 -04:00
Deluan
e36a4201db
implemented getStarred (just for albums, for now)
2016-03-14 11:35:48 -04:00
Deluan
4d7f9ee012
Fixed iTunes location decoding
2016-03-12 11:36:24 -05:00
Deluan
4b09eeccc2
Configuring "prod"
2016-03-11 21:14:32 -05:00
Deluan
d23f5ca635
Scrobble working!!! I mean, iTunes scrobble, not Last.FM (for now)
2016-03-11 20:49:01 -05:00
Deluan
e9861e1b26
New target API version: 1.5.0
2016-03-11 15:08:37 -05:00
Deluan
ef31d1aca0
Searching by artists, spike mode
2016-03-11 00:37:07 -05:00
Deluan
29c2925a1c
New API level target: 1.4.0
2016-03-11 00:35:13 -05:00
Deluan
df957814a0
Implemented artists indexing, with Gomate
2016-03-10 23:19:13 -05:00
Deluan
42f3279aaf
Hack to make streaming work, but with wrong content-length
2016-03-10 11:16:28 -05:00
Deluan
de6bd1eb17
option to disable downsampling
2016-03-09 22:21:11 -05:00
Deluan
61d96421dd
Fix ignore pattern
2016-03-09 19:57:22 -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
2214e4bd4f
Playlists working
2016-03-09 18:28:11 -05:00
Deluan
0d8c6b58db
Grouped some API controllers by functionality
2016-03-09 10:22:10 -05:00
Deluan
7161325716
Initial wiring for getPlaylists endpoint
2016-03-09 10:09:15 -05:00
Deluan
00b4c44010
Refactored coverart logic to engine layer
2016-03-08 23:05:54 -05:00
Deluan
5be236515d
Moved getAlbumList logic to engine layer
2016-03-08 19:13:36 -05:00
Deluan
8607e25c90
Moved properties to engine layer
2016-03-08 18:40:16 -05:00
Deluan
067517a916
Fixed problem with DI
2016-03-08 18:33:35 -05:00
Deluan
e10e730af1
Refactored logic from getMusicDirectory.view to the new engine layer.
...
This reveled a nasty bug in the DI code. Tests are broken
2016-03-08 14:19:27 -05:00
Deluan
91c660c746
Added a new layer: engine (equivalent to use cases in Clean Architecture). Should make testing things easier
2016-03-07 10:57:32 -05:00
Deluan
9783db1781
Aiming at 1.2.0 API version for first release
2016-03-04 17:05:15 -05:00
Deluan
7225807bad
Initial work on downsampling
...
The http connection is being closed before sending all data. May have something to do with the Range header
2016-03-04 13:33: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
3b60b62aa1
Adding a "placeholder" to getUser.view endpoint
2016-03-03 18:44:39 -05:00
Deluan
c990073fc7
Cleaning up configuration file
2016-03-03 17:36:27 -05:00
Deluan
cc31366cc1
For now, download.view and stream.view are the same, as we don't have transcoding configuration on the server side
2016-03-03 15:00:58 -05:00
Deluan
29b34968eb
Implemented stream
2016-03-03 14:46:19 -05:00
Deluan
053f4b72ba
Adding big list of mime types, and adding support for contenty-type in
...
getMusicDirectory.view
2016-03-03 13:47:47 -05:00