Commit Graph

118 Commits

Author SHA1 Message Date
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
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
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
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
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
8188f9e304 fix: only clear credentials when they're invalid
fixes #77
2020-06-21 21:50:49 +02:00
Henrik Friedrichsen
65126c5c78 add configuration value to drop default keybindings
resolves #204
2020-06-18 19:33:46 +02:00
Henrik Friedrichsen
8013609d0e recreate librespot session when it's invalid
initial attempt to handle #192
2020-06-13 20:23:28 +02:00
Henrik Friedrichsen
ce5b11dac4 update to cursive 0.15.0 2020-06-02 23:19:21 +02:00
Henrik Friedrichsen
91ce808ef8 support configuration of audio backend and backend device
fixes #194
2020-05-19 00:05:32 +02:00
Henrik Friedrichsen
b5566351b5 use cached credentials from librespot
attempt at fixing #160
2020-04-08 21:07:20 +02:00
Henrik Friedrichsen
1b0ac4d5cc migrate to futures 0.3 2020-03-28 23:31:27 +01:00
Henrik Friedrichsen
082675a5d7 push help view to stack instead of making it a separate screen
fixes #157
2020-03-21 15:51:35 +01:00
Henrik Friedrichsen
dccb36d8e7 update to rust edition 2018 + bump version 2020-03-15 11:06:24 +01:00
dann-merlin
56a178dcfd Added configuration option for initial shuffle, repeat, volume 2020-03-03 18:05:03 +01:00
Henrik Friedrichsen
d2915316da various non-functional code cleanups 2020-02-21 23:33:08 +01:00
Henrik Friedrichsen
54230bd85b show commands in help screen in the same syntax they are parsed 2020-02-05 22:48:35 +01:00
Henrik Friedrichsen
cea2cbb33e remove unused cfg parameters 2020-02-05 22:08:11 +01:00
Henrik Friedrichsen
fa960a4eba add initial help screen + keybinding -> command parsing
still needs some more work, i.e. to show commands in help instead of parsed data
structures, but it's a start.

fixes #117
fixes #121
2020-02-02 21:51:40 +01:00
Henrik Friedrichsen
bf2a72ad81 expose keybindings in CommandManager for help view 2020-02-02 20:38:55 +01:00
Henrik Friedrichsen
8924b85390 fix deprecation warnings that occured due to cursive 0.14.0 upgrade 2020-02-02 20:10:21 +01:00
Henrik Friedrichsen
e8f8b25de7 get version during compile time from cargo metadata 2019-11-30 17:39:34 +01:00
Henrik Friedrichsen
0695434ca0 fix: recursively create directories instead of failing
e.g. when ~/.config does not exist
2019-11-24 16:39:15 +01:00
Henrik Friedrichsen
e697b97d8c major dependency cleanup
- depend on specific librespot crates to remove clutter
- update versions

this should also help building on openbsd, as the unused librespot-connect
depended on the nix crate, which does not build on openbsd.
2019-11-24 16:38:15 +01:00
Henrik Friedrichsen
177c4893e0 add proxy configuration value
+ document possible configuration options

fixes #109
2019-11-21 22:45:09 +01:00
Henrik Friedrichsen
cd80ace4a8 remove debug log spamming + log player events 2019-09-01 01:10:19 +02:00
Henrik Friedrichsen
f7458b4137 make sharing to clipboard a feature that can be disabled
this is for users that want to eliminate dependences (e.g. libxcb).
the feature is enabled by default and must be explicitly disabled.

fixes #84
2019-08-13 11:49:27 +02:00
Rasmus Larsen
db7a09c87b Command parser 2019-05-21 18:11:54 +02:00
Rasmus Larsen
5500b34887 Remove dead code 2019-05-21 16:34:50 +02:00
Rasmus Larsen
1e0d9ea952 Handle default command behavior 2019-05-21 16:01:56 +02:00
Rasmus Larsen
1671db14c1 Move to enum-based commands 2019-05-20 22:15:12 +02:00
Henrik Friedrichsen
4b4a027c3c add basepath cmdline flag
this allows a basepath to be set via commandline where ncspot will place
configuration and cache files.

fixes #65
2019-05-16 23:58:05 +02:00
Rasmus Larsen
de1dea5c68 Add a keybind and shortcut to share the currently playing song 2019-05-07 23:39:15 +02:00
KoffeinFlummi
a98a4645f6 Make library the default view 2019-04-28 11:56:59 +02:00
KoffeinFlummi
82dee638c5 Display saved status in statusbar 2019-04-28 11:04:59 +02:00
KoffeinFlummi
1a17860957 cargo fmt 2019-04-20 00:11:43 +02:00
KoffeinFlummi
adba809327 Display saved/followed checkmark 2019-04-18 14:04:40 +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
990ba1fa29 fix: drop reference to main after usage to avoid double mut borrow
fixes a crash that occured when manually entering commands
2019-04-04 23:35:29 +02:00
Oscar Linderholm
65eb6c905a Only allow owner read/write to credentials.toml 2019-04-04 21:15:55 +02:00
Henrik Friedrichsen
25fbdb8bde force UI refresh after results are downloaded 2019-04-03 14:05:09 +02:00
KoffeinFlummi
d223aae9c7 Add album and artist searching 2019-04-02 08:31:17 +02:00
KoffeinFlummi
3f57111b7e Handle keybindings immediately 2019-04-02 08:30:15 +02:00
Henrik Friedrichsen
d500466e2e use webbrowser crate which is already a dependency in rspotify 2019-03-30 22:40:42 +01:00
Michael Edwards
d78e71871a Credentials helper if config not present or unparseable
Fixes #1
2019-03-30 22:40:42 +01:00
Michael Edwards
dc88f7e3ee Statusbar only needs nerdfont config 2019-03-30 22:40:42 +01:00
Henrik Friedrichsen
d7848ec333 code formatting + minor refactorings 2019-03-28 05:42:47 +01:00