From 5358d6f8eeb6b4d513dab3a145a22a9cef282cc5 Mon Sep 17 00:00:00 2001 From: mockuser404 <53865090+mockuser404@users.noreply.github.com> Date: Wed, 27 Oct 2021 12:55:27 +0530 Subject: [PATCH 1/2] fix podcast existing episodes not skipping Skip if existing episodes. --- zspotify/podcast.py | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/zspotify/podcast.py b/zspotify/podcast.py index 4b0b3b60..437e769e 100644 --- a/zspotify/podcast.py +++ b/zspotify/podcast.py @@ -5,11 +5,11 @@ from librespot.audio.decoders import VorbisOnlyAudioQuality from librespot.metadata import EpisodeId from tqdm import tqdm -from const import NAME, ERROR, SHOW, ITEMS, ID, ROOT_PODCAST_PATH, CHUNK_SIZE -from utils import sanitize_data, create_download_directory, MusicFormat +from const import (CHUNK_SIZE, ERROR, ID, ITEMS, NAME, ROOT_PODCAST_PATH, SHOW, + SKIP_EXISTING_FILES) +from utils import MusicFormat, create_download_directory, sanitize_data from zspotify import ZSpotify - EPISODE_INFO_URL = 'https://api.spotify.com/v1/episodes' SHOWS_URL = 'https://api.spotify.com/v1/shows' @@ -55,16 +55,32 @@ def download_episode(episode_id) -> None: ZSpotify.get_config(ROOT_PODCAST_PATH), extra_paths, ) + download_directory = os.path.realpath(download_directory) create_download_directory(download_directory) total_size = stream.input_stream.size - with open(os.path.join(download_directory, f"{filename}.ogg"), - 'wb') as file, tqdm( - desc=filename, - total=total_size, - unit='B', - unit_scale=True, - unit_divisor=1024 + + filepath = os.path.join(download_directory, f"{filename}.ogg") + if ( + os.path.isfile(filepath) + and os.path.getsize(filepath) == total_size + and ZSpotify.get_config(SKIP_EXISTING_FILES) + ): + print( + "\n### SKIPPING:", + podcast_name, + "-", + episode_name, + "(EPISODE ALREADY EXISTS) ###", + ) + return + + with open(filepath, 'wb') as file, tqdm( + desc=filename, + total=total_size, + unit='B', + unit_scale=True, + unit_divisor=1024 ) as bar: for _ in range(int(total_size / ZSpotify.get_config(CHUNK_SIZE)) + 1): bar.update(file.write( From 8e77cea4d1361b2490369194378a44db5f31841d Mon Sep 17 00:00:00 2001 From: mockuser404 <53865090+mockuser404@users.noreply.github.com> Date: Wed, 27 Oct 2021 12:58:14 +0530 Subject: [PATCH 2/2] Update podcast.py --- zspotify/podcast.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zspotify/podcast.py b/zspotify/podcast.py index 437e769e..03bc7b35 100644 --- a/zspotify/podcast.py +++ b/zspotify/podcast.py @@ -7,7 +7,7 @@ from tqdm import tqdm from const import (CHUNK_SIZE, ERROR, ID, ITEMS, NAME, ROOT_PODCAST_PATH, SHOW, SKIP_EXISTING_FILES) -from utils import MusicFormat, create_download_directory, sanitize_data +from utils import create_download_directory, sanitize_data from zspotify import ZSpotify EPISODE_INFO_URL = 'https://api.spotify.com/v1/episodes'