From 58f2b875fa68ba33b8b5a70ebf551eee48ddc81a Mon Sep 17 00:00:00 2001 From: RemixDev Date: Tue, 21 Sep 2021 18:32:20 +0200 Subject: [PATCH] Made spotipy an optional dependency --- deemix/__main__.py | 16 ++++++++++------ setup.py | 5 ++++- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/deemix/__main__.py b/deemix/__main__.py index 6f0ac7c..5c9a92c 100644 --- a/deemix/__main__.py +++ b/deemix/__main__.py @@ -11,7 +11,10 @@ from deemix.utils import getBitrateNumberFromText, formatListener import deemix.utils.localpaths as localpaths from deemix.downloader import Downloader from deemix.itemgen import GenerationError -from deemix.plugins.spotify import Spotify +try: + from deemix.plugins.spotify import Spotify +except ImportError: + Spotify = None class LogListener: @classmethod @@ -48,10 +51,12 @@ def download(url, bitrate, portable, path): with open(configFolder / '.arl', 'w') as f: f.write(arl) - plugins = { - "spotify": Spotify(configFolder=configFolder) - } - plugins["spotify"].setup() + plugins = {} + if Spotify: + plugins = { + "spotify": Spotify(configFolder=configFolder) + } + plugins["spotify"].setup() def downloadLinks(url, bitrate=None): if not bitrate: bitrate = settings.get("maxBitrate", TrackFormats.MP3_320) @@ -77,7 +82,6 @@ def download(url, bitrate, portable, path): downloadObjects.append(downloadObject) for obj in downloadObjects: - print(obj.__type__) if obj.__type__ == "Convertable": obj = plugins[obj.plugin].convert(dz, obj, settings, listener) Downloader(dz, obj, settings, listener).start() diff --git a/setup.py b/setup.py index cf891ba..a521487 100644 --- a/setup.py +++ b/setup.py @@ -23,7 +23,10 @@ setup( python_requires='>=3.7', packages=find_packages(exclude=("tests",)), include_package_data=True, - install_requires=["click", "pycryptodomex", "mutagen", "requests", "spotipy>=2.11.0", "deezer-py>=1.1.2"], + install_requires=["click", "pycryptodomex", "mutagen", "requests", "deezer-py>=1.2.2"], + extras_require={ + "spotify": ["spotipy>=2.11.0"] + }, entry_points={ "console_scripts": [ "deemix=deemix.__main__:download",