Commit Graph

463 Commits

Author SHA1 Message Date
Henrik Friedrichsen
299c470cf9 Add exec command
Fixes #673
2021-12-17 20:57:52 +01:00
Bettehem
3324094974 Added Wayland clipboard support. (#666)
* Fixed MPRIS OpenUri function not respecting ncspot's shuffle setting.

* Added support for Wayland clipboard.

* Formatted code properly using cargo fmt.

* Added is_wayland() function to check if using Wayland.

* Added wayland_clipboard feature flag.
It can be used to enable Wayland clipboard support.
Changed is_wayland() function to check wayland related environment
variables at runtime and not compile time.
2021-12-09 11:55:44 +01:00
Henrik Friedrichsen
240a0a7c41 Fix: Play multiples of Track and Playable
With the migration to rspotify 0.11.x playlists were changed to be a list of `Playable`
instead of `Track` items, so that playlists can contain podcast episodes.
This needs to be considered when collecting all tracks for playback in `ListView`.

Should help with #667
2021-12-08 21:32:36 +01:00
Henrik Friedrichsen
dc977d758e Fix serialization of jump commands 2021-12-07 21:36:36 +01:00
Felix
3d43081df3 Added jumpnext and jumpprevious as commands 2021-12-07 16:35:52 +01:00
Bettehem
3808adced6 Fixed MPRIS OpenUri function not respecting ncspot's shuffle setting. 2021-12-01 21:17:39 +01:00
Henrik Friedrichsen
550fa6acf4 Add cache_version flag to saved state
Can be used to determine whether the cache file format has been broken after an update.
If so, the cache will be discarded and recreated.
2021-11-30 20:43:58 +01:00
Henrik Friedrichsen
b826552a1c Fix: Save track ID instead of URI
fixes #661
2021-11-30 20:16:41 +01:00
Henrik Friedrichsen
ebc49117b0 Update rspotify to 0.11.3 (et al)
Also allows us to revert the previously applied fix where the market parameter had to be removed.
2021-11-29 22:43:06 +01:00
Henrik Friedrichsen
048658a529 Show playlist owner name
Requires clearing the playlist cache:
`rm ~/.cache/ncspot/playlists.db`

fixes #652
2021-11-22 20:28:33 +01:00
Henrik Friedrichsen
e83ea5b833 Don't set market for user albums
Workaround until next rspotify is released

Fixes #650
2021-11-20 20:52:40 +01:00
Henrik Friedrichsen
74b4e65b64 Refactor: move playable models to separate module 2021-11-08 20:44:21 +01:00
Henrik Friedrichsen
96f2d88696 Update to rspotify 0.11.2 (#640)
* Update to rspotify 0.11.x

Many breaking changes

* Minor cleanups via Clippy
2021-11-07 17:19:56 +01:00
Henrik Friedrichsen
6a0ab196f2 Fix: stop player when Spotify worker thread dies
May help with #628
2021-10-18 22:08:45 +02:00
Matheus Cardoso
1ea2f0a434 Fix key bindings inconsistency (#627) 2021-10-17 15:31:42 +02:00
John M. Merchant
25505be540 modified library.rs to sort after saving an album (#428)
* modified library.rs to sort after saving an album

* Reformat

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2021-10-15 17:43:00 +02:00
Henrik Friedrichsen
ec640581bc Add initial_screen config variable
Resolves #616
2021-10-15 17:20:12 +02:00
George Hafiz
49f2d40b44 Add userRating entity to mpris metadata, with 0 and 1 corresponding to unsaved/not-liked and saved/liked in Spotify, respectively. 2021-10-15 16:26:37 +02:00
Henrik Friedrichsen
0c69e991b8 Upgrade to librespot 0.3.0
- logarithmic volume conversion is now done by librespot
- use default normalisation threshold
2021-10-14 23:41:00 +02:00
Henrik Friedrichsen
a78bbe6684 Add redraw command and bind to CTRL+L
solves #609
2021-10-01 18:44:25 +02:00
Henrik Friedrichsen
e0a0987f1a Add "Share album" contextmenu entry
Fixes #606
2021-09-24 22:56:37 +02:00
HMH
102acd803e Enable binding multiple commands to a key.
This enables useful combinations of commands like `Space -> queue; move
down 1` using ';' as command separator. ';' can be escaped using ';;'.
2021-09-11 21:40:00 +02:00
HMH
d17c66f8ad Add command to show recommendations. (#593)
* Add command to show recommendations.

This adds a command `similar selected|current` which enables searching for
track recommendations for playlists, albums as well as single tracks.

* Make sure to only send 5 seed items in total.

* Add docs for recommendation bindings to the README
2021-09-07 15:01:06 +02:00
Henrik Friedrichsen
6a03d6dcd6 Remove deprecated/broken Facebook login
The current approach is broken and there is no alternative yet, so remove it
until there is another approach.

See also:
- https://github.com/librespot-org/librespot/discussions/635
- https://github.com/hrkfdn/ncspot/pull/537

Closes #310
2021-08-28 19:06:57 +02:00
Henrik Friedrichsen
faad362f55 Refactor: separate Spotify API from player logic
The separation is not perfect yet, but it's a start and makes the entire codebase much easier to read.
2021-08-23 22:15:54 +02:00
Ahmad Sattar
d949a7c02b Scroll changes volume when mouse is on volume % 2021-08-17 17:30:06 +02:00
Henrik Friedrichsen
6b8e1d33dc Code cleanups 2021-08-15 15:05:49 +02:00
Henrik Friedrichsen
19d87f6b8f Only fetch the full track if necessary
Previously the full track data would be fetched every time although the `Track`
object could already be based on a `FullTrack` object. This should reduce the
query count somewhat.
2021-08-15 14:52:16 +02:00
Henrik Friedrichsen
eb8d9ad294 Fix notify/cover platform config 2021-07-27 23:04:00 +02:00
Henrik Friedrichsen
d731fe7188 Make command_key configurable
Fixes #487
2021-07-27 01:35:21 +02:00
Henrik Friedrichsen
ad3383657d Fix: Show album art when playing 'similar tracks'
`SimplifiedTrack` objects don't contain a `cover_url`.
So fetch the whole track details in MPRIS handler to make sure the `cover_url`
is set.

Fixes #354
2021-07-26 21:37:53 +02:00
Henrik Friedrichsen
6bd83ce9c8 Don't panic if user quits login process
Fixes #479
2021-07-26 18:50:08 +02:00
Henrik Friedrichsen
2a82826e7a Add commandline flag for custom config filename
Related to #565
2021-07-22 17:17:57 +02:00
nc
2edc22f251 add album cover to notification 2021-07-16 10:27:37 +02:00
Henrik Friedrichsen
9eb99cc8be cargo clippy 2021-07-11 01:38:57 +02:00
Henrik Friedrichsen
46a8f01bac Fix: Handle commands in select artist modal
Fixes #560
2021-07-11 01:29:11 +02:00
Ronak Buch
952b7f4fe8 fixup! Bump reqwest form 0.9 to 0.11 2021-05-30 01:30:42 +02:00
Ronak Buch
9de86e6294 Fix nerdfont pause/stop glyphs
b42315d accidentally changed both of these to the glyph for play, this
reverts them back to the correct glyphs.
2021-05-30 01:30:22 +02:00
Ronak Buch
1259badd9a Bump reqwest form 0.9 to 0.11 2021-05-28 09:43:28 +02:00
Henrik Friedrichsen
0d405cf221 Print Spotify connection message only once
To avoid the terminal output getting garbled when ncspot is reconnecting
2021-05-24 21:03:25 +02:00
Henrik Friedrichsen
b7ab1202b8 Clear worker channel when worker has died
Should prevent panic in `Spotify::send_worker()`
2021-05-24 19:57:46 +02:00
Henrik Friedrichsen
0ac789c36e Don't panic when librespot event channel died
Terminate worker instead and attempt to open a new session

Should hopefully help with #536
2021-05-23 15:29:00 +02:00
Henrik Friedrichsen
01d227be79 Move up invalid session check 2021-05-23 15:28:09 +02:00
Henrik Friedrichsen
a2873d2438 Fix cfg borrow with cover feature
Fixes: #534
2021-05-20 17:01:55 +02:00
Henrik Friedrichsen
b42315d113 Add flip_status_indicators setting
Fixes #511
2021-05-14 17:41:19 +02:00
Henrik Friedrichsen
cd2cde542e Revert "Flip play/pause indicators" 2021-05-14 14:13:44 +02:00
Ronak Buch
c989909b07 Explicitly set default normalisation threshold for librespot
The normalisation threshold should be in ratio space, but the default
value is specified in dB space, so using it as the default implicitly
without passing it through the db_to_ratio function causes distortion
and clipping when normalisation is enabled.
2021-05-14 03:28:11 +02:00
Henrik Friedrichsen
40ad2bd208 Fix build of cover feature 2021-05-11 22:47:56 +02:00
Henrik Friedrichsen
8fb854dea6 Cargo format 2021-05-10 22:18:03 +02:00
fwcd
09404285c1 Use 'play' icon in stopped state 2021-05-10 22:09:38 +02:00