Support Rust librespot credential format in stored_file()
Adds fallback logic to load credentials from Rust librespot's OAuth flow. The stored_file() method now handles both Python and Rust credential formats. Related to #277
This commit is contained in:
@@ -1618,6 +1618,7 @@ class Session(Closeable, MessageListener, SubListener):
|
||||
pass
|
||||
else:
|
||||
try:
|
||||
# Try Python librespot format first
|
||||
self.login_credentials = Authentication.LoginCredentials(
|
||||
typ=Authentication.AuthenticationType.Value(
|
||||
obj["type"]),
|
||||
@@ -1625,7 +1626,15 @@ class Session(Closeable, MessageListener, SubListener):
|
||||
auth_data=base64.b64decode(obj["credentials"]),
|
||||
)
|
||||
except KeyError:
|
||||
pass
|
||||
# Try Rust librespot format (auth_type as int, auth_data instead of credentials)
|
||||
try:
|
||||
self.login_credentials = Authentication.LoginCredentials(
|
||||
typ=obj["auth_type"],
|
||||
username=obj["username"],
|
||||
auth_data=base64.b64decode(obj["auth_data"]),
|
||||
)
|
||||
except KeyError:
|
||||
pass
|
||||
return self
|
||||
|
||||
def oauth(self, oauth_url_callback) -> Session.Builder:
|
||||
|
||||
Reference in New Issue
Block a user