Commit graph

1957 commits

Author SHA1 Message Date
dnlmlr
131310b920
Fix panic in ApResolver::resolve (#1038)
- Fixed resolve function panicking when resolving endpoint type with no
  AP in the list
- Fixed fallback APs not being applied when only some of the AP types
  were missing
- Switch container type from `Vec` to `VecDeque` for the `AccessPoints`
- Remove the note about fallback AP being used even if the port is not
  matching the configured `ap_port`
2022-08-03 20:01:03 +02:00
Daniel M
176a47f10f Return iterators instead of collected vecs
- Change the return type of metadata convenience iter functions to
  actual iterators instead of allocated collections
- The iterator item type is set to be a reference
2022-08-03 16:43:30 +02:00
Roderick van Domburg
cdf84925ad
Add client-token header to spclient requests
- Also fix an overflow panic when a token cannot be parsed.

- Getting tokens always requires the keymaster client ID;
  passing the actual client ID yields a HashCash challenge.
2022-08-02 23:06:02 +02:00
Roderick van Domburg
2a79af1f0a
Migrate to Rust 2021 2022-08-02 21:42:38 +02:00
Roderick van Domburg
ebfe8ca36c
Merge pull request #1037 from dnlmlr/metadata-wrappers-deref-mut
Implement `DerefMut` for wrapper types in metadata
2022-08-02 20:27:45 +02:00
Daniel M
0c69126065 Rename from_repeated_* functions to impl_*
- `from_repeated_message` -> `impl_from_repeated`
- `from_repeated_enum` -> `impl_from_repeated_copy` since the enum
  references were just simply deref copied
- `try_from_repeated_message` -> `impl_try_from_repeated`
- Simplified the implementation of `from_repeated_enum`
2022-08-02 14:21:07 +02:00
Daniel M
a7fa0e2299 Implement DerefMut for wrapper types in metadata
- Change the `Deref` implementations for metadata wrapper types to use a
  new `impl_deref_wrapped` macro
- The macro implements `Deref` and `DerefMut`
2022-08-02 12:45:37 +02:00
dnlmlr
e5092c84fd
Implement additional metadata for Artist (#1036)
- Added `*-current()` functions to `Artist` to get the list of current
  versions / releases of each album
- This is useful since the `AlbumGroups` can contain multiple versions
  / releases of the same album
2022-08-02 11:43:48 +02:00
Roderick van Domburg
8ffaf7cb8d
Document crate and changelog updates 2022-08-01 23:14:21 +02:00
Roderick van Domburg
2bce489159
Create SECURITY.md 2022-08-01 22:46:05 +02:00
Roderick van Domburg
355c3b06eb
Update issue templates 2022-08-01 22:18:44 +02:00
Roderick van Domburg
4980650b3d
Merge pull request #1018 from eladyn/more_metadata
Include more metadata in Track struct
2022-08-01 21:49:43 +02:00
Roderick van Domburg
d1be8362ed
Merge pull request #1034 from sqozz/min_rust
Add MSRV to package manifests
2022-08-01 21:47:40 +02:00
sqozz
d09ee4206c Add minimum rust version 2022-08-01 15:14:17 +02:00
Roderick van Domburg
9f0185eb42
Merge branch 'dev' into more_metadata 2022-08-01 11:29:52 +02:00
Roderick van Domburg
ff6789a666
Merge pull request #1032 from michaelherger/update-test-matrix
Fix #1031 - Remove `new-api` branch from test matrix
2022-08-01 11:26:55 +02:00
Michael Herger
65b9289c4d Fix #1031 - Remove new-api branch from test matrix 2022-08-01 11:14:14 +02:00
Roderick van Domburg
0d288d5363
Merge pull request #1030 from dnlmlr/metadata-derive-default-on-listwrappers
Implement Default trait for vec / hashmap wrappers in metadata
2022-08-01 10:51:27 +02:00
Daniel M
e7348db17c Default for vec / hashmap wrappers in metadata
- Derive `Default` trait for the vec / hashmap wrapper types in
  `librespot-metadata`
- The wrapped types (`Vec` / `Hashmap`) implement Default, so the
  wrapper types should as well
2022-08-01 00:44:43 +02:00
eladyn
c0fc35fd18
Include more metadata in track struct
Based on changes from @capnfabs.
2022-07-31 11:56:14 +02:00
Roderick van Domburg
e9f3b6d290
Catch-up changelog 2022-07-31 00:04:08 +02:00
Roderick van Domburg
5344258ba9
Relax some non-fatal events to WARN level
Fixes #1029
2022-07-30 22:39:05 +02:00
Roderick van Domburg
786f8832d1
Update version numbers to 0.5.0-dev 2022-07-30 22:28:12 +02:00
Roderick van Domburg
37794c5b78
Merge branch 'new-api' into dev 2022-07-29 23:39:06 +02:00
Roderick van Domburg
c74dc250d9
Update MSRV to 1.57 2022-07-29 23:17:10 +02:00
Roderick van Domburg
6537c441c3
Update Cargo.lock 2022-07-29 22:05:10 +02:00
Roderick van Domburg
91c06efda3
Fix publish script on Linux 2022-07-29 22:01:22 +02:00
Roderick van Domburg
38bebc242a
Prepare for 0.4.2 release 2022-07-29 21:34:01 +02:00
Roderick van Domburg
87ea69b457
Blacklist ap-gue1.spotify.com access point 2022-07-29 21:30:27 +02:00
Roderick van Domburg
9e06b11609
Update MSRV to 1.61 and fix test 2022-07-28 19:32:11 +02:00
Roderick van Domburg
6b11fb5cee
Update MSRV to 1.60 2022-07-28 19:11:29 +02:00
Art M. Gallagher
4ec38ca193
related project: snapcast (#1023)
include a mention in the README of the snapcast project that uses librespot for Spotify sources
2022-07-28 19:11:28 +02:00
Roderick van Domburg
7bd9186e94
Blacklist ap-gew4 access point (#1026) 2022-07-28 18:51:49 +02:00
Roderick van Domburg
5e60e75282
Add lockfile 2022-07-28 18:48:26 +02:00
eladyn
88f7cdbb44
Fix playlist metadata fields parsing (#1019)
Some fields were wrongly parsed as `SpotifyId`s, although they do not
always encode exactly 16 bytes in practice. Also, some optional fields
caused `[]` to be parsed as `SpotifyId`, which obviously failed as well.
2022-07-28 18:46:16 +02:00
Art M. Gallagher
e37fe22195
related project: snapcast (#1023)
include a mention in the README of the snapcast project that uses librespot for Spotify sources
2022-07-28 12:25:41 +02:00
Roderick van Domburg
05b9b13cf8
Merge branch 'dev' into new-api and update crates 2022-07-27 23:31:11 +02:00
Roderick van Domburg
005e556730
Merge pull request #1024 from JasonLG1979/update-changelog
Update Changelog
2022-07-26 20:33:42 +02:00
JasonLG1979
582fdebadd Update Changelog
This should update the changelog for my last 3 PR's.
2022-07-20 20:27:45 -05:00
Roderick van Domburg
9385dc840f
Merge pull request #1014 from JasonLG1979/improve-subprocess-backend
Improve the subprocess backend
2022-07-18 22:21:12 +02:00
Roderick van Domburg
80020616fc
Merge pull request #1020 from JasonLG1979/improve-pipe-backend
Improve pipe backend
2022-07-18 22:11:17 +02:00
JasonLG1979
2532687cc6 Improve pipe backend
* Implement stop
* Better error handling
2022-06-30 21:57:23 -05:00
Jason Gray
9b2490e4e1
Merge branch 'librespot-org:dev' into improve-subprocess-backend 2022-06-30 21:33:47 -05:00
Roderick van Domburg
179cedaebe
Merge pull request #1015 from JasonLG1979/fix-v-with-equal
Fix --opt=value line argument logging
2022-06-25 09:29:10 +02:00
JasonLG1979
0db17973a1 Fix --opt=value line argument logging
Fixes https://github.com/librespot-org/librespot/issues/1011
2022-06-25 00:17:36 -05:00
Roderick van Domburg
cbba7abd38
Merge pull request #1013 from JasonLG1979/minor-alsa-tweaks
Minor alsa backend tweaks
2022-06-24 23:17:43 +02:00
JasonLG1979
0d4367fca2 Improve the subprocess backend
Better error handling.

Move the checking of the shell command to start so a proper error can be thrown if it's None.

Use write instead of write_all for finer grained error handling and the ability to attempt a restart on write errors.

Use try_wait to skip flushing and killing the process if it's already dead.

Stop the player on shutdown to *mostly* prevent write errors from spamming the logs during shutdown. Previously Ctrl+c always resulted in a write error.
2022-06-20 17:19:31 -05:00
JasonLG1979
5a10a963ff Minor alsa backend tweaks
Silence a clippy warning and we don't need `std::cmp::min` when `usize` already has `min`.
2022-06-18 09:08:04 -05:00
Roderick van Domburg
95dc9f8411
Merge pull request #1009 from JasonLG1979/fix-fixed
Fix fixed volume with hardware mixer
2022-06-10 23:45:36 +02:00
JasonLG1979
e4deb5ddcd Fix fixed volume with hardware mixer.
fixes https://github.com/librespot-org/librespot/issues/1008
2022-06-09 16:34:42 -05:00