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
Deluan
a45b5a037f
Match Top Songs by mbid, add indexes to media_file
2020-10-21 10:13:03 -04:00
Deluan
b93a3db267
Fix sort order for TopSongs
2020-10-21 00:10:46 -04:00
Deluan
53c1e9ec35
Include tracks in TopSongs where the requested artist is the album artist
2020-10-20 23:52:45 -04:00
Deluan
12cedee867
Prefer older versions on GetTopSongs
2020-10-20 23:46:45 -04:00
Deluan
049ac70b2b
Add "real" TopSongs
2020-10-20 22:53:52 -04:00
Deluan
64ccb4d188
Add SimilarSongs functionality
2020-10-20 16:07:31 -04:00
Deluan
a289a1945f
Remove redundant interfaces
2020-10-20 16:07:31 -04:00
Deluan
a257891b46
Get better artist images results
2020-10-20 16:07:31 -04:00
Deluan
e9e09a7480
Add dedicated SimilarArtists call
2020-10-20 16:07:31 -04:00
Deluan
29d8950e5b
Better ArtistInfo field names
2020-10-20 16:07:31 -04:00
Deluan
00b6f895bb
Fix lint errors
2020-10-20 16:07:31 -04:00
Deluan
07d96f8308
Add missing fields to ArtistInfo
2020-10-20 16:07:31 -04:00
Deluan
07535e1518
Add ExternalInformation core service (not a great name, I know)
2020-10-20 16:07:31 -04:00
Deluan
19ead8f7e8
Add initial spotify client implementation
2020-10-20 16:07:31 -04:00
Deluan
eb74dad7cd
Add initial last.fm client implementation
2020-10-20 16:07:31 -04:00
Deluan
fea5d23fc7
Add `ffmpeg` detection at start-up
2020-10-06 17:24:16 -04:00
Deluan
8fa5544af7
Add option to download playlist
2020-08-21 13:28:20 -04:00
Deluan
6c8535c54a
Add support for reading webp artwork
2020-08-21 11:33:23 -04:00
Deluan
16397e08fc
Close cache reader. Should fix #446
2020-08-17 09:14:08 -04:00
Deluan
d72468003f
User album or artist name as zip name in `download` endpoint
2020-08-14 12:10:37 -04:00
Deluan
0e16d7cfbb
Fix regression: Show artwork in Music Stash when browsing by folder
2020-08-14 12:10:37 -04:00
Deluan
9a1133601a
Store uncompressed files in zip
2020-08-04 13:38:32 -04:00
Deluan
2c370cae28
Support downloading full album and artist discography through Subsonic API
2020-08-04 12:39:13 -04:00
Deluan
2b59d4b87a
Rename 'Cover' to the more generic term 'Artwork'
2020-07-31 11:38:56 -04:00
Deluan
d877928f11
Add UpdatedAt to transcoding cache key
2020-07-28 17:16:01 -04:00
Deluan
0403ec2a07
Use OS-independent path separators
2020-07-28 08:49:07 -04:00
Deluan
67da83c84d
Use a RWMutex instead of an AtomicBool, to reduce contention
2020-07-26 00:45:33 -04:00
Deluan
f8f16d676d
Fix Cached flag
2020-07-24 18:48:28 -04:00
Deluan
58b816c2ed
Show `cached` in info log
2020-07-24 18:43:03 -04:00
Deluan
9b1d5c196f
Load cache asynchronously
2020-07-24 16:54:04 -04:00
Deluan
9f4f2f7381
Use new FileCache in cover service
2020-07-24 13:30:27 -04:00
Deluan
433e31acc8
Refactor FileCache, allow disabling Trasncoding cache
2020-07-24 12:42:11 -04:00
Deluan
1bee98af52
Increase streamer test timeout
2020-07-21 20:43:59 -04:00
Deluan
9e35534dad
Fix lint errors
...
New environment, forgot to setup it properly...
2020-07-10 13:11:02 -04:00
Deluan
5620c58a30
Started the big refactor to extract common logic from `engine` package (Subsonic only) to `core` package (more generic)
2020-07-10 12:53:11 -04:00