Commit Graph

403 Commits

Author SHA1 Message Date
Deluan e81a9dd1b5 Add tracks to playlist 2020-05-16 18:35:34 -04:00
Deluan 8a709c489a Add playlist views 2020-05-16 18:35:34 -04:00
Deluan 5682d0e721 Remove tracks from Playlist's GetAll 2020-05-16 18:35:34 -04:00
Deluan 8f9601090c Add helper functions tests 2020-05-16 18:35:34 -04:00
Deluan aebee651ac Add nested resource `playlist/{id}/tracks` 2020-05-16 18:35:34 -04:00
Deluan a56e588c8e Create relation table for playlist tracks 2020-05-16 18:35:34 -04:00
Deluan 27de18f8c9 Fix typo 2020-05-16 18:35:34 -04:00
Deluan 4e613be960 Add playlists REST endpoint 2020-05-16 18:35:34 -04:00
Deluan f8362a4acb Fix staticcheck's SA1029 2020-05-13 16:49:55 -04:00
Deluan 5ce3135f00 Fix gosec's G601 2020-05-13 15:32:42 -04:00
Deluan 0d9361734f Import and display disc subtitles 2020-05-12 12:57:53 -04:00
Deluan 0d1e2a92f6 Make MediaFolder ID int32 2020-05-09 22:29:02 -04:00
Deluan 70047fe20e Add `songCount` column to Artist table 2020-05-08 10:05:48 -04:00
Deluan c585ca7131 Add `random` as a valid sort option for `song` resource 2020-05-05 16:17:09 -04:00
Deluan dbde5330bd Mark helper function as unexported 2020-05-01 09:17:21 -04:00
Deluan 5cd453afeb Fix all `errcheck` warnings 2020-04-26 15:07:36 -04:00
Deluan 03c3c192ed Fixing static checks about passing nil context 2020-04-26 15:07:36 -04:00
Deluan 8dcca76ec9 Fix various small sort issues 2020-04-24 17:37:28 -04:00
Deluan e6f798811d Generate Artist Index using the OrderArtistName 2020-04-24 15:02:20 -04:00
Deluan 69c19e946c Add sort tags and use them in search 2020-04-24 15:02:20 -04:00
Deluan 80c8d85cb9 Fine tune search functionality 2020-04-19 23:29:07 -04:00
Deluan 69dc4d97b3 Always fill album's min_year if max_year is filled 2020-04-17 21:44:34 -04:00
Deluan 4b1c76e307 Keep the order of the playlist when adding new songs. Also allow adding a song more than once 2020-04-11 21:24:15 -04:00
Deluan 9fb4f5ef52 Removed Playlist.GetWithTracks, not needed anymore 2020-04-11 19:05:51 -04:00
Deluan e232c5c561 Add `created` and `changed` fields to playlists responses 2020-04-11 18:58:43 -04:00
Deluan 5265d0234f Fix tests for Cover service 2020-04-09 12:13:54 -04:00
Deluan 43ce81af67 Add all individual artists from album in searchable full text field. Should fix #94 2020-04-08 23:54:54 -04:00
Deluan b8d1185f7f Remove duplicated words and extra spaces from full text searchable fields 2020-04-08 23:29:28 -04:00
Deluan 46f4f63212 feat: initial implementation of album lists 2020-03-29 00:01:08 -04:00
Deluan 777231ea79 feat: expose album, song and artist annotations in the RESTful API 2020-03-28 19:22:55 -04:00
Deluan 0e36ed35a3 fix: typo 2020-03-28 18:50:18 -04:00
Deluan 0ca849a61a feat: show year range in album view and match ranges in year filter. #118 2020-03-27 21:11:06 -04:00
Deluan 53e8a92fed feat: rename year to max_year and add min_year to album. #118 2020-03-27 21:11:06 -04:00
Deluan b03519b09c fix: configured transcodings not appearing in players view 2020-03-27 19:12:11 -04:00
Deluan dcb3b3b5d1 fix: various album_artists <-> artists mismatches 2020-03-26 09:08:53 -04:00
Deluan 5331732236 fix: remove sql injection 2020-03-25 20:40:18 -04:00
Deluan dc973ae670 refactor: remove unused code 2020-03-25 20:40:18 -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 20075ae68d refactor: extracted restful helpers into their own composable struct 2020-03-21 20:00:46 -04:00
Deluan f6e448c1ba refactor: removed unused code, unnecessary typecasts and fixed small warnings 2020-03-20 00:07:36 -04:00
Deluan 8401d85f78 feat: search in WebUI now is more flexible, searching in all relevant fields in the current view 2020-03-19 22:26:18 -04:00
Deluan 32fbf2e9eb refactor: drop search table, integrated full_text into main tables 2020-03-19 21:44:48 -04:00
Deluan 8cdd4e317d feat: allow restful filter customization per field 2020-03-19 21:09:57 -04:00
Deluan 97d95ea794 fix: group compilations together in the restful API. fix #93 2020-03-19 15:02:11 -04:00
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
Deluan 0e20910061 Cleaning old data from artists indexes 2016-03-26 22:29:26 -04:00
Deluan f29ac99b45 Trying to fix build 2016-03-25 02:14:38 -04:00
Deluan 1cf8a0db44 Refactored NowPlaying
Also added a test case for skipping range
2016-03-24 17:14:13 -04:00
Deluan d59394c653 GetStarred now returns starred songs 2016-03-23 19:02:58 -04:00
Deluan b25cfd96eb Polishing 2016-03-23 16:30:38 -04:00