Commit graph

1971 commits

Author SHA1 Message Date
Roderick van Domburg
27e1274dcb
Merge pull request #1042 from dnlmlr/core-keep-hyper-client
Keep using the same `hyper` client
2022-08-15 12:28:30 +02:00
Roderick van Domburg
d899da5f8f
Merge pull request #1044 from felixstorm/fix-armv6hp
Fix armv6hp Builds (RPI 1 & Zero)
2022-08-15 12:26:33 +02:00
Felix Storm
a08efbc2f6 fix contrib/docker-build-pi-armv6hf.sh 2022-08-12 17:42:03 +02:00
Roderick van Domburg
a46df1d380
Merge pull request #1043 from JasonLG1979/update-raspotify-desc
Update raspotify description
2022-08-06 08:09:53 +02:00
JasonLG1979
411e95a7f8 Update raspotify description 2022-08-05 12:09:41 -05:00
Daniel M
b588d9fd07 Keep using the same hyper client
- Keep using the same hyper client instead of building a new one for
  each request
- This allows the client to reuse connections and improves the
  performance of multiple requests by almost 2x.
- The playlist_tracks example takes 38 secs before and 20 secs after the
  change to enumerate a 180 track playlist
- To avoid carrying the hyper Client generics through the whole project,
  `ProxyConnector` is always used as the Connector, but disabled when
  not using a proxy.
- The client creation is done lazily to keep the `HttpClient::new`
  without a `Result` return type
2022-08-04 18:37:32 +02:00
Roderick van Domburg
35f633c93a
Merge pull request #1041 from dnlmlr/fix-get-playlist
Fix `SpClient::get_playlist` endpoint generation
2022-08-04 07:05:48 +02:00
Daniel M
f55bdbb962 Fix SpClient::get_playlist endpoint generation 2022-08-04 00:09:30 +02:00
Roderick van Domburg
d88a20929f
Playlist ID should be Base62 encoded 2022-08-03 23:21:38 +02:00
Roderick van Domburg
a60d63637d
Fix example 2022-08-03 22:50:21 +02:00
Roderick van Domburg
80f0d3c59b
Pass by reference 2022-08-03 22:26:52 +02:00
Roderick van Domburg
70eb3f9d72
Add more HTTP endpoints and migrate playlist 2022-08-03 21:27:07 +02:00
Roderick van Domburg
922e927231
Merge pull request #1039 from roderickvd/rust-2021-edition
Migrate to Rust 2021
2022-08-03 20:04:31 +02:00
Roderick van Domburg
b2c7b25835
Merge pull request #1040 from dnlmlr/metadata-iterators-instead-of-vecs
Return iterators instead of collected Vecs
2022-08-03 20:02:51 +02:00
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