Commit Graph

227 Commits

Author SHA1 Message Date
Deluan 1a0563db2d Fix test 2020-01-24 22:02:50 -05:00
Deluan 49f59fe9f4 Embed static files used by Subsonic API 2020-01-24 21:35:19 -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 f0ee41a8af Add context to all methods in engine layer 2020-01-22 08:39:57 -05:00
Deluan c8a74881d8 Fix album lists, to use annotations 2020-01-22 01:00:00 -05:00
Deluan d7116eebd4 Implement annotations per user 2020-01-21 23:03:37 -05:00
Deluan 02d1088fc5 Rename test file 2020-01-21 18:52:32 -05:00
Deluan d4adc784cc Return playlist duration in getPlayList 2020-01-21 18:10:29 -05:00
Deluan 7fe15134a6 Check permissions to playlist operations 2020-01-21 17:18:46 -05:00
Deluan 57fcdac428 Initial support for playlists. Missing permissions 2020-01-21 16:39:35 -05:00
Deluan de0816da67 Reimplemented GetAlbumList&type=random and GetRandomSongs (now with filter by genres) 2020-01-21 08:49:43 -05:00
Deluan 8a1110044c Better error handling when cover art cannot be loaded 2020-01-20 22:30:16 -05:00
Deluan 1e582bec5c Expiry items in NowPlaying 2020-01-20 15:51:33 -05:00
Deluan 398dfd04fc Refactor GetAllStarred to make it more readable 2020-01-20 14:17:14 -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 fffb2c38b3 Fix: Scrobber was not incrementing MediaFile's playCount 2020-01-18 22:11:07 -05:00
Deluan 938a92eded Register PlayCount/Date in the DB, if DevUseFolderScanner is true 2020-01-18 20:59:20 -05:00
Deluan 3c66da0b17 NowPlaying is not a repo, now it is part of the main engine 2020-01-18 20:21:25 -05:00
Deluan 128e165aba Add Stars to the DB, including Artists! Only if DevUseFolderScanner is true 2020-01-18 20:03:52 -05:00
Deluan c0beaa6377 Integrate ArtistIndex logic into Artist 2020-01-17 20:54:28 -05:00
Deluan ca04a919ad Remove Alpha from QueryOptions. Also add Filter, not implemented yet 2020-01-15 23:49:20 -05:00
Deluan 3a27a2d2d2 Fix test suite name 2020-01-15 21:52:50 -05:00
Deluan 36d93774bc Add GetGenre endpoint 2020-01-15 17:56:02 -05:00
Deluan 0ea2bd79d9 Rename `domain` to `model` 2020-01-14 22:22:34 -05:00
Deluan a5b2e3c31f Remove dependency on goleveldb 2020-01-13 16:40:51 -05:00
Deluan 614f4afe28 Implement Artist search with SQL, removed old search/indexer code 2020-01-13 16:06:30 -05:00
Deluan 3a9559a860 Implement Album search with SQL 2020-01-13 16:06:30 -05:00
Deluan d3af7e689d Implementing SearchSong using simple SELECTs. The performance hit is not relevant, makes things simpler 2020-01-13 16:06:30 -05:00
Deluan 52fc580a2b Expose mediafile.AbsolutePath to remove dependency of the persistence layer in the API layer 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 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 79701caca3 Removed Beego routing/controllers, converted to Chi.
Also introduced Wire for dependency injection
2020-01-09 22:44:45 -05:00
Deluan 100aca6a1e Disable flaky test (time-based) 2020-01-04 21:33:41 -05:00
Deluan c417a00e62 Renamed project to CloudSonic 2017-04-01 09:47:14 -04:00
Deluan 60bc1d7a11 Polishing 2016-04-21 10:44:27 -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 2dfa05ceb6 Fixed log message. 2016-03-29 13:54:08 -04:00
Deluan edcfd9dd61 Fine tuning skip range 2016-03-29 09:02:53 -04:00
Deluan 768764bea7 getRandomSongs.view (partially) implemented 2016-03-29 00:01:27 -04:00
Deluan 880521360f Cleaning up tests 2016-03-28 23:41:33 -04:00
Deluan 92682f65d8 Better logging 2016-03-28 19:14:21 -04:00
Deluan 1a705d4319 Fixing NowPlaying when we have more than one song in the queue 2016-03-28 19:11:49 -04:00
Deluan c8184da0ed Skipping now working(?) 2016-03-28 17:51:10 -04:00
Deluan 2319454997 search3.view implemented 2016-03-28 10:01:43 -04:00
Deluan 615dc862af getAlbum.view implemented 2016-03-28 09:23:44 -04:00
Deluan 94d76cb212 getArtist.view implemented 2016-03-27 21:27:45 -04:00
Deluan 3cc92a32bd Adding song and album counts 2016-03-27 20:13:00 -04:00
Deluan 83e0a7b24c Fixing some lint warnings 2016-03-26 22:43:13 -04:00
Deluan 9099e24413 Polishing 2016-03-26 22:34:20 -04:00
Deluan ee8e9864ea Added getSong.view 2016-03-25 00:04:22 -04:00
Deluan 06828d8738 Polishing 2016-03-24 23:31:54 -04:00
Deluan 1cf8a0db44 Refactored NowPlaying
Also added a test case for skipping range
2016-03-24 17:14:13 -04:00
Deluan 770a16ece3 Update 2016-03-24 14:08:19 -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 21460308c9 Adding paths to the responses 2016-03-23 20:53:28 -04:00
Deluan fc8bb34ae3 setRating.view implemented 2016-03-23 19:37:48 -04:00
Deluan d59394c653 GetStarred now returns starred songs 2016-03-23 19:02:58 -04:00
Deluan 1ed8c60130 Removing engine.ErrDataNotFound in favor of domain.ErrNotFound 2016-03-23 18:15:29 -04:00
Deluan c50b0bdc48 star/unstar implemented 2016-03-23 17:46:54 -04:00
Deluan b25cfd96eb Polishing 2016-03-23 16:30:38 -04:00
Deluan 08192e6d23 Handling a racing condition between Register and NowPlaying, when the queue is empty 2016-03-23 13:51:02 -04:00
Deluan c87b133071 Polishing 2016-03-23 12:37:03 -04:00
Deluan c580a4199e New NowPlaying and Skip detection implementation 2016-03-23 10:06:26 -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 4e3c848815 Adding track numbers to tracks in playlists, as it was causing DSub to duplicate files 2016-03-22 16:12:37 -04:00
Deluan 23cf069100 Using pointers for the receivers 2016-03-21 23:11:57 -04:00
Deluan 2a2af2f57a Adding Album total time (Duration) 2016-03-21 21:14:04 -04:00
Deluan 12b1002d51 More Album List types 2016-03-21 17:37:12 -04:00
Deluan a9d7d4d242 Even more metadata for playlists 2016-03-21 12:26:55 -04:00
Deluan 3cefc321b8 Playlists now have all metadata. Also removed some duplicated code 2016-03-21 11:57:04 -04:00
Deluan 516bd3bddf All ListGenerator's methods now returns Entries, and not Albums anymore 2016-03-21 11:37:56 -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 37f72f2efc More metadata for directories (albums) 2016-03-21 09:37:13 -04:00
Deluan 21b39d922c More slices instead of pointers of slice 2016-03-20 13:33:59 -04:00
Deluan 3f0030738a Indexes using slices instead of pointers of slice 2016-03-20 13:08:24 -04:00
Deluan 27b7b7ce08 More slices instead of pointers of slice 2016-03-19 23:03:50 -04:00
Deluan bd07c74acd Wrap ErrNotFound 2016-03-19 22:54:36 -04:00
Deluan 508bf7152f Removing purged ids from the search index 2016-03-18 19:50:21 -04:00
Deluan cac352b18c Using slices for Results, instead of pointers of slices 2016-03-18 17:30:38 -04:00
Deluan 1da0f7d412 Forgot to fix the response slices allocation... 2016-03-18 17:27:12 -04:00
Deluan aa6afdb976 Skip ids returned from search but not found in the DB 2016-03-18 17:21:15 -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 ee3e70c712 Register skipped songs! 2016-03-17 18:58:09 -04:00
Deluan ab7e70017a Raising the TTL for NowPlaying 2016-03-17 17:35:10 -04:00
Deluan c4b660fce3 getNowPlaying.view working 2016-03-17 10:37:19 -04:00
Deluan 68c456e188 Halfway of getNowPlaying implementation 2016-03-17 10:08:47 -04:00
Deluan cc89cb5bd1 Now Playing backend implemented 2016-03-16 22:30:34 -04:00
Deluan 9bfb61d994 Implemented nowplaying repo 2016-03-16 20:52:32 -04:00
Deluan f6866f23a0 Removed 'submit' parameter 2016-03-16 20:45:08 -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 714b100d03 Ignoring accents in search 2016-03-15 16:23:39 -04:00
Deluan 0ee070b38c Using Entries instead of []Entry 2016-03-14 11:42:33 -04:00
Deluan e36a4201db implemented getStarred (just for albums, for now) 2016-03-14 11:35:48 -04:00
Deluan 11e128e08f Fixed a bug when the size was higher then the total number of albums 2016-03-13 23:31:24 -04:00
Deluan ed2eb11c87 getAlbumList type=random was always returning ALL albums 2016-03-13 13:26:28 -04:00
Deluan 19de3e6a3c TODO 2016-03-13 13:03:28 -04:00
Deluan a918dc5a14 Searching is fully working 2016-03-11 10:03:33 -05:00
Deluan 3a3bd91324 Refactored object mapping 2016-03-11 09:10:40 -05:00
Deluan ef31d1aca0 Searching by artists, spike mode 2016-03-11 00:37:07 -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 5fc3b3ff11 Renamed error variable 2016-03-10 11:25:15 -05:00
Deluan 2437eed586 Removed unnecessary "else"s 2016-03-10 09:37:35 -05:00
Deluan de6bd1eb17 option to disable downsampling 2016-03-09 22:21:11 -05:00
Deluan 7a8d591ee1 Logging 2016-03-09 18:47:05 -05:00
Deluan 2214e4bd4f Playlists working 2016-03-09 18:28:11 -05:00
Deluan 7161325716 Initial wiring for getPlaylists endpoint 2016-03-09 10:09:15 -05:00
Deluan 4d1a4613d9 Moved Stream logic to engine layer 2016-03-09 09:12:26 -05:00
Deluan 6d64d35564 Moved coverart tests to engine 2016-03-09 09:07:06 -05:00
Deluan 371d0ea711 Added size parameter to getCoverArt.view endpoint 2016-03-08 23:38:51 -05:00
Deluan 00b4c44010 Refactored coverart logic to engine layer 2016-03-08 23:05:54 -05:00
Deluan 9bea04f330 Implemented getAlbumList with type=random 2016-03-08 21:54:32 -05:00
Deluan 60d4cb5d9f Converted all collections from repositories to *collections 2016-03-08 20:33:09 -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 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