Commit Graph

56 Commits

Author SHA1 Message Date
Henrik Friedrichsen
ed1dc2e22e implement saving selected tracks directly to playlists
closes #103
2019-11-02 23:19:12 +01:00
Henrik Friedrichsen
dc427e3ba2 formatting + clippy cleanups 2019-10-31 12:30:25 +01:00
Henrik Friedrichsen
4defded546 fix slicing of playlists when saving large lists
playlist updates need to be submitted in batches of max 100 previously, it would
submit the entire rest after submitting the first 100 via
user_playlist_replace_tracks, which was rejected by the server.

fixes #99
2019-10-12 19:28:18 +02:00
Henrik Friedrichsen
d01dad9a57 use spotify user id from librespot session for web api requests
fixes broken web api requests for users who logged in with their email address

fixes #98
2019-10-12 16:15:53 +02:00
Henrik Friedrichsen
82a199b5d2 update rspotify to 0.7.0 2019-10-12 16:15:07 +02:00
Henrik Friedrichsen
7aa70fcb6b fix deprecation warnings caused by old trait object syntax 2019-09-01 01:32:50 +02:00
Henrik Friedrichsen
cd80ace4a8 remove debug log spamming + log player events 2019-09-01 01:10:19 +02:00
KoffeinFlummi
eed3edfa59 Differentiate between followed and created playlists
Fix #56
2019-04-28 11:04:51 +02:00
Henrik Friedrichsen
eb2e8322e5 Merge remote-tracking branch 'origin/feature/new_rspotify' into develop 2019-04-24 21:01:15 +02:00
Henrik Friedrichsen
18c2f6466a fix most of the clippy linter warnings 2019-04-23 22:28:05 +02:00
KoffeinFlummi
eed218d0c3 Implement browsing for albums, artists, playlists 2019-04-23 01:40:00 +02:00
KoffeinFlummi
1a17860957 cargo fmt 2019-04-20 00:11:43 +02:00
KoffeinFlummi
f320b953d6 Implement following playlists 2019-04-19 23:50:36 +02:00
KoffeinFlummi
1e58ca9345 Implement (un)saving tracks, albums; (un)following artists 2019-04-18 15:43:51 +02:00
Henrik Friedrichsen
0de6ad2dfe adapt to new rspotify structures
these changes are necessary to handle playlists with local tracks properly
2019-04-17 18:25:00 +02:00
KoffeinFlummi
210c7d9f4e Implement saved tracks, albums, and artists 2019-04-16 19:52:22 +02:00
Henrik Friedrichsen
0bbba3c57d remove clippy from CI for now, as it's too strict 2019-04-15 22:07:54 +02:00
Henrik Friedrichsen
8738472e87 test login credentials before entering main program
closes #58

this is a bit messy, as librespot panics, when authentication fails. thus, we
test the credentials in a separate thread to handle the panic.

see also: https://github.com/librespot-org/librespot/issues/108
2019-04-15 21:59:19 +02:00
Henrik Friedrichsen
a6f96d86ba refactor search (lots of duplicate code) 2019-04-10 14:04:09 +02:00
Oscar Linderholm
0f0b2f3e2a Add methods for fetching Spotify URI items 2019-04-10 14:04:09 +02:00
Oscar Linderholm
de1062471f Add Spotify URI resource helpers 2019-04-10 14:04:09 +02:00
Henrik Friedrichsen
1c26c7bcee cargo fmt/clippy all the things + make them mandatory in CI 2019-04-03 14:13:40 +02:00
KoffeinFlummi
6971c8d431 Refresh token in main thread before search 2019-04-02 08:31:17 +02:00
KoffeinFlummi
d223aae9c7 Add album and artist searching 2019-04-02 08:31:17 +02:00
KoffeinFlummi
3c7b3e3618 Add tabview, add playlists to search 2019-04-02 08:30:42 +02:00
Henrik Friedrichsen
3d446ab942 enable librespot cache for audio data 2019-03-31 16:28:43 +02:00
Michael Edwards
d78e71871a Credentials helper if config not present or unparseable
Fixes #1
2019-03-30 22:40:42 +01:00
Henrik Friedrichsen
83a394790f implement deletion of playlists
closes #11
2019-03-26 22:24:20 +01:00
Henrik Friedrichsen
4f8342da83 refactorial spring cleaning (cargo fmt + clippy) 2019-03-26 20:51:39 +01:00
KoffeinFlummi
e6a7d8a693 Add seeking 2019-03-25 18:32:51 +01:00
Henrik Friedrichsen
43a1dc654f implement playlist saving interface 2019-03-24 16:27:36 +01:00
Henrik Friedrichsen
53255a48af implement playlist update on demand + prune stale playlists 2019-03-23 18:38:58 +01:00
Henrik Friedrichsen
4a5a38716f handle and renew expired web api tokens
closes #36
2019-03-22 16:01:05 +01:00
Henrik Friedrichsen
4b3a53ef74 remove leftover comment 2019-03-20 23:41:20 +01:00
Henrik Friedrichsen
c0e6f9ec34 cargo fmt 2019-03-20 23:38:17 +01:00
Henrik Friedrichsen
2b45778196 handle rate limiting imposed by spotify web api
closes #29
2019-03-20 23:12:58 +01:00
Henrik Friedrichsen
7aa6d49f3d move foreign SpotifyId struct out of Track model 2019-03-13 23:30:50 +01:00
Henrik Friedrichsen
cf31b2204a trigger redraw every 400ms while playing to keep statusbar in sync 2019-03-11 01:07:21 +01:00
Henrik Friedrichsen
82f10fccde download playlist once at startup and keep it in memory 2019-03-08 00:13:45 +01:00
Henrik Friedrichsen
0b14fc5da7 transform simple queue to a preserving, more complex kind
this is a pretty big but necessary change and might not be stable yet.

some key points:
- the queue is now responsible for playback controls and track management, as
this was scattered between the queue and spotify objects.
- because the queue is now retained, it should be easier to save it as a
spotify playlist

closes #12
2019-03-06 23:59:33 +01:00
Henrik Friedrichsen
0d2896363f small fixes 2019-03-06 00:47:30 +01:00
Henrik Friedrichsen
91e89c2970 introduce track data class 2019-03-06 00:15:28 +01:00
Henrik Friedrichsen
0f3cc41115 cargo fmt 2019-03-05 23:26:23 +01:00
KoffeinFlummi
7a24eca809 Add main layout view and status bar
Fix #4
2019-03-05 19:18:36 +01:00
Henrik Friedrichsen
92811a2ce3 use scrollview in linearlayout for playlist items
this approach is more flexible for future additions, e.g. further callbacks such
as playlist deletion.
2019-03-04 19:13:39 +01:00
Felipe Sere
99674a5ac0 Implement basic playlist that simply queues songs 2019-03-04 16:41:04 +00:00
Henrik Friedrichsen
19ae8fcbfc rename player events 2019-03-04 00:29:48 +01:00
Henrik Friedrichsen
bb8326af88 refer to Self 2019-03-03 23:47:56 +01:00
Henrik Friedrichsen
c60324af61 cargo fmt 2019-03-02 18:39:58 +01:00
Henrik Friedrichsen
3d1673a7a4 add global play/pause/stop buttons + necessary state logic 2019-03-02 18:37:56 +01:00