From c571435f9c22129c3663b738ca7b577ee05eec97 Mon Sep 17 00:00:00 2001 From: pukkandan Date: Sat, 23 Jan 2021 20:55:45 +0530 Subject: [PATCH] [MoveFiles] More robust way to get final filename :ci skip dl --- youtube_dlc/YoutubeDL.py | 4 +--- youtube_dlc/postprocessor/movefilesafterdownload.py | 13 +++++++------ 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/youtube_dlc/YoutubeDL.py b/youtube_dlc/YoutubeDL.py index 42e0234a0b..b45b1bbbad 100644 --- a/youtube_dlc/YoutubeDL.py +++ b/youtube_dlc/YoutubeDL.py @@ -2252,10 +2252,8 @@ def correct_ext(filename): success, real_download = dl(temp_filename, info_dict) info_dict['__real_download'] = real_download - # info_dict['__temp_filename'] = temp_filename dl_filename = dl_filename or temp_filename - info_dict['__dl_filename'] = dl_filename - info_dict['__final_filename'] = full_filename + info_dict['__finaldir'] = os.path.dirname(os.path.abspath(encodeFilename(full_filename))) except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err: self.report_error('unable to download video data: %s' % error_to_compat_str(err)) diff --git a/youtube_dlc/postprocessor/movefilesafterdownload.py b/youtube_dlc/postprocessor/movefilesafterdownload.py index 3f7f529a93..4146a9549c 100644 --- a/youtube_dlc/postprocessor/movefilesafterdownload.py +++ b/youtube_dlc/postprocessor/movefilesafterdownload.py @@ -22,17 +22,18 @@ def pp_key(cls): return 'MoveFiles' def run(self, info): - if info.get('__dl_filename') is None: - return [], info - self.files_to_move.setdefault(info['__dl_filename'], '') - outdir = os.path.dirname(os.path.abspath(encodeFilename(info['__final_filename']))) + dl_path, dl_name = os.path.split(encodeFilename(info['filepath'])) + finaldir = info.get('__finaldir', dl_path) + finalpath = os.path.join(finaldir, dl_name) + self.files_to_move[info['filepath']] = finalpath for oldfile, newfile in self.files_to_move.items(): if not os.path.exists(encodeFilename(oldfile)): self.report_warning('File "%s" cannot be found' % oldfile) continue if not newfile: - newfile = compat_str(os.path.join(outdir, os.path.basename(encodeFilename(oldfile)))) + newfile = os.path.join(finaldir, os.path.basename(encodeFilename(oldfile))) + oldfile, newfile = compat_str(oldfile), compat_str(newfile) if os.path.abspath(encodeFilename(oldfile)) == os.path.abspath(encodeFilename(newfile)): continue if os.path.exists(encodeFilename(newfile)): @@ -48,5 +49,5 @@ def run(self, info): self.to_screen('Moving file "%s" to "%s"' % (oldfile, newfile)) shutil.move(oldfile, newfile) # os.rename cannot move between volumes - info['filepath'] = info['__final_filename'] + info['filepath'] = compat_str(finalpath) return [], info