mirror of
https://github.com/librespot-org/librespot.git
synced 2024-12-18 17:11:53 +00:00
Receive autoplay and other attributes
This commit is contained in:
parent
9a0d2390b7
commit
51b6c46fcd
3 changed files with 17 additions and 8 deletions
|
@ -14,6 +14,7 @@ use crate::protocol;
|
|||
use crate::protocol::keyexchange::{
|
||||
APResponseMessage, ClientHello, ClientResponsePlaintext, Platform, ProductFlags,
|
||||
};
|
||||
use crate::version;
|
||||
|
||||
pub async fn handshake<T: AsyncRead + AsyncWrite + Unpin>(
|
||||
mut connection: T,
|
||||
|
@ -84,13 +85,17 @@ where
|
|||
let mut packet = ClientHello::new();
|
||||
packet
|
||||
.mut_build_info()
|
||||
.set_product(protocol::keyexchange::Product::PRODUCT_LIBSPOTIFY);
|
||||
// ProductInfo won't push autoplay and perhaps other settings
|
||||
// when set to anything else than PRODUCT_CLIENT
|
||||
.set_product(protocol::keyexchange::Product::PRODUCT_CLIENT);
|
||||
packet
|
||||
.mut_build_info()
|
||||
.mut_product_flags()
|
||||
.push(PRODUCT_FLAGS);
|
||||
packet.mut_build_info().set_platform(platform);
|
||||
packet.mut_build_info().set_version(999999999);
|
||||
packet
|
||||
.mut_build_info()
|
||||
.set_version(version::SPOTIFY_VERSION);
|
||||
packet
|
||||
.mut_cryptosuites_supported()
|
||||
.push(protocol::keyexchange::Cryptosuite::CRYPTO_SUITE_SHANNON);
|
||||
|
|
|
@ -9,7 +9,7 @@ use std::env::consts::OS;
|
|||
use thiserror::Error;
|
||||
use url::Url;
|
||||
|
||||
use crate::version;
|
||||
use crate::version::{SPOTIFY_MOBILE_VERSION, SPOTIFY_VERSION, VERSION_STRING};
|
||||
|
||||
pub struct HttpClient {
|
||||
proxy: Option<Url>,
|
||||
|
@ -54,8 +54,8 @@ impl HttpClient {
|
|||
let connector = HttpsConnector::with_native_roots();
|
||||
|
||||
let spotify_version = match OS {
|
||||
"android" | "ios" => "8.6.84",
|
||||
_ => "117300517",
|
||||
"android" | "ios" => SPOTIFY_MOBILE_VERSION.to_owned(),
|
||||
_ => SPOTIFY_VERSION.to_string(),
|
||||
};
|
||||
|
||||
let spotify_platform = match OS {
|
||||
|
@ -72,9 +72,7 @@ impl HttpClient {
|
|||
// Some features like lyrics are version-gated and require an official version string.
|
||||
HeaderValue::from_str(&format!(
|
||||
"Spotify/{} {} ({})",
|
||||
spotify_version,
|
||||
spotify_platform,
|
||||
version::VERSION_STRING
|
||||
spotify_version, spotify_platform, VERSION_STRING
|
||||
))?,
|
||||
);
|
||||
|
||||
|
|
|
@ -15,3 +15,9 @@ pub const SEMVER: &str = env!("CARGO_PKG_VERSION");
|
|||
|
||||
/// A random build id.
|
||||
pub const BUILD_ID: &str = env!("LIBRESPOT_BUILD_ID");
|
||||
|
||||
/// The protocol version of the Spotify desktop client.
|
||||
pub const SPOTIFY_VERSION: u64 = 117300517;
|
||||
|
||||
/// The protocol version of the Spotify mobile app.
|
||||
pub const SPOTIFY_MOBILE_VERSION: &str = "8.6.84";
|
||||
|
|
Loading…
Reference in a new issue