diff --git a/devine/core/tracks/subtitle.py b/devine/core/tracks/subtitle.py index 6ab4d02..036dc10 100644 --- a/devine/core/tracks/subtitle.py +++ b/devine/core/tracks/subtitle.py @@ -214,7 +214,7 @@ class Subtitle(Track): output_path.write_text(subtitle_text, encoding="utf8") - self.swap(output_path) + self.path = output_path self.codec = codec if callable(self.OnConverted): diff --git a/devine/core/tracks/track.py b/devine/core/tracks/track.py index 2025d7d..33d8188 100644 --- a/devine/core/tracks/track.py +++ b/devine/core/tracks/track.py @@ -299,8 +299,7 @@ class Track: else: raise - self.swap(output_path) - self.move(original_path) + self.path = output_path def move(self, target: Union[Path, str]) -> bool: """ @@ -330,34 +329,5 @@ class Track: return success - def swap(self, target: Union[Path, str]) -> bool: - """ - Delete the Track's file and swap to the Target file. - - Raises: - TypeError: If the target argument is not the expected type. - OSError: If the file somehow failed to move. - - Returns True if the swap succeeded, or False if the track is not yet downloaded, - or the target path does not exist. - """ - if not isinstance(target, (str, Path)): - raise TypeError(f"Expected {target} to be a {Path} or {str}, not {type(target)}") - - target = Path(target) - - if not target.exists() or not self.path: - return False - - self.path.unlink() - - moved_to = Path(shutil.move(target, self.path)) - success = moved_to.resolve() == self.path.resolve() - - if not success: - return False - - return self.move(target) - __all__ = ("Track",) diff --git a/devine/core/tracks/video.py b/devine/core/tracks/video.py index c7cacc5..b3728c8 100644 --- a/devine/core/tracks/video.py +++ b/devine/core/tracks/video.py @@ -200,8 +200,7 @@ class Video(Track): str(output_path) ], check=True) - self.swap(output_path) - self.move(original_path) + self.path = output_path def ccextractor( self, track_id: Any, out_path: Union[Path, str], language: Language, original: bool = False @@ -335,7 +334,7 @@ class Video(Track): log.info(" + Removed") - self.swap(cleaned_path) + self.path = cleaned_path return True