Commit Graph

339 Commits

Author SHA1 Message Date
JojiiOfficial
5fefe9eec3 Add hjkl controls for AddToPlaylistMenu (#335)
* Add hjkl controls for AddToPlaylistMenu

* turn off autojump in contextmenu for vim bindings

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2020-12-13 20:41:22 +01:00
André Andersson
bdc1ed8fc8 Save/unsave track from context menu 2020-11-26 21:40:38 +01:00
André Andersson
d1211e6901 Only show playlists where the user is allowed to add tracks when trying to add tracks (#329)
* Only show playlists where the user is allowed to add tracks

* Expose user_id from library and use it to reduce api calls
2020-11-22 19:26:20 +01:00
André Andersson
68d2bbd64f Add support for sorting playlist tracks (#328)
* Add support for sorting playlists

* Update string

* formatting
2020-11-22 17:02:33 +01:00
Henrik Friedrichsen
d8417664fd show connection message instead of blank screen 2020-11-21 15:52: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
Henrik Friedrichsen
880fbb3f6e fix: don't try to play tracks without spotify id
Can happen when a playlist is queued that contains tracks removed from the
Spotify catalogue.

fixes #321
2020-11-16 22:21:27 +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
Bolli
d88ea93a94 feat: create new empty playlist via command (#272)
* feat: create new empty playlist via command

- type :newplaylist <name> to create a new playlist

fixes #242

* use full argument string for playlist name

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2020-10-25 17:57:49 +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
JojiiOfficial
6587efdfd2 Add dialog for adding duplicate tracks to a playlist (#299)
* Add dialog for adding duplicate tracks to a playlist

* use local playlist store to check for duplicates

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2020-10-24 20:41:55 +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
Saul Chavez Sanchez
c9d02507ac Increase/Decrease volume by 5 (#298)
* Increase/Decrease volume by 5

* Fixed static value

* use fallback value in case parsing fails

fixes #282

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2020-10-22 20:21:49 +02:00
Henrik Friedrichsen
79a3d0ca8a add recommendations/similar tracks feature
fixes #186
2020-10-18 17:41:18 +02:00
Henrik Friedrichsen
e5be021699 refactor: zap display_center stub implementations 2020-10-18 17:04:41 +02:00
Henrik Friedrichsen
013beb245b refactor: pass globally mutable config reference
Before, copies of the configuration were passed over. This change also
causes configuration reloads to affect the entire application and is
easier to maintain but introduces some RwLock overhead.
2020-10-18 13:09:45 +02:00
Henrik Friedrichsen
e1b4892b8a make album column for tracks configurable
introduces new config variable `album_column`

fixes #267
2020-10-17 23:56:23 +02:00
Henrik Friedrichsen
9fbbc7921e fix: handle overlapping columns in listview 2020-10-17 23:45:14 +02:00
Henrik Friedrichsen
f00580b97e highlight search query matches in listviews 2020-10-15 23:43:18 +02:00
Mario Rodas
6bb2c08705 Replace directories with platform_dirs create
`directories` create is no longer maintained, and uses
`~/Library/Preferences` on MacOS, but Apple advises against creating
files in `Preferences`.

`platform-dirs` allows to use `~/.config` on MacOS.
2020-10-12 10:46:36 +02:00
Henrik Friedrichsen
f3c66111a2 cargo clippy 2020-10-10 20:47:12 +02:00
Henrik Friedrichsen
98914f27e1 fix: load more tracks if album has more than 50
fixes #281
2020-10-09 20:22:15 +02:00
Bolli
79093eca1e feat: add insert command to paste spotify links (#277)
* feat: add insert command to paste spotify links

- use Ctrl-v to paste from clipboard or use :insert without an argument

* fix: handle paste on disabled clipboard feature

* fix: handle wrong URIs

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2020-10-09 19:26:52 +02:00
Moshe Sherman
f2b4f01242 Vim like search (#279)
* add quick search within a list

* vim like search navigation

* close cmd line with esc

* format

* document changes in README
2020-10-05 13:50:12 +02:00
Moshe Sherman
fc79889665 play next (#278)
* add play next feature

* fix play_next insertion order

* fix play_next call for playable

* document play_next shortcut + reformat

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2020-10-04 16:58:55 +02:00
Moshe Sherman
7bf0cac6c0 handle last element removal in queue 2020-10-01 20:48:27 +02:00
Moshe Sherman
4e7ec60b0e disable repeat track if manualy skip song 2020-10-01 20:48:27 +02:00
Moshe Sherman
9872a10bfa adhere to repeat/shuffle settings on previous track 2020-10-01 20:48:27 +02:00
Moshe Sherman
181f5e4918 dont stop track 2020-10-01 20:48:27 +02:00
Moshe Sherman
77e5de562d Display album name for playable objects (#268)
* display album name

* give proper name to the space key

fixes #266

* use 50% for center offset

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2020-09-28 22:28:10 +02:00
Kemyt
cded15f50c Fix last tab to fill entire width correctly (#271)
Condition to check if the tab is the last one was never met.

Co-authored-by: Kemyt <kemyt4@gmail.com>
2020-09-24 09:13:37 +02:00
eulerfan271
9e970f5799 Added config option for bitrate (#270)
* added config option for bitrate

* updated README.md to include bitrate config options
2020-09-22 17:01:56 +02:00
Moshe Sherman
c4ec1a9122 give proper name to the space key
fixes #266
2020-09-16 08:56:50 +02:00
Henrik Friedrichsen
3893a6f5a0 add feature flag for song notifications
enables users/distributions to ship without dbus dependency
2020-09-07 23:50:45 +02:00
Henrik Friedrichsen
69f11cdcf7 gracefully handle error when showing notification
fixes #265
2020-09-07 23:38:37 +02:00
pin
b5e718f5f6 Use libc for setlocale() to fix non-ASCII (#256)
* Use libc for setlocale() to fix non-ASCII

character printing.
https://github.com/hrkfdn/ncspot/issues/221

* move string instantiation outside unsafe block

update libc crate while at it

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2020-08-29 11:27:47 +02:00
Henrik Friedrichsen
6f7b64c908 cargo clippy 2020-08-23 21:00:29 +02:00
Henrik Friedrichsen
1edf28a165 make contextmenu aware of commands
e.g. to process vim-like keybindings for navigation

fixes #108, fixes #157, fixes #178, fixes #199, fixes #250
2020-08-23 20:44:03 +02:00
Henrik Friedrichsen
d2b9dffb54 fix: do not delete from empty queue
fixes #253
2020-08-21 00:13:54 +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
e5bc12b1ba use cfg of spotify object
TODO:
- apply this to other single config values that are passed directly, e.g. in the
  statusbar
- use a more appropriate object to hold `cfg`
2020-08-18 23:06:41 +02:00
Ronak Buch
097f59eb83 Add notifications 2020-08-18 23:06:38 +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
4f71b2489b implement command to reload config (#243)
* implement command to reload themes

* refresh keybindings after config reload
2020-08-12 01:12:08 +02:00