Commit Graph

507 Commits

Author SHA1 Message Date
Deluan 17df63b550 Fix `child.size` and `directory.playCount` compatibility with Subsonic API. Fixes #304 2020-05-19 23:51:23 -04:00
Deluan c2d1e9df9f Remove orphan tracks from playlists after they are removed from library 2020-05-18 20:32:01 -04:00
Deluan d1a0ffaaee Check permissions in playlists 2020-05-16 23:14:28 -04:00
Deluan 12cf2f1104 Remove tracks from playlist 2020-05-16 18:35:34 -04:00
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
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 d57f51c7ac Removed unused code 2016-03-23 12:00:19 -04:00
Deluan 0e1618a6ac Using PersistentIDs instead of "Database" IDs 2016-03-23 11:43:20 -04:00
Deluan 638f328330 fixed a NPD (Nil Pointer Dereference) 2016-03-23 11:26:27 -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 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 04513d38f0 Fixed bug on reflect and slice 2016-03-18 21:07:57 -04:00
Deluan 508bf7152f Removing purged ids from the search index 2016-03-18 19:50:21 -04:00
Deluan 3790aa45e4 Refactored PurgeInactive as a "generic" function.
Also delete indexes when removing records
2016-03-18 19:32:49 -04:00
Deluan 25d902c9d7 When ErroNotFound, return an new entity to avoid conversion from nil errors 2016-03-18 17:24:26 -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 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 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 cad65f517c Polishing 2016-03-15 13:17:51 -04:00
Deluan 12aedc0996 Using checksums to detect modified stats in the iTunes Library 2016-03-15 11:04:17 -04:00
Deluan bb5d4c920d Error when trying to index on an unsupported field type 2016-03-15 09:41:33 -04:00
Deluan e36a4201db implemented getStarred (just for albums, for now) 2016-03-14 11:35:48 -04:00
Deluan 14934dccf7 Supporting index annotations in domain structs 2016-03-14 10:32:22 -04:00
Deluan df957814a0 Implemented artists indexing, with Gomate 2016-03-10 23:19:13 -05:00
Deluan 7161325716 Initial wiring for getPlaylists endpoint 2016-03-09 10:09:15 -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 8607e25c90 Moved properties to engine layer 2016-03-08 18:40:16 -05:00
Deluan 46e7627fd3 Optimized import, only updating changed data and purging old data 2016-03-08 14:19:07 -05:00
Deluan d2701ea67c Using sorted sets 2016-03-05 19:40:36 -05:00
Deluan 766fdbc60c Big Importer/Scanner refactor 2016-03-04 16:42:09 -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 87e012f3bf Refactored paging/sorting options 2016-03-03 22:52:03 -05:00
Deluan 5ca9680059 Default sorts should be in the domain 2016-03-03 21:42:12 -05:00
Deluan fc6d49d34c Introduced types for the collections 2016-03-03 21:01:55 -05:00
Deluan eae9f3168f renamed base_repository to ledis_repository 2016-03-03 20:16:09 -05:00
Deluan c9455e1955 getCoverArt.view working 2016-03-03 12:08:44 -05:00
Deluan ad0a91fba5 Making sure the repositories implement their full interfaces 2016-03-03 01:28:48 -05:00
Deluan 012958cd08 go fmt 2016-03-03 00:46:23 -05:00
Deluan ffd6304a23 Added DiscNumber field, used to sort tracks 2016-03-03 00:42:42 -05:00
Deluan 1f31de589a Implementing sort by number on queries 2016-03-02 23:20: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 de94fe3ef2 Should not break on empty database 2016-03-02 17:46:16 -05:00
Deluan 4843ccb46c go fmt 2016-03-02 13:18:39 -05:00
Deluan 300ed0d9a4 Introduced interfaces for all repositories, completely isolating the persistence layer from the repositories usage and specification 2016-03-02 09:43:00 -05:00
Deluan 272a499c7e Refactoring to a cleaner architecture 2016-03-02 09:10:28 -05:00