diff --git a/examples/player.py b/examples/player.py index cd506eb..5d00a27 100644 --- a/examples/player.py +++ b/examples/player.py @@ -1,13 +1,15 @@ +import os +import platform +import re +import subprocess +import time + +import requests + from librespot.audio.decoders import AudioQuality from librespot.core import Session from librespot.metadata import TrackId from librespot.player.codecs import VorbisOnlyAudioQuality -import os -import platform -import re -import requests -import subprocess -import time quality: AudioQuality = AudioQuality.VERY_HIGH session: Session = None diff --git a/librespot/audio/AbsChunkedInputStream.py b/librespot/audio/AbsChunkedInputStream.py index 53efa7e..c730d82 100644 --- a/librespot/audio/AbsChunkedInputStream.py +++ b/librespot/audio/AbsChunkedInputStream.py @@ -1,10 +1,11 @@ -from librespot.audio.HaltListener import HaltListener -from librespot.standard.InputStream import InputStream import math import threading import time import typing +from librespot.audio.HaltListener import HaltListener +from librespot.standard.InputStream import InputStream + class AbsChunkedInputStream(InputStream, HaltListener): preload_ahead: typing.Final[int] = 3 diff --git a/librespot/audio/cdn/CdnFeedHelper.py b/librespot/audio/cdn/CdnFeedHelper.py index 7a4efb0..dbfaf2c 100644 --- a/librespot/audio/cdn/CdnFeedHelper.py +++ b/librespot/audio/cdn/CdnFeedHelper.py @@ -1,13 +1,16 @@ from __future__ import annotations -from librespot.audio import NormalizationData, PlayableContentFeeder, HaltListener -from librespot.common import Utils -from librespot.core import Session -from librespot.proto import Metadata, StorageResolve + import logging import random import time import typing +from librespot.audio import (HaltListener, NormalizationData, + PlayableContentFeeder) +from librespot.common import Utils +from librespot.core import Session +from librespot.proto import Metadata, StorageResolve + class CdnFeedHelper: _LOGGER: logging = logging.getLogger(__name__) diff --git a/librespot/audio/cdn/CdnManager.py b/librespot/audio/cdn/CdnManager.py index c582033..b4917f9 100644 --- a/librespot/audio/cdn/CdnManager.py +++ b/librespot/audio/cdn/CdnManager.py @@ -1,11 +1,5 @@ from __future__ import annotations -from librespot.audio.AbsChunkedInputStream import AbsChunkedInputStream -from librespot.audio import GeneralAudioStream, GeneralWritableStream, StreamId -from librespot.audio.decrypt import AesAudioDecrypt, NoopAudioDecrypt -from librespot.audio.format import SuperAudioFormat -from librespot.audio.storage import ChannelManager -from librespot.common import Utils -from librespot.proto import StorageResolve + import concurrent.futures import logging import math @@ -14,9 +8,17 @@ import time import typing import urllib.parse +from librespot.audio import GeneralAudioStream, GeneralWritableStream, StreamId +from librespot.audio.AbsChunkedInputStream import AbsChunkedInputStream +from librespot.audio.decrypt import AesAudioDecrypt, NoopAudioDecrypt +from librespot.audio.format import SuperAudioFormat +from librespot.audio.storage import ChannelManager +from librespot.common import Utils +from librespot.proto import StorageResolve + if typing.TYPE_CHECKING: - from librespot.audio.HaltListener import HaltListener from librespot.audio.decrypt.AudioDecrypt import AudioDecrypt + from librespot.audio.HaltListener import HaltListener from librespot.cache.CacheManager import CacheManager from librespot.core.Session import Session from librespot.proto import Metadata diff --git a/librespot/core/Session.py b/librespot/core/Session.py index 5bba924..c3ed487 100644 --- a/librespot/core/Session.py +++ b/librespot/core/Session.py @@ -1,13 +1,29 @@ from __future__ import annotations + +import base64 +import json +import logging +import os +import sched +import socket +import struct +import threading +import time +import typing + +import defusedxml.ElementTree +import requests from Crypto.Hash import HMAC, SHA1 from Crypto.PublicKey import RSA from Crypto.Signature import PKCS1_v1_5 + from librespot.audio import AudioKeyManager, PlayableContentFeeder from librespot.audio.cdn import CdnManager from librespot.audio.storage import ChannelManager from librespot.cache import CacheManager from librespot.common.Utils import Utils -from librespot.core import ApResolver, EventService, SearchManager, TokenProvider +from librespot.core import (ApResolver, EventService, SearchManager, + TokenProvider) from librespot.crypto import CipherPair, DiffieHellman, Packet from librespot.dealer import ApiClient, DealerClient from librespot.mercury import MercuryClient, SubListener @@ -15,18 +31,6 @@ from librespot.proto import Authentication, Connect, Keyexchange from librespot.proto.ExplicitContentPubsub import UserAttributesUpdate from librespot.standard import BytesInputStream, Closeable, Proxy from librespot.Version import Version -import base64 -import defusedxml.ElementTree -import json -import logging -import os -import requests -import sched -import socket -import struct -import threading -import time -import typing class Session(Closeable, SubListener, DealerClient.MessageListener):