Commit Graph

43 Commits

Author SHA1 Message Date
Henrik Friedrichsen
5671f1e5a4 fix: do not announce unplayable tracks via mpris
fixes #349
2020-12-19 00:28:39 +01:00
Henrik Friedrichsen
09febf7187 cargo update + format + clippy 2020-11-21 15:42:17 +01:00
Benjamin Brownlee
d728cd2bb4 fix mpris get volume; added mpris set volume (#325) 2020-11-21 15:34:22 +01:00
r4v3n6101
5e1c31eefb Change to correct trackid 2020-11-17 20:43:02 +01:00
Bettehem
e0cfc40639 Spotify URL handling improvements (#320)
* Fixed regex for handling links via ctrl+v shortcut.
Fixed the whole url getting passed to get data on each link type instead of only the id.
Fixed MPRIS OpenUri function not handling an user&id in the link correctly.
2020-11-15 19:17:15 +01:00
Bettehem
9baed7ae98 Added possibility to turn on/off shuffle using MPRIS (#318)
* Added possibility to turn shuffle on/off via MPRIS

* Simplified code to use unwrap_or instead of a match.
Changed the default value to be retrieved from spotify.

* only set shuffle setting if parameter was passed

* fix: fetch shuffle state with every MPRIS query

And not just once during DBus/MPRIS setup. Also, redraw UI when shuffle
state has changed.

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2020-11-14 21:50:13 +01:00
Bettehem
a8861fc1aa Spotify URL support for MPRIS OpenUri function (#314)
* Added OpenUri D-BUS MPRIS support.
Removed "user:" from URIType check because Spotify doesn't always provide it.

* Added tags to .gitignore

* Changed mpris metadata to actually return the track's url instead of the Spotify URI so that it matches the functionality of the official Spotify client.

* Changed mpris:trackid and xesam:url to not use static naming so it can support podcasts.

* Changed xesam:url to default to an empty string instead of "0"

* Added possibility to start playing Shows and Episodes via MPRIS.
Added possibility to search for Podcast Episodes.

* Fixed mpris:trackid not returning the id in the correct format.
MPRIS OpenUri function now supports Spotify url links.

* return result directly instead of mut string

* handle artist URLs/URIs

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2020-11-10 20:18:22 +01:00
Henrik Friedrichsen
5fb4eb7af2 fix: update playlist changes in local store
Move playlist change logic out of the library while we're at it and notify
the library of changes instead.

fixes #302
2020-10-25 00:09:23 +02:00
dependabot-preview[bot]
e698d51e59 Bump dbus from 0.8.4 to 0.9.0 (#296)
* Bump dbus from 0.8.4 to 0.9.0

Bumps [dbus](https://github.com/diwic/dbus-rs) from 0.8.4 to 0.9.0.
- [Release notes](https://github.com/diwic/dbus-rs/releases)
- [Commits](https://github.com/diwic/dbus-rs/compare/dbus-v0.8.4...dbus-v0.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* migrate to dbus/dbus-tree 0.9.0

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2020-10-24 00:03:19 +02:00
Henrik Friedrichsen
79a3d0ca8a add recommendations/similar tracks feature
fixes #186
2020-10-18 17:41:18 +02:00
Henrik Friedrichsen
6f7b64c908 cargo clippy 2020-08-23 21:00:29 +02:00
r4v3n6101
dce6b45472 Seek & SetPosition implementation 2020-08-20 18:12:34 +02:00
r4v3n6101
97d3468392 Fix trackid replacing string with d-bus path 2020-08-20 18:12:34 +02:00
Henrik Friedrichsen
ea1856b312 fix: fetch playpack progress when position is queried
fixes #223 #236
2020-08-18 22:18:09 +02:00
Henrik Friedrichsen
bc8f117e86 update to latest dbus-rs library 2020-08-18 22:16:58 +02:00
Henrik Friedrichsen
8d8c79616c cargo fmt 2020-07-31 22:23:03 +02:00
Bettehem
413703a310 Podcast support improvements. (#229)
* Added OpenUri D-BUS MPRIS support.
Removed "user:" from URIType check because Spotify doesn't always provide it.

* Added tags to .gitignore

* Changed mpris metadata to actually return the track's url instead of the Spotify URI so that it matches the functionality of the official Spotify client.

* Changed mpris:trackid and xesam:url to not use static naming so it can support podcasts.

* Changed xesam:url to default to an empty string instead of "0"

* Added possibility to start playing Shows and Episodes via MPRIS.
Added possibility to search for Podcast Episodes.
2020-07-26 11:29:43 +02:00
Henrik Friedrichsen
f0c42afc7d bump to version 0.2.0 2020-07-17 23:49:47 +02:00
Bettehem
578d2b2f0c fix mpris metadata returing Spotify URI instead of an url in xesam:url field (#222)
* Added OpenUri D-BUS MPRIS support.
Removed "user:" from URIType check because Spotify doesn't always provide it.

* Added tags to .gitignore

* Changed mpris metadata to actually return the track's url instead of the Spotify URI so that it matches the functionality of the official Spotify client.

* Changed mpris:trackid and xesam:url to not use static naming so it can support podcasts.

* Changed xesam:url to default to an empty string instead of "0"
2020-07-14 21:30:14 +02:00
Henrik Friedrichsen
1b1d392ab8 podcast support (#203)
* implement search for shows/podcasts

* create Playable supertype for queue to contain tracks and episodes

* wip: implement playback of episodes

* load spotify id from uri instead of raw id to fix podcast playback

* show duration for podcast episodes

* implement generic status bar for playables (tracks and episodes)

omit saved indicator for now as the library does not yet support podcasts

* instead of only the last 50 fetch all episodes of a show

* refactor: extract Playable code to separate file

* implement playback/queuing of shows + sharing url

* implement podcast library

* migrate mpris code to Playable supertype
2020-07-14 10:38:22 +02:00
Henrik Friedrichsen
20536580fc refactoring/simplifications (via cargo clippy) 2020-06-06 12:07:59 +02:00
Bettehem
2e89cc3d01 Added OpenUri D-BUS MPRIS support.
Removed "user:" from URIType check because Spotify doesn't always provide it.
2020-04-27 10:33:31 +02:00
Henrik Friedrichsen
dccb36d8e7 update to rust edition 2018 + bump version 2020-03-15 11:06:24 +01:00
Henrik Friedrichsen
d2915316da various non-functional code cleanups 2020-02-21 23:33:08 +01:00
Henrik Friedrichsen
6bf1d662dc minor code cleanups 2019-11-02 23:18:34 +01:00
Henrik Friedrichsen
dc427e3ba2 formatting + clippy cleanups 2019-10-31 12:30:25 +01: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
Nick Mavis
f48871a98a Added additional dbus support 2019-10-02 10:50:36 -04:00
Henrik Friedrichsen
b7a6903908 fix: use signed datatypes for length/trackNumber
as defined per specs:

https://www.freedesktop.org/wiki/Specifications/mpris-spec/metadata/#index2h4

fixes #89
2019-09-01 21:32:42 +02:00
Henrik Friedrichsen
7aa70fcb6b fix deprecation warnings caused by old trait object syntax 2019-09-01 01:32:50 +02:00
Henrik Friedrichsen
9a38eaa535 rework mpris notification of PropertiesChanged
as sending out PropertiesChanged events was triggered asynchronously by a
message queue, retrieving the metadata during message formatting is too late.

this resulted in two PropertiesChanged messages announcing the new track as
playing.

this should prevent such a scenario.

as discussed in #89
2019-09-01 01:10:35 +02:00
Henrik Friedrichsen
68a2a633f2 match previous mpris action with that of "<" binding
fixes #71
2019-05-11 19:48:22 +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
Henrik Friedrichsen
4f8342da83 refactorial spring cleaning (cargo fmt + clippy) 2019-03-26 20:51:39 +01:00
KoffeinFlummi
45062bd89e Add shuffle and repeat 2019-03-25 18:32:51 +01:00
KoffeinFlummi
e6a7d8a693 Add seeking 2019-03-25 18:32:51 +01:00
KoffeinFlummi
fb83746476 Fix MPRIS progress time unit
MPRIS expects time in micro, not milli seconds.
2019-03-17 04:30:45 +01:00
KoffeinFlummi
5a85619105 Add rebindable keys, refactor lists 2019-03-17 04:29:29 +01:00
Henrik Friedrichsen
3d385aff9b fix compilation on rustc <1.33
also, precision in the seconds should be good enough

fixes #33
2019-03-14 21:00:46 +01:00
Henrik Friedrichsen
a5d00730ea implement playlist caching 2019-03-14 20:34:13 +01:00
Henrik Friedrichsen
7aa6d49f3d move foreign SpotifyId struct out of Track model 2019-03-13 23:30:50 +01:00
KoffeinFlummi
ea08608eec Refactor DBus server, implement PropertiesChanged 2019-03-12 16:40:21 +01:00
KoffeinFlummi
9db8d0fcb3 Implement MPRIS D-Bus spec 2019-03-11 21:24:25 +01:00