Commit Graph

185 Commits

Author SHA1 Message Date
Deluan 5001518260 Move user properties (like session keys) to their own table 2021-06-23 17:49:32 -04:00
Deluan 99be8444d3 Disable completely external scrobblers if feature is disabled (`DevEnableScrobble`) 2021-06-23 11:01:58 -04:00
Deluan 056f0b944f Refactor: Consolidate scrobbling logic in play_tracker 2021-06-23 11:01:58 -04:00
Deluan 76acd7da89 Don't send scrobbles/nowPlaying updates to Last.fm if user has not authorized 2021-06-23 11:01:58 -04:00
Deluan 8af7dab23d Fix wrong warning about ignored NowPlaying 2021-06-23 11:01:58 -04:00
Deluan a7509c9ff7 Send NowPlaying and Scrobbles to Last.fm 2021-06-23 11:01:58 -04:00
Deluan d5461d0ae9 Refactor Agents to be singleton
Initial work for Last.fm scrobbler
2021-06-23 11:01:58 -04:00
Steve Richter f9fa9667a3 Show user-friendly message when error occurs in Last.fm callback endpoint 2021-06-23 11:01:58 -04:00
Steve Richter 5fbfd9c81e Implement Last.fm account linking UI 2021-06-23 11:01:58 -04:00
Deluan 743e469795 Use singleton in other places as well 2021-06-21 18:59:26 -04:00
Deluan 1f997357a9 Expose Last.fm's ApiKey to UI 2021-06-21 18:14:01 -04:00
Deluan 143cde37e5 Implement Last.FM Web authentication flow 2021-06-21 18:14:01 -04:00
Deluan 502a719e96 Implement Last.FM Desktop Auth flow endpoints 2021-06-21 18:14:01 -04:00
Deluan 0495e421fe Fix Last.fm API method signature 2021-06-21 18:14:01 -04:00
Deluan a4f91b74d2 Add Last.FM Authentication methods 2021-06-21 18:14:01 -04:00
Deluan 80b2c2f3cf Try to register all playing music in GetNowPlaying 2021-06-20 11:25:15 -04:00
Deluan 97434c1789 Fix GetNowPlaying endpoint showing only the last play 2021-06-20 10:39:19 -04:00
Deluan f8ee6db72a New implementation of NowPlaying 2021-06-20 10:39:16 -04:00
Deluan bed2f017af Fix index of songs in downloaded playlist 2021-06-12 23:02:34 -04:00
Deluan b445cdd641 Use a dedicated api-key/secret pair for Last.FM 2021-06-10 15:07:06 -04:00
Deluan f9eec5e4dc Refactored agents calling into its own struct 2021-06-08 17:00:02 -04:00
Deluan 6c1ba8f0d0 Add tests to `core.Share` 2021-06-08 16:32:08 -04:00
Deluan 110e17b004 Make MockRepo names more consistent 2021-06-08 16:30:19 -04:00
Yash Jipkate af210c8903
Add Native Sharing REST API (#1150)
* Initial draft - UNTESTED

* changes to Save() and Update()

* apply col filter and limit nanoid

* remove columns to not update
2021-06-08 15:44:30 -04:00
Deluan e80cf80d05 Move all Spotify and LastFM code into only one folder for each 2021-06-08 11:25:46 -04:00
Deluan c5abdc19bc Fix recursive bug in Last.FM calls without mbid 2021-05-30 22:46:23 -04:00
Deluan 7bbb09e546 Add tests for WeightedRandomChooser 2021-05-28 23:51:56 -04:00
Deluan dd56a7798e Rename variable with conflicting name 2021-05-28 23:00:39 -04:00
Deluan a38e478a47 Better SimilarSongs algorithm 2021-05-28 22:55:34 -04:00
Deluan 01f3ce0228 Add a timeout to background task 2021-05-28 11:37:53 -04:00
Deluan 48b6fa7feb Don't use request's context when refreshing artist info in background 2021-05-28 09:34:15 -04:00
Deluan ed01946ace Embed Last.FM error responses, making the tests faster 2021-05-27 21:04:03 -04:00
Deluan Quintão 89b12b34be
Retry calls to Last.FM without MBIDs when if returns artist invalid (#1138)
* Call Last.FM's getInfo again without mbid when artist is not found

* Call Last.FM's getSimilar again without mbid when artist is not found

* Call Last.FM's getTopTracks again without mbid when artist is not found
2021-05-27 20:53:24 -04:00
Deluan 4e0177ee53 Always update artist info, even if info is fresh 2021-05-27 20:32:26 -04:00
Deluan b398053223 Include a shared Last.FM api key, providing zero conf ArtistInfo (bio/top songs/similar artists) 2021-05-27 16:14:24 -04:00
Deluan 22ce5b6282 Removed unnecessary code 2021-05-11 18:55:58 -04:00
Deluan 7d96167abc Upgrade to go-chi 5 2021-05-11 17:21:18 -04:00
Deluan bc62efb059 More auth tests 2021-04-30 10:00:03 -04:00
Deluan bcda53f115 Less waiting for cache to be ready 2021-04-29 13:58:01 -04:00
Deluan a35de2bfd1 Allow regular users to change their info, including password.
Should fix #199
2021-04-28 22:35:25 -04:00
Deluan Quintão 2d528bbc87
Remove dependency of go-bindata (#818)
* Use new embed functionality for serving UI assets

* Use new embed functionality for serving resources. Remove dependency on go-bindata

* Remove Go 1.15
2021-03-12 11:06:51 -05:00
Deluan 157faad028 Rename ExternalInfo to ExternalMetadata 2021-02-09 15:33:33 -05:00
Deluan 5fdd8b32d7 Move utilitarian/generic packages to utils: lastfm, spotify, gravatar, cache, and pool 2021-02-09 15:33:33 -05:00
Deluan b855fe865e Add artist ID to agent's interfaces 2021-02-09 11:19:32 -05:00
Deluan 7cc026ac35 Add some info about how to create new agents 2021-02-08 17:18:43 -05:00
Deluan fefbe0b117 Cleanup, add Placeholder agent 2021-02-08 16:54:51 -05:00
Deluan e5cbfac483 Implement TopSongs 2021-02-08 16:54:51 -05:00
Deluan e1cb52689e Implement SimilarSongs 2021-02-08 16:54:51 -05:00
Deluan 84a50d5dce Use MBID in calls to Last.FM, if it is available 2021-02-08 16:54:51 -05:00
Deluan 6c1fc5f836 Clean names before calling agents 2021-02-08 16:54:51 -05:00
Deluan a76a52e99a Get MBID first, if it is not yet available 2021-02-08 16:54:51 -05:00
Deluan 52a407b84b Clean up, comments and logs 2021-02-08 16:54:51 -05:00
Deluan 365dff6435 Fix lint errors 2021-02-08 16:54:51 -05:00
Deluan 877cdf1d5c Get images 2021-02-08 16:54:51 -05:00
Deluan 28cdf1e693 Add a cached http client 2021-02-08 16:54:51 -05:00
Deluan 9d24106066 Incomplete implementation of agents 2021-02-08 16:54:51 -05:00
Deluan 6ee45a9ccc Move project to Navidrome GitHub organization 2021-02-06 21:46:35 -05:00
Deluan 2f4a5fd9ae Fix test suite name 2021-02-04 15:44:44 -05:00
Deluan 861b406575 Use new simplified `uuid.NewString()` syntax 2021-02-01 01:22:31 -05:00
Deluan 069199b2d8 Removed invalid comment 2021-01-03 18:16:37 -05:00
Deluan 29817db9f2 Simplify worker pool 2020-12-15 20:48:06 -05:00
Deluan 25ae1c6cdd Return album art as a Reader 2020-12-02 09:13:36 -05:00
Deluan 0aaa261a71 Don't show warning about image cache disabled if pre-cache warmer is disabled 2020-12-02 08:52:35 -05:00
Zane van Iperen 763a3ef267 Fix startup failure when image cache is disabled.
Fixes #655
2020-11-22 17:03:09 -05:00
Jason Walton 69b2fe92f5 Fix aspect ratio for non-square album art. 2020-11-22 15:03:41 -05:00
Deluan 3c4903bc4e No need to create a new instance of the Artwork service 2020-11-17 12:16:13 -05:00
Deluan 088af9004a Only try to check cover art file for lastUpdated if fast access is not set 2020-11-16 16:39:31 -05:00
Deluan 9d7995fd4d Redesign UserMenu, now with support for Gravatar 2020-11-13 00:40:30 -05:00
Deluan 9d2426a601 Use a better notation for exporting JS components and functions 2020-11-10 19:27:28 -05:00
Deluan 8d7931b3bc Fix "seekable" log message (was always "false") 2020-11-05 18:11:12 -05:00
Deluan a6bd9f627e Make new cache layout the default 2020-11-04 23:25:38 -05:00
Deluan 2f56f1b178 Use new fscache's SetKeyMapper
See a0daa9e527
2020-11-03 12:52:44 -05:00
Deluan cfad35544b Add artistImageUrl available in getArtists endpoint
Also cache artist info in the DB for 1 hour
2020-11-01 14:37:29 -05:00
Deluan 6c0778a867 Add log to pool 2020-10-31 01:13:36 -04:00
Deluan 58d6b0a84f Cache Warmer now waits for Cache to be available 2020-10-31 00:40:21 -04:00
Deluan ba8d2f5da8 Log when a cache has finished loading 2020-10-30 00:33:39 -04:00
Deluan f1a24b971a Use timestamp of artwork file instead of album's UpdatedAt in the cache key 2020-10-29 23:19:26 -04:00
Deluan d913108de2 Add option to disable track cover art. Should help with cloud mounting (rclone) 2020-10-29 10:57:33 -04:00
Deluan 1e57852eff Make pool's queue buffered. Workaround while we don't put the queue in disk 2020-10-27 20:12:27 -04:00
Deluan 9b756faef5 Make caches singletons 2020-10-27 18:20:50 -04:00
Deluan 515528ee6d Disable flaky test 2020-10-27 16:07:53 -04:00
Deluan 216491815c Increased pool test timeout (hate time based tests...) 2020-10-27 15:58:13 -04:00
Deluan 0f418a93cd Completely removed engine package, fewer abstraction layers \o/ 2020-10-27 15:27:37 -04:00
Deluan d0bf37a8a9 Move mock datastore to tests package 2020-10-27 15:23:49 -04:00
Deluan 313a088f86 Make mocks strongly typed 2020-10-27 15:23:49 -04:00
Deluan 6152fadd92 Removed list_generator completely 2020-10-27 15:23:48 -04:00
Deluan acba4b16ee Add test for pool 2020-10-27 15:23:48 -04:00
Deluan c1fb32cedb Replace unicode quotes and dash with simple ascii chars
External services do not use these unicode chars. Ex:
- “Weird Al” Yankovic
- Bachman–Turner Overdrive
- The Go‐Go’s
are not found in Last.FM and Spotify
2020-10-27 00:13:39 -04:00
Deluan 95cc211659 Revert "Make caches singletons" 2020-10-26 10:11:47 -04:00
Deluan bf5318d776 Add flag to enable new cache layout 2020-10-26 09:54:36 -04:00
Deluan 81d7556cdf Make caches singletons 2020-10-25 23:22:52 -04:00
Deluan 1e56f4da76 Add simple cache warmer, disabled by default 2020-10-25 23:22:52 -04:00
Deluan 197d4024f7 Add dedicated Item interface for cache items 2020-10-25 23:22:52 -04:00
Deluan 7eaa42797a Uses cached original image when requesting a resized image 2020-10-25 23:22:52 -04:00
Deluan d39bd0219a Fix cache key-mapping 2020-10-25 23:22:52 -04:00
Deluan 9f533b2108 New Cache FileSystem implementation 2020-10-25 23:22:52 -04:00
Deluan 6d08a9446d Fix test suite name 2020-10-23 21:43:33 -04:00
Deluan 1cd2f015c2 Get Similar Artists in parallel
Also don't fail `GetArtistInfo` when Last.FM is not configured
2020-10-21 21:44:03 -04:00
Deluan 69e1059705 Prefer starred and high rated versions for Top Songs 2020-10-21 15:11:26 -04:00
Deluan 075c28d2e5 Fix performance and precision of TopSongs 2020-10-21 14:07:01 -04:00