Compare commits

..

10 Commits

Author SHA1 Message Date
n12n
c492094f42 fix: num-bigint-dig: future incompatibility
Some checks failed
CI / Checking linux-arm64 (push) Waiting to run
CI / Checking macos-aarch64 (push) Waiting to run
CI / Checking windows-x86_64 (push) Waiting to run
CI / Running `cargo fmt` (push) Failing after 1m8s
CI / Running `cargo clippy` (push) Failing after 5m49s
CI / Checking linux-x86_64 (push) Failing after 7m34s
num-bigint-dig: future incompatability

The following packages contain code that will be rejected
by a future version of Rust: num-bigint-dig v0.8.5
help: update to a newer version to see if the issue has been fixed
        - num-bigint-dig v0.8.5 has the following newer
	  versions available: 0.8.6, 0.9.0, 0.9.1
help: ensure the maintainers know of this problem (e.g. creating a
      bug report if needed)
      or even helping with a fix (e.g. by creating a pull request)
        - num-bigint-dig@0.8.5
        - repository: https://github.com/dignifiedquire/num-bigint
        - detailed warning command:
          `cargo report future-incompatibilities --id 1 --package num-bigint-dig@0.8.5`
2025-12-16 18:15:48 +01:00
dependabot[bot]
1b8e377e60 chore(deps): bump actions/checkout in the github-actions group
Bumps the github-actions group with 1 update: [actions/checkout](https://github.com/actions/checkout).


Updates `actions/checkout` from 5 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 09:34:11 +01:00
dependabot[bot]
e70a934c1a chore(deps): bump the cargo group with 2 updates
Bumps the cargo group with 2 updates: [libc](https://github.com/rust-lang/libc) and [log](https://github.com/rust-lang/log).


Updates `libc` from 0.2.177 to 0.2.178
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Changelog](https://github.com/rust-lang/libc/blob/0.2.178/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.177...0.2.178)

Updates `log` from 0.4.28 to 0.4.29
- [Release notes](https://github.com/rust-lang/log/releases)
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/log/compare/0.4.28...0.4.29)

---
updated-dependencies:
- dependency-name: libc
  dependency-version: 0.2.178
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo
- dependency-name: log
  dependency-version: 0.4.29
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 09:28:41 +01:00
dependabot[bot]
b786f5a6bc chore(deps): bump the cargo group with 2 updates
Bumps the cargo group with 2 updates: [clap](https://github.com/clap-rs/clap) and [clap_complete](https://github.com/clap-rs/clap).


Updates `clap` from 4.5.51 to 4.5.53
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.51...clap_complete-v4.5.53)

Updates `clap_complete` from 4.5.60 to 4.5.61
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.60...clap_complete-v4.5.61)

---
updated-dependencies:
- dependency-name: clap
  dependency-version: 4.5.53
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo
- dependency-name: clap_complete
  dependency-version: 4.5.61
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 09:10:49 +01:00
github-actions[bot]
f95201d5aa [create-pull-request] automated change 2025-11-15 18:31:26 +01:00
Thomas Frans
46ac2ab561 docs(README): center misaligned screenshot 2025-11-15 18:30:36 +01:00
Henrik Friedrichsen
2c3e9c0eed chore: Prepare for release 1.3.2 2025-11-11 10:49:50 +01:00
Guilherme Fontes
6d703deac3 fix: Update to latest Librespot to fix playback
* fix: adapt to librespot SpotifyUri API changes

Fixes compatibility with librespot PR #1622 which changed the API
from SpotifyId::from_uri() to SpotifyUri::from_uri().

Changes:
- Updated src/spotify_worker.rs to use SpotifyUri instead of SpotifyId
- Updated Cargo.toml to use librespot from official repository
  (merge commit a9122dcb from PR #1622)
- Regenerated Cargo.lock with updated dependencies

Fixes #1732
Depends on librespot-org/librespot#1622 (merged)

* Switch to 0.8.0 release

* Update CHANGELOG

* `cargo fmt`

---------

Co-authored-by: Guilherme Fontes <48162143+gui-baeta@users.noreply.github.com>
Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2025-11-11 10:46:15 +01:00
Henrik Friedrichsen
56520c2d8d chore(toolchain): update (#1730)
[create-pull-request] automated change

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-06 17:33:47 +00:00
dependabot[bot]
f7c8262a3c chore(deps): bump the cargo group with 4 updates (#1722)
Bumps the cargo group with 4 updates: [libc](https://github.com/rust-lang/libc), [regex](https://github.com/rust-lang/regex), [toml](https://github.com/toml-rs/toml) and [unicode-width](https://github.com/unicode-rs/unicode-width).


Updates `libc` from 0.2.176 to 0.2.177
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Changelog](https://github.com/rust-lang/libc/blob/0.2.177/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.176...0.2.177)

Updates `regex` from 1.11.3 to 1.12.1
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.11.3...1.12.1)

Updates `toml` from 0.9.7 to 0.9.8
- [Commits](https://github.com/toml-rs/toml/compare/toml-v0.9.7...toml-v0.9.8)

Updates `unicode-width` from 0.2.1 to 0.2.2
- [Commits](https://github.com/unicode-rs/unicode-width/compare/v0.2.1...v0.2.2)

---
updated-dependencies:
- dependency-name: libc
  dependency-version: 0.2.177
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo
- dependency-name: regex
  dependency-version: 1.12.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo
- dependency-name: toml
  dependency-version: 0.9.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo
- dependency-name: unicode-width
  dependency-version: 0.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-15 11:12:18 +02:00
10 changed files with 629 additions and 644 deletions

View File

@@ -40,7 +40,7 @@ jobs:
target: x86_64-pc-windows-msvc
features: '--no-default-features --features rodio_backend,pancurses_backend,share_clipboard,notify'
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
name: Checkout src
- name: Install rustup
if: runner.os != 'Windows'

View File

@@ -34,7 +34,7 @@ jobs:
target: x86_64-pc-windows-msvc
features: '--no-default-features --features rodio_backend,pancurses_backend,share_clipboard,notify'
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: actions/cache@v4
name: Cache build data
with:
@@ -73,7 +73,7 @@ jobs:
name: Running `cargo fmt`
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: Install rustup
run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
- name: Install clippy + rustfmt
@@ -87,7 +87,7 @@ jobs:
name: Running `cargo clippy`
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: actions/cache@v4
name: Cache build data
with:

View File

@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: update rust toolchain
uses: a-kenji/update-rust-toolchain@v1.1
with:

View File

@@ -5,13 +5,14 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## Unreleased
## [1.3.2]
### Fixed
- Playlist retrieval crashing when list contains podcast episodes
- Crash when shifting a song by an amount greater than the queue's length
- Crash when displaying songs that do not have an (available) artist
- Playback broken due to Spotify API change
## [1.3.1]
@@ -260,6 +261,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Albums with more than 50 songs not showing all the songs when viewed in the library
- Bug that could cause items to not load until the screen is filled on bigger screens
[1.3.2]: https://github.com/hrkfdn/ncspot/compare/v1.3.1...v1.3.2
[1.3.1]: https://github.com/hrkfdn/ncspot/compare/v1.3.0...v1.3.1
[1.3.0]: https://github.com/hrkfdn/ncspot/compare/v1.2.2...v1.3.0
[1.2.2]: https://github.com/hrkfdn/ncspot/compare/v1.2.1...v1.2.2

1217
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
[package]
name = "ncspot"
readme = "README.md"
version = "1.3.1"
version = "1.3.2"
description = "ncurses Spotify client written in Rust using librespot, inspired by ncmpc and the likes."
exclude = ["images/**"]
keywords = ["spotify", "ncurses", "librespot", "terminal"]
@@ -44,19 +44,19 @@ codegen-units = 16
[dependencies]
chrono = "0.4"
clap = "4.5.48"
clap = "4.5.53"
arboard = {version = "3.6", optional = true}
crossbeam-channel = "0.5"
zbus = {version = "5.11.0", default-features = false, features = ["tokio"], optional = true}
fern = "0.7"
futures = "0.3"
ioctl-rs = {version = "0.2", optional = true}
libc = "0.2.176"
librespot-core = "0.7.1"
librespot-oauth = "0.7.1"
librespot-playback = {version = "0.7.1", default-features = false, features = ["native-tls"]}
librespot-protocol = "0.7.1"
log = "0.4.28"
libc = "0.2.178"
librespot-core = "0.8.0"
librespot-oauth = "0.8.0"
librespot-playback = {version = "0.8.0", default-features = false, features = ["native-tls"]}
librespot-protocol = "0.8.0"
log = "0.4.29"
pancurses = {version = "0.17.0", optional = true}
parse_duration = "2.1.1"
platform-dirs = "0.3.0"
@@ -72,7 +72,7 @@ tokio = {version = "1", features = ["rt-multi-thread", "sync", "time", "net"]}
tokio-util = {version = "0.7.16", features = ["codec"]}
tokio-stream = {version = "0.1.17", features = ["sync"]}
toml = "0.9"
unicode-width = "0.2.1"
unicode-width = "0.2.2"
url = "2.5"
[target.'cfg(unix)'.dependencies]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 70 KiB

View File

@@ -1,3 +1,3 @@
[toolchain]
channel = "1.90.0"
channel = "1.91.1"
components = ["rustfmt", "clippy", "rust-analyzer"]

View File

@@ -3,8 +3,8 @@ use crate::model::playable::Playable;
use crate::queue::QueueEvent;
use crate::spotify::PlayerEvent;
use futures::Future;
use librespot_core::SpotifyUri;
use librespot_core::session::Session;
use librespot_core::spotify_id::SpotifyId;
use librespot_core::token::Token;
use librespot_playback::mixer::Mixer;
use librespot_playback::player::{Player, PlayerEvent as LibrespotPlayerEvent};
@@ -98,14 +98,14 @@ impl Worker {
tokio::select! {
cmd = self.commands.next() => match cmd {
Some(WorkerCommand::Load(playable, start_playing, position_ms)) => {
match SpotifyId::from_uri(&playable.uri()) {
Ok(id) => {
info!("player loading track: {id:?}");
if !id.is_playable() {
match SpotifyUri::from_uri(&playable.uri()) {
Ok(uri) => {
info!("player loading track: {uri:?}");
if !uri.is_playable() {
warn!("track is not playable");
self.events.send(Event::Player(PlayerEvent::FinishedTrack));
} else {
self.player.load(id, start_playing, position_ms);
self.player.load(uri, start_playing, position_ms);
}
}
Err(e) => {
@@ -133,9 +133,9 @@ impl Worker {
self.token_task = Box::pin(Self::get_token(self.session.clone(), sender));
}
Some(WorkerCommand::Preload(playable)) => {
if let Ok(id) = SpotifyId::from_uri(&playable.uri()) {
debug!("Preloading {id:?}");
self.player.preload(id);
if let Ok(uri) = SpotifyUri::from_uri(&playable.uri()) {
debug!("Preloading {uri:?}");
self.player.preload(uri);
}
}
Some(WorkerCommand::Shutdown) => {

View File

@@ -10,8 +10,8 @@ repository.workspace = true
[dependencies]
clap_mangen = "0.2.29"
clap_complete = "4.5.58"
clap = "4.5.48"
clap_complete = "4.5.61"
clap = "4.5.53"
[dependencies.ncspot]
default-features = false