From 2ee635118bfcabe5685bc0fda25f9d8c54ee2884 Mon Sep 17 00:00:00 2001 From: tcely Date: Fri, 20 Dec 2024 02:56:31 -0500 Subject: [PATCH] Added logging to rename_files Also, the fuzzy matching, by key in the filename, begins at the source directory. --- tubesync/sync/models.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/tubesync/sync/models.py b/tubesync/sync/models.py index ca4e79ec..3d25e427 100644 --- a/tubesync/sync/models.py +++ b/tubesync/sync/models.py @@ -14,6 +14,7 @@ from django.core.validators import RegexValidator from django.utils.text import slugify from django.utils import timezone from django.utils.translation import gettext_lazy as _ +from common.logger import log from common.errors import NoFormatException from common.utils import clean_filename, clean_emoji from .youtube import (get_media_info as get_youtube_media_info, @@ -1525,17 +1526,22 @@ class Media(models.Model): # move video to destination mkdir_p(new_video_path.parent) + log.debug(f'{self!s}: {old_video_path!s} => {new_video_path!s}') old_video_path.rename(new_video_path) + log.info(f'Renamed video file for: {self!s}') # collect the list of files to move # this should not include the video we just moved (old_prefix_path, old_stem) = directory_and_stem(old_video_path) other_paths = list(old_prefix_path.glob(glob_quote(old_stem) + '*')) + log.info(f'Collected {len(other_paths)} other paths for: {self!s}') # adopt orphaned files, if possible media_format = str(self.source.media_format) + top_dir_path = Path(self.source.directory_path) if '{key}' in media_format: - fuzzy_paths = list(old_prefix_path.glob('*' + glob_quote(str(self.key)) + '*')) + fuzzy_paths = list(top_dir_path.rglob('*' + glob_quote(str(self.key)) + '*')) + log.info(f'Collected {len(fuzzy_paths)} fuzzy paths for: {self!s}') if new_video_path.exists(): new_video_path = new_video_path.resolve(strict=True) @@ -1544,6 +1550,7 @@ class Media(models.Model): self.media_file.name = str(new_video_path.relative_to(media_file_storage.location)) self.save(update_fields={'media_file'}) self.refresh_from_db(fields={'media_file'}) + log.info(f'Updated "media_file" in the database for: {self!s}') (new_prefix_path, new_stem) = directory_and_stem(new_video_path) @@ -1552,28 +1559,34 @@ class Media(models.Model): old_file_str = other_path.name new_file_str = new_stem + old_file_str[len(old_stem):] new_file_path = Path(new_prefix_path / new_file_str) + log.debug(f'Considering replace for: {self!s}\n\t{other_path!s}\n\t{new_file_path!s}') # it should exist, but check anyway if other_path.exists(): + log.debug(f'{self!s}: {other_path!s} => {new_file_path!s}') other_path.replace(new_file_path) for fuzzy_path in fuzzy_paths: (fuzzy_prefix_path, fuzzy_stem) = directory_and_stem(fuzzy_path) old_file_str = fuzzy_path.name new_file_str = new_stem + old_file_str[len(fuzzy_stem):] - new_file_path = Path(new_prefix_path / new_file_str) + new_file_path = Path(new_prefix_path / new_file_str) + log.debug(f'Considering rename for: {self!s}\n\t{fuzzy_path!s}\n\t{new_file_path!s}') # it quite possibly was renamed already if fuzzy_path.exists() and not new_file_path.exists(): + log.debug(f'{self!s}: {fuzzy_path!s} => {new_file_path!s}') fuzzy_path.rename(new_file_path) # The thumbpath inside the .nfo file may have changed if self.source.write_nfo and self.source.copy_thumbnails: write_text_file(new_prefix_path / self.nfopath.name, self.nfoxml) + log.info(f'Wrote new ".nfo" file for: {self!s}') # try to remove empty dirs parent_dir = old_video_path.parent try: while parent_dir.is_dir(): parent_dir.rmdir() + log.info(f'Removed empty directory: {parent_dir!s}') parent_dir = parent_dir.parent except OSError as e: pass