From fe4f6dd6b885a374381d8e6ec8b62419964dd5e2 Mon Sep 17 00:00:00 2001 From: tcely Date: Sat, 25 Jan 2025 22:26:39 -0500 Subject: [PATCH 1/3] DRY {JSON,nfo,thumb}name functions --- tubesync/sync/models.py | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/tubesync/sync/models.py b/tubesync/sync/models.py index b5d7be06..9008a708 100644 --- a/tubesync/sync/models.py +++ b/tubesync/sync/models.py @@ -1302,13 +1302,18 @@ class Media(models.Model): def filepath(self): return self.source.directory_path / self.filename - @property - def thumbname(self): + def filename_prefix(self): if self.downloaded and self.media_file: - filename = self.media_file.path + mf_path = Path(self.media_file.path) + filename = str(mf_path.relative_to(self.source.directory_path)) else: filename = self.filename - prefix, ext = os.path.splitext(os.path.basename(filename)) + prefix, ext = os.path.splitext(filename) + return prefix + + @property + def thumbname(self): + prefix = self.filename_prefix() return f'{prefix}.jpg' @property @@ -1317,11 +1322,7 @@ class Media(models.Model): @property def nfoname(self): - if self.downloaded and self.media_file: - filename = self.media_file.path - else: - filename = self.filename - prefix, ext = os.path.splitext(os.path.basename(filename)) + prefix = self.filename_prefix() return f'{prefix}.nfo' @property @@ -1330,11 +1331,7 @@ class Media(models.Model): @property def jsonname(self): - if self.downloaded and self.media_file: - filename = self.media_file.path - else: - filename = self.filename - prefix, ext = os.path.splitext(os.path.basename(filename)) + prefix = self.filename_prefix() return f'{prefix}.info.json' @property From 7b1aedf7aea006c98acf0fe75385221e93cefe8c Mon Sep 17 00:00:00 2001 From: tcely Date: Sun, 26 Jan 2025 07:11:30 -0500 Subject: [PATCH 2/3] Put os.path.basename() back Without this the subdirectory from `media_format` is doubled. --- tubesync/sync/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tubesync/sync/models.py b/tubesync/sync/models.py index 9008a708..72ea2cd8 100644 --- a/tubesync/sync/models.py +++ b/tubesync/sync/models.py @@ -1308,7 +1308,7 @@ class Media(models.Model): filename = str(mf_path.relative_to(self.source.directory_path)) else: filename = self.filename - prefix, ext = os.path.splitext(filename) + prefix, ext = os.path.splitext(os.path.basename(filename)) return prefix @property From bcbafaf8422084a5f7c58d35645547f097dff65b Mon Sep 17 00:00:00 2001 From: tcely Date: Sun, 26 Jan 2025 07:54:14 -0500 Subject: [PATCH 3/3] Remove directory manipulation Added a comment about why these directories aren't matching. --- tubesync/sync/models.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tubesync/sync/models.py b/tubesync/sync/models.py index 72ea2cd8..cfb6ca38 100644 --- a/tubesync/sync/models.py +++ b/tubesync/sync/models.py @@ -1304,10 +1304,12 @@ class Media(models.Model): def filename_prefix(self): if self.downloaded and self.media_file: - mf_path = Path(self.media_file.path) - filename = str(mf_path.relative_to(self.source.directory_path)) + filename = self.media_file.path else: filename = self.filename + # The returned prefix should not contain any directories. + # So, we do not care about the different directories + # used for filename in the cases above. prefix, ext = os.path.splitext(os.path.basename(filename)) return prefix