Commit Graph

308 Commits

Author SHA1 Message Date
Deluan 811703ab60 fix: create default transcodings on existing installations 2020-03-17 16:49:37 -04:00
Deluan 68a49befc8 feat: allow regular users to change their players' configuration 2020-03-17 15:20:35 -04:00
Deluan c8b0d2bfae feat: select correct transcoding for streaming 2020-03-17 15:20:35 -04:00
Deluan 39993810b3 feat: add `transcodedSuffix` to Subsonic API responses 2020-03-17 15:20:35 -04:00
Deluan 8ec78900c5 feat: transcoding and player datastores and configuration 2020-03-17 15:20:35 -04:00
Deluan 9235ab6414 fix: index albumArtist as part of the album searchable fields 2020-03-07 13:10:20 -05:00
Deluan 6f5a322927 fix: login must be case-insensitive 2020-03-01 15:45:41 -05:00
Deluan a7f8e4ee2b fix: only set created_at when adding data to DB 2020-02-28 18:43:22 -05:00
Deluan 0850872b0f fix: ormer.Driver() is not available when creating orms with NewOrmWithDB() 2020-02-28 16:09:27 -05:00
Deluan faa2a978c0 refactor: use only one DB instance for the whole application 2020-02-28 15:06:31 -05:00
Deluan 65a792be3a fix: handle nil pointer dereference 2020-02-28 11:02:38 -05:00
Deluan 33ede13eef fix: check if album is starred before adding the starred date in the response. also return "starred" in search responses 2020-02-24 22:06:12 -05:00
Deluan d2eea64528 fix: typo 2020-02-23 21:41:10 -05:00
Deluan fc14e346b9 feat: store duration as float, to cater for milliseconds 2020-02-20 17:02:06 -05:00
Deluan 8a31e80b7a fix: find songs and albums when sending an artist name search query 2020-02-09 19:52:06 -05:00
Deluan 5a95feeedc fix: allow searches with 2 chars. closes #65 2020-02-09 12:20:34 -05:00
Deluan 029290f304 fix: set default play_count to 0
IncPlayCount was not incrementing when the annotation already existed with play_count = null
2020-02-08 22:55:05 -05:00
Deluan 7aab82c246 feat: enable overriding sql sorting 2020-02-06 18:41:34 -05:00
Deluan 6978790e96 feat: allow regular users to login to the UI 2020-02-05 22:22:44 -05:00
Deluan e0308acef3 feat: add lapsed time to SQL logger, to help detect SQL bottlenecks 2020-02-05 08:47:32 -05:00
Deluan 464880dd31 refactor: use stdlib `filepath.FromSlash` 2020-02-03 17:53:59 -05:00
Deluan ff8c18e0f4 fix: don't log empty sql responses as errors 2020-02-02 21:29:27 -05:00
Deluan d4365b9f64 refactor: read musicFolderId from request (but still don't use it) 2020-02-01 17:23:03 -05:00
Deluan b62b78edfe refactor: better SQL logging 2020-02-01 17:23:03 -05:00
Deluan 7c4511e33a refactor: consolidate query executions into two functions `queryOne` and `queryAll` 2020-02-01 17:23:03 -05:00
Deluan 7e65bb8f20 refactor: better integration between `db` and `persistence` packages
Will address support for different DBs in the future (+1 squashed commit)
Squashed commits:
[a014757] refactor: better integration between `db` and `persistence` packages
2020-02-01 17:23:03 -05:00
Deluan a6b8f40ac3 refactor: remove prefix New from SQLStore 2020-02-01 17:23:03 -05:00
Deluan 0d0787e656 refactor:clean annotations in GC 2020-02-01 17:23:03 -05:00
Deluan 88e01d05f6 refactor: annotations 2020-02-01 17:23:03 -05:00
Deluan de1fea64bc refactor: introduce GC, to delete old data 2020-02-01 17:23:03 -05:00
Deluan 5d1df19291 fix: manually set timestamps, as we don't rely on the ORM anymore 2020-02-01 17:23:03 -05:00
Deluan 0b91d8a30e refactor: more SQL logs 2020-02-01 17:23:03 -05:00
Deluan cdbbb2f596 fix: Find/DeleteByPath 2020-02-01 17:23:03 -05:00
Deluan 44671c59c0 refactor: fix rest filter 2020-02-01 17:23:03 -05:00
Deluan d9f61a278c refactor: some clean-up 2020-02-01 17:23:03 -05:00
Deluan a260e65307 refactor: add GetStarred to artists 2020-02-01 17:23:03 -05:00
Deluan 5a4c763510 refactor: add search back to albums and artists 2020-02-01 17:23:03 -05:00
Deluan d755609d13 refactor: add search back to mediafiles 2020-02-01 17:23:03 -05:00
Deluan 4f4af34595 fix: DB pagination 2020-02-01 17:23:03 -05:00
Deluan f5071d1614 refactor: adding back artist and album tables 2020-02-01 17:23:03 -05:00
Deluan d389d40db1 feat: improve logs, remove config for disable authentication 2020-02-01 17:23:03 -05:00
Deluan 72d9ddf532 refactor: remove annotation handling from engine 2020-02-01 17:23:03 -05:00
Deluan 67ed830a68 refactor: add filters 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 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 f9db80c409 feat: add conf for data folder, default current folder (not ./data anymore) 2020-01-26 16:42:56 -05:00
Deluan 58a7879ba8 feat: first time admin user creation through the ui 2020-01-25 17:10:16 -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 ed31b6fa31 Remove unused code 2020-01-22 15:42:29 -05:00
Deluan 1f58bf47d6 Fix GetStarred for all item types 2020-01-22 15:19:37 -05:00
Deluan 7dc3f49c1c Initial support for artist browsing from UI. Also add linking between resources 2020-01-22 13:02:19 -05:00
Deluan ea30b4c2d9 Initial support for album browsing from UI 2020-01-22 12:32:31 -05:00
Deluan 9557f7ceed Initial support for song browsing from UI 2020-01-22 10:47:43 -05:00
Deluan c73f549c83 Don't try to get albums if ids is empty 2020-01-22 01:03:49 -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 d4adc784cc Return playlist duration in getPlayList 2020-01-21 18:10:29 -05:00
Deluan dce2a1399d Rename for clarity 2020-01-21 17:50:56 -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 6cd758faa0 Removed empty clause 2020-01-21 08:48:14 -05:00
Deluan c6ed0d5377 Remove flag to allow override media annotation 2020-01-20 18:19:16 -05:00
Deluan 99c28731d4 Authenticate Subsonic API calls using the DB 2020-01-20 13:42:43 -05:00
Deluan e717d99780 Authenticate UI 2020-01-20 10:25:35 -05:00
Deluan 6785d616d0 Remove unused PurgeInactive methods 2020-01-20 08:16:22 -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 2ab0cecd48 Complete User CRUD 2020-01-19 21:46:36 -05:00
Deluan 1c04a19910 Add UserList in UI 2020-01-19 20:40:18 -05:00
Deluan 5bc1551b09 Clean up 2020-01-19 18:28:23 -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 40186f7e10 Don't say "iTunes Library" if not importing from iTunes 2020-01-18 22:57:20 -05:00
Deluan fe058aa4a1 Don't override media annotations when scanning/importing 2020-01-18 21:45:44 -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 8ae4fdd5b2 Fix Windows test 2020-01-18 02:15:02 -05:00
Deluan ccbdf688ea Reduced size of batches, to not break SQLite 2020-01-18 01:49:08 -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 5dbe71d675 Update search index when refreshing albums/artists 2020-01-17 21:16:23 -05:00
Deluan cef65b6ab0 Un-export model mappers 2020-01-17 21:03:54 -05:00
Deluan c0beaa6377 Integrate ArtistIndex logic into Artist 2020-01-17 20:54:28 -05:00
Deluan 035fdaeb96 Remove old tags from models 2020-01-17 20:54:28 -05:00
Deluan 123f543a94 New Folder Scanner - WIP 2020-01-17 20:54:28 -05:00
Deluan 7a16d41abe Add MediaFile.FindByPath 2020-01-17 20:54:28 -05:00
Deluan 36d93774bc Add GetGenre endpoint 2020-01-15 17:56:02 -05:00
Deluan bc33ace6d6 Merged helper and initialization functions in one file 2020-01-15 11:11:33 -05:00
Deluan 16c550a9d1 Change semantics of ChecksumRepository 2020-01-15 08:54:00 -05:00
Deluan c404252b7f Remove sort.Interface from models (not used anymore) 2020-01-15 08:36:25 -05:00
Deluan 0ea2bd79d9 Rename `domain` to `model` 2020-01-14 22:22:34 -05:00
Deluan 25686c1742 Preparing for new scanner 2020-01-14 21:51:35 -05:00
Deluan 9922ba5994 Added initial support for PostgreSQL 2020-01-14 19:20:47 -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 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 c2448d3880 Using squirrel to generalize SQL search 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 0629be5800 Removed Storm persistence. Too slow and SQL implementation is actually more versatile 2020-01-13 10:49:36 -05:00
Deluan 66e9377795 Fix delete all from checksum hanging 2020-01-13 10:44:16 -05:00
Deluan 4b08df0725 Run SQL tests in memory 2020-01-13 10:44:16 -05:00
Deluan 87ca885b5e Optimize Checksums saving 2020-01-13 10:44:16 -05:00
Deluan b07642a8d1 Add a TODO 2020-01-13 10:44:16 -05:00
Deluan fddd0dc353 Fix some performance/volume issues 2020-01-13 10:44:16 -05:00
Deluan 973f8869eb SQL/Orm PlaylistRepository complete 2020-01-13 10:44:16 -05:00
Deluan 5d519dcecf SQL/Orm PropertyRepository complete 2020-01-13 10:44:16 -05:00
Deluan 3d706e3e98 SQL/Orm ArtistIndexRepository complete 2020-01-13 10:44:16 -05:00
Deluan 78fd567285 SQL/Orm CheckSumRepository complete 2020-01-13 10:44:16 -05:00
Deluan b9815fc653 SQL/Orm AlbumRepository complete 2020-01-13 10:44:16 -05:00
Deluan 56273dd4d9 SQL/Orm MediaFileRepository complete 2020-01-13 10:44:16 -05:00
Deluan d70af2c39d SQL/Orm ArtistRepository complete 2020-01-13 10:44:16 -05:00
Deluan dd5945ad86 Make sure mock implementations implements their full interface 2020-01-11 21:52:39 -05:00
Deluan cb107f77f8 Make QueryOptions optional in PlaylistRepository.GetStarred 2020-01-11 21:38:02 -05:00
Deluan 4643628e28 Make QueryOptions optional in MediaFileRepository.GetStarred 2020-01-11 21:33:41 -05:00
Deluan b85898df93 Make QueryOptions optional in AlbumRepository.GetStarred 2020-01-11 21:30:24 -05:00
Deluan d4ed6a0569 Make QueryOptions optional in AlbumRepository.GetAll 2020-01-11 21:25:37 -05:00
Deluan 6c05930444 Change tests' db path to a temp folder 2020-01-11 16:48:45 -05:00
Deluan 4b1c909a4d Make persistence provider pluggable at runtime 2020-01-11 15:27:32 -05:00
Deluan 93ab4132fe Move mapping functions to db_ledis, where it is used 2020-01-11 15:27:32 -05:00
Deluan ce1c5e1129 Remove compulsory reindex at startup 2020-01-11 15:27:32 -05:00
Deluan 0c4cbe11be Fix flake test (was dependent on map keys order) 2020-01-11 15:27:32 -05:00
Deluan 10221b5471 Force dbPath to be relative to main executable 2020-01-11 15:27:32 -05:00
Deluan c9742181ff Save Storm DB in the DbPath configured 2020-01-11 15:27:32 -05:00
Deluan cead8906d6 Implements NowPlayingRepository as an in-memory only struct 2020-01-11 15:27:32 -05:00
Deluan c9be5f7201 Storm ChecksumsRepository complete. 2020-01-11 15:27:32 -05:00
Deluan 4f151a7409 Storm PlaylistRepository complete. 2020-01-11 15:27:32 -05:00
Deluan 70d7793147 Moved MediaFolders Repository to persistence agnostic package 2020-01-11 15:27:32 -05:00
Deluan 11f4505925 Renamed persistence packages 2020-01-11 15:27:32 -05:00
Deluan a1d837cb9b Storm IndexRepository complete. 2020-01-11 15:27:32 -05:00
Deluan 9ccd9545e8 Refactored purgeInactive, better test suite setup 2020-01-11 15:27:32 -05:00
Deluan ef79f6342f Removed old runtime tagging code. Not used anymore 2020-01-11 15:27:32 -05:00
Deluan dbeba1dea9 Storm MediaFileRepository complete. 2020-01-11 15:27:32 -05:00
Deluan c608e917db Storm AlbumRepository complete. 2020-01-11 15:27:32 -05:00
Deluan 0ca691b37f Storm ArtistRepository and PropertyRepository complete. 2020-01-11 15:27:32 -05:00
Deluan aebb960831 New storm artist repository, WIP 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 018352463f Moved ledis implementation to a new package 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 29519fe22f Fixes typo 2017-04-01 09:55:21 -04: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 c2b1f9782b New configuration system 2016-03-30 00:05:57 -04:00
Deluan 768764bea7 getRandomSongs.view (partially) implemented 2016-03-29 00:01:27 -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 83e0a7b24c Fixing some lint warnings 2016-03-26 22:43:13 -04:00