diff --git a/SpotifyAudioRecorder.py b/SpotifyAudioRecorder.py index ad419430cfc870f58caad13be6e5fbdd72c6fd29..0cb32464d8d4fe63f36238b7f9efeced03c4e3b0 100644 --- a/SpotifyAudioRecorder.py +++ b/SpotifyAudioRecorder.py @@ -63,6 +63,9 @@ class SpotifyAudioRecorder(threading.Thread): if not self._stopEvent.is_set(): self._stopEvent.set() + def is_stopped(self) -> bool: + return self._stopEvent.is_set() + if __name__ == '__main__': recorder = SpotifyAudioRecorder( diff --git a/SpotifyRecorder.py b/SpotifyRecorder.py index 3b6ff2898a3031198db199d047340e0f565b29e2..75aba3b83efbf9ec9a0028bfea37a8e85bf6c59b 100644 --- a/SpotifyRecorder.py +++ b/SpotifyRecorder.py @@ -88,6 +88,7 @@ class SpotifyRecorder: recordedTracks = [] skippedTracks = [] + errorTracks = [] for index, track in enumerate(tracks[:2]): if track['is_local']: # TODO: @@ -100,7 +101,7 @@ class SpotifyRecorder: LOGGER.info(f'Recording track {index + 1}/{len(tracks)}: "{track["track"]["name"]}"...') recorder = None try: - filePath = self.__determine_file_path(index, track) + filePath = self.__determine_file_path(index + 1, track) recorder = SpotifyAudioRecorder(self._audioDeviceName, filePath) recorder.start() @@ -113,12 +114,12 @@ class SpotifyRecorder: recordedTracks.append(track['track']['name']) except Exception as e: LOGGER.error(f'An error occurred while recording track "{track["track"]["name"]}"', exc_info=e) - skippedTracks.append(track['track']['name']) - if recorder is not None and recorder.is_alive(): + errorTracks.append(track['track']['name']) + if recorder is not None and not recorder.is_stopped(): recorder.stop() LOGGER.info('### DONE ###') - LOGGER.info(f'{len(tracks)} tracks, {len(recordedTracks)} recorded, {len(skippedTracks)} skipped') + LOGGER.info(f'{len(tracks)} tracks, {len(recordedTracks)} recorded, {len(skippedTracks)} skipped, {len(errorTracks)} errors') def __determine_file_path(self, index: int, track) -> str: artists = track['track']['artists']