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
Deluan
c9455e1955
getCoverArt.view working
2016-03-03 12:08:44 -05:00
Deluan
1b945831cc
Implementing coverArt
2016-03-03 10:34:17 -05:00
Deluan
757e1992d7
Bare bones getMusicDirectory for albums!
2016-03-02 23:15:17 -05:00
Deluan
838d4bf38f
getMusicDirectory bare bones for artists working
2016-03-02 22:22:31 -05:00
Deluan
9577d9ae87
Started the implementation of getMusicDirectory. Probably will need to introduce a new 'service' layer...
2016-03-02 20:00:55 -05:00
Deluan
4843ccb46c
go fmt
2016-03-02 13:18:39 -05:00
Deluan
9d41f5a39f
Supporting json output (except for errors)
2016-03-02 13:14:44 -05:00
Deluan
77e3aa7620
More DI
2016-03-02 10:48:30 -05:00
Deluan
272a499c7e
Refactoring to a cleaner architecture
2016-03-02 09:10:28 -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
2bb4c74ba6
Started implementing getIndex, now with TDD (brought to you by DI)!
2016-03-01 12:36:15 -05:00
Deluan
b2cdf8cadb
Clearer way to create definitions
2016-03-01 10:18:02 -05:00
Deluan
4df6c43be8
Basic DI (dependency injection) working! Yay!!
2016-03-01 09:38:43 -05:00
Deluan
4efb8ab031
Moved router to conf package
2016-03-01 09:23:40 -05:00
Deluan
b0bd0a63a7
Retrofitting with tests
2016-02-29 10:04:30 -05:00
Deluan
49b512fc9c
Big LedisDB refactoring
2016-02-29 01:06:42 -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
Deluan
975327a6cb
Handling request validation/authentication
2016-02-24 18:06:49 -05:00
Deluan
9a55fa1c64
Experiments with bleve, repositories and parsing itunes
2016-02-24 15:30:28 -05:00
Deluan
1a3f370ea6
Refactored responses, implemented getLicense
2016-02-24 11:40:58 -05:00
Deluan
ed1a132d8e
Better Ping implementation
2016-02-24 00:29:27 -05:00
Deluan
b9e9d38a9a
First endpoint: Ping
2016-02-24 00:07:57 -05:00
Deluan
5d6fd4ee6b
Initial project skeleton
2016-02-23 18:41:35 -05:00