Commit Graph

48 Commits

Author SHA1 Message Date
Tomas Guinzburg
e5e4c97431 fix(deps): bump librespot to 0.7.0 (#1687)
* fix(deps): bump librespot to 0.7.0

* Bumps librespot to 0.7.0
* Changes worker authentication to use login5
* Solves minor API changes
* Adds alsa-lib to nix shell

* fix(ci): add libasound2 build dependency

* docs: updates changelog

* fix: Don't build with Rodio backend by default

Allow users to explicitly specify Librespot audio backend. This way we can also
drop the ALSA dependencies again.

---------

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2025-08-25 15:47:39 +02:00
Henrik Friedrichsen
fbd3a574a3 chore: Release prep for 1.3.0 2025-07-08 10:20:15 +02:00
dependabot[bot]
715701af8f chore(deps): bump the cargo group with 3 updates (#1664)
* chore(deps): bump the cargo group with 3 updates

---
updated-dependencies:
- dependency-name: reqwest
  dependency-version: 0.12.22
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo
- dependency-name: tokio
  dependency-version: 1.46.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo
- dependency-name: rspotify
  dependency-version: 0.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo
...

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

* doc: Update CHANGELOG

Latest rspotify fixes problem with unknown playable types: ramsayleung/rspotify#531

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2025-07-07 11:14:48 +02:00
Elias Assaf
128ca7cb2e feat(auth): Automatically find free port
* feat: add auth_port configuration option

Signed-off-by: Elias Assaf <elyas51000@gmail.com>

* feat(auth): Automatically find free port

---------

Signed-off-by: Elias Assaf <elyas51000@gmail.com>
Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2025-07-04 13:56:54 +02:00
Henrik Friedrichsen
6ffaf3bd22 fix: Do not crash due to unavailable tracks in queue
* fix: Do not crash due to unavailable tracks in queue

Fixes #1616

* fix: Also use checked multiplication to prevent overflow
2025-06-08 22:55:55 +02:00
Henrik Friedrichsen
46eb9dc1dd fix: Switch command line fg/bg colors 2025-06-08 22:29:32 +02:00
Mario
6dc129e483 fix(queue): Don't freeze on item double click
* fix ui freezing in queue when clicking on selected item

* update changelog

* fix clippy error
2025-05-22 21:15:55 +02:00
Henrik Friedrichsen
e3e75f7a17 fix: Skip unplayable tracks
I think this worked before but must have regressed. The value `is_playable` was
not taken into account and instead overshadowed by a dummy method.

Fixes #1552
2025-03-16 12:13:47 +01:00
Henrik Friedrichsen
cb9e6d0424 chore: Bump version to 1.2.2 2025-01-31 20:26:30 +01:00
Henrik Friedrichsen
05a985cfe3 feat(ci): Lint + Build for aarch64 (#1581)
* feat(ci): Lint for aarch64

* feat(cd): Build release for aarch64

* doc: Update CHANGELOG
2025-01-23 20:15:21 +01:00
Thomas Frans
fa7b69804b docs: add missing password manager removal to changelog (#1572)
As this is a breaking change, it should definitely be represented in the
changelog, which is the primary source of information about any
user-facing changes.
2024-12-30 16:20:20 +01:00
e5
75d6b946f7 feat: add %artist formatting option
* add %artist formating option to only show one artist

* add %artist formatting option to only show one artist + docs

* punctuation.
2024-12-29 22:07:12 +01:00
Henrik Friedrichsen
84f63eb8ce fix(auth): Switch back to Spotify client ID (#1560)
* Revert "feat(auth): use ncspot client id for HTTP requests"

This reverts commit fa298f4f44.

Fixes #1547

* chore: Update CHANGELOG
2024-12-07 15:03:32 +01:00
Thomas Frans
56b4fab79c fix: missing automatic man page generation for subcommands
The main man page would point to man pages for subcommands, which
weren't created automatically by the man page xtask.
2024-11-09 10:04:38 +01:00
Henrik Friedrichsen
a3b7b65c30 chore: Prepare for release of 1.2.1 2024-10-31 17:34:33 +01:00
Anton Nyström
6dc1229718 fix: Add mut to fix incorrect get of windowsize in cover 2024-10-29 12:19:47 +01:00
Henrik Friedrichsen
9a3b3a098c chore: Prepare for release 2024-10-15 21:29:20 +02:00
Henrik Friedrichsen
947c0a44d9 doc: Update CHANGELOG 2024-10-15 21:10:55 +02:00
elParaguayo
40644e1de1 feat(mpris): Emit Seeked signal
* Add Seeked signal to Mpris interface

The Mpris2 spec includes a `Seeked` signal which should be fired when
the track position changes in an unexpected way i.e. when the user
seeks to a different part of the track.

This PR implements this signal on seek events and also when a new track
begins. The latter is not strictly required but has been observed in
other players (e.g. VLC).

Closes #1492

* chore: Use `send_mpris()` and `Duration` for conversion

* doc: Update CHANGELOG

---------

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2024-09-21 09:55:10 +00:00
Henrik Friedrichsen
8eb7d1d42a doc: Update CHANGELOG 2024-09-19 20:46:17 +02:00
Thomas Frans
3270c515a9 docs: fix incorrect and broken links in CHANGELOG.md (#1482)
* docs: fix incorrect and broken links in `CHANGELOG.md`

* fix: Remove duplicate entry

---------

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2024-07-16 21:55:23 +02:00
Henrik Friedrichsen
2eb95daf28 docs: Update changelog 2024-07-16 21:39:13 +02:00
Jérôme Lécuyer
2547a4f723 docs: Rename ap-port option as ap_port (#1477)
* docs: Rename `ap-port` option as `ap_port`

The option is named `ap-port` in librespot.

The option is named [`ap_port` in ConfigValues](9624c03264/src/config.rs (L105)).

In ncspot/config.toml
`ap-port = 443` does nothing, librespot uses port 4070
`ap_port = 443` librespot uses HTTPS

* chore(docs): Rename `ap_port` option in CHANGELOG
2024-07-13 11:38:55 +02:00
Bettehem
1ffa03daaf fix: support localized Spotify URLs (#1456)
* fix: support localized Spotify URLs

* Update changelog and format using cargo fmt
2024-05-17 21:01:06 +02:00
Henrik Friedrichsen
9b54ace100 chore: Prepare for 1.1.1 release 2024-05-10 15:46:46 +02:00
Henrik Friedrichsen
5358d2faf5 fix: MPRIS not working on GNOME
Would show unknown artist/title before. Fixed upstream via zbus upgrade to 4.2.1.

Fixes #1449

See also:
- dbus2/zbus#765
2024-05-10 15:39:15 +02:00
Thomas Frans
fe009d0486 docs: improve and simplify changelog
Remove implementation details from the changelog as they are provided by
the link in the version title for each release. Also rephrase some
changes to make them more clear.

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2024-04-08 07:52:52 +00:00
Thomas Frans
5cb25fbf56 docs: add Snapcraft installation source
The Snapcraft installation method was removed in the past as the package
disappeared from Snapcraft. It seems to be back and maintained, so it
should be back in the documentation.
2024-04-04 21:57:41 +02:00
Jakub Jirutka
ce300fb720 fix: Use native TLS only
* chore(deps): bump rspotify to 0.13.1

* Use native TLS only, don't mix it with rustls

reqwest uses native TLS, but rspotify with ureq currently uses rustls,
i.e. ncspot bundles rustls and is linked with system TLS library at the
same time.

This has already been fixed in 80da5a877a,
but this commit has been reverted in
aeff120e67 due to a bug in rspotify that
was fixed in 0.13.1 (https://github.com/ramsayleung/rspotify/pull/471).
2024-04-04 15:16:27 +02:00
gilcu3
9624c03264 feat(config): Allow users to set AP port (#1420)
* added support for ap-port conf

* chore: Reindent table

* feat: Only set `ap_port` in session config if supplied by user

* docs: Update CHANGELOG

---------

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2024-03-30 19:03:29 +01:00
cyqsimon
228160608e chore(deps): Bump rspotify to 0.13.0
* Bump rspotify to 0.13.0

Fixes #1384

* Write changelog

* chore: Migrate away from deprecated constructor

---------

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2024-03-09 22:33:54 +01:00
Henrik Friedrichsen
6aa1cd9817 chore: Bump version to 1.1.0 2024-03-05 13:06:15 +01:00
Henrik Friedrichsen
0f1a9ab579 ci: Run tests in CI
* ci: Run tests in CI

Thanks to contributors test coverage is becoming a thing, thus it makes sense to
run tests in CI workflows.

Additionally, switch back to `cargo build` instead of `cargo check`, as the
tests need compilation anyway.

* ci: Enable build for `macos-aarch64`

* fix: Streamline build target names

* fix: Set toolchain target correctly

* ci: Switch to `rustup` over 3rd party action
2024-03-05 11:48:35 +01:00
Henrik Friedrichsen
159bfc4d9c feat(sharing): Switch to arboard crate 2024-03-04 14:12:10 +01:00
Konstantin Sobolev
9a26c58f8e fix: Don't panic when token update fails
* fix a panic when token update fails

sometimes we get an `Err` from `token_rx.recv()`, shouldn't panic in such cases

* chore(docs): Update Changelog

---------

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2024-03-02 17:58:49 +00:00
Thomas Frans
b70df761f7 chore: update changelog 2024-03-01 15:32:11 +01:00
Thomas Frans
5b4a17597d fix(mpris): missing PropertyChanged signal for volume
fix(mpris): missing PropertyChanged signal for volume

Send a `PropertyChanged` signal for the MPRIS volume when the volume
changes inside `ncspot`.
2024-02-19 22:46:00 +01:00
Thomas Frans
38010b4c76 fix: gracefully exit when misconfigured or unavailable audio backend
When the user has an error in their audio backend configuration or
doesn't have audio backends available, gracefully exit instead of
panicking.
2024-02-06 20:39:29 +01:00
Thomas Frans
0eee40e877 fix: crash on Termux due to missing runtime directory
Instead of crashing on Termux, no IPC socket is created. This is a
temporary solution until a suitable runtime directory for the Termux
platform can be found.
2024-01-06 11:35:38 +01:00
Henrik Friedrichsen
92e0852b37 Set version and release date in CHANGELOG 2023-12-16 22:53:07 +01:00
Henrik Friedrichsen
ea36d2d42a Add Git commit hash to version string
Fixes #1348
2023-12-16 18:34:43 +01:00
eulerfan271
a826115907 fix(mpris): can_go_previous should always be true (#1346)
* make can_go_previous always true

* can_go_previous whenever queue is non-empty

* docs: Update CHANGELOG

---------

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2023-12-09 11:51:17 +01:00
Thomas Frans
7a9c8f3a5e fix: allow any value to set MPRIS volume
This fixes a small inconsistency between the MPRIS implementation and
the specification. The specification allows any number when setting the
volume, which have to be clamped to the effectively allowed range in the
application.
https://specifications.freedesktop.org/mpris-spec/2.2/Player_Interface.html#Property:Volume
2023-12-01 16:17:00 +01:00
Thomas Frans
e0373890fe feat: improve configuration file error handling
Cleans up the error messages generated when errors are encountered in
the configuration file. Instead of showing the raw error message, give
clear information about the problem.
2023-11-29 09:44:59 +01:00
Thomas Frans
0cee99ba4c feat: add info command line subcommand (#1330)
* feat: add `info` command line subcommand

Adding an info command allows the documentation to refer to it when
mentioning platform specific information. This gives users a nicer
experience since they don't need to think about how `ncspot` will behave
on their system, but can run `ncspot info` to get that information.

* fix: info command don't create runtime directory

* fix: don't print runtime path on Windows

Windows doesn't use the runtime path so it shouldn't be printed there.

* fix: make `info` command easier to parse

* docs: add back the default configuration directory
2023-11-27 08:43:55 +01:00
Thomas Frans
cd73c24150 docs: formatting fixes 2023-11-19 11:37:55 +01:00
Thomas Frans
fcf68995cb fix!: create IPC socket in user runtime directory (#1313)
Each user has their own runtime directory at `/run/user/<uid>`. Creating
the IPC socket in there makes sure it is cleaned up regardless of
whether `ncspot` exits normally.

BREAKING CHANGE: move IPC socket location
2023-10-28 18:43:33 +02:00
Thomas Frans
2c14883f48 docs: add changelog (#1318)
* docs: add changelog

* Add PR template

* docs: tweak PR template changelog info

* docs: extend the changelog and update it

The changelog was missing some of the unreleased changes. Some more
information was also added from previous versions.

---------

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2023-10-28 17:15:58 +02:00