1
0
mirror of https://github.com/moparisthebest/SickRage synced 2024-12-04 15:12:23 -05:00

Merge pull request #1231 from TagForce/Fix#358

Fix for issue 358 (filename-thumb.jpg not renaming)
This commit is contained in:
Alexandre Beloin 2015-02-15 18:16:17 -05:00
commit d71d580030
2 changed files with 22 additions and 6 deletions

View File

@ -19,6 +19,7 @@
from __future__ import with_statement from __future__ import with_statement
import glob import glob
import fnmatch
import os import os
import re import re
import subprocess import subprocess
@ -154,13 +155,19 @@ class PostProcessor(object):
Returns: A list containing all files which are associated to the given file Returns: A list containing all files which are associated to the given file
""" """
def recursive_glob(treeroot, pattern):
results = []
for base, dirs, files in os.walk(treeroot):
goodfiles = fnmatch.filter(files, pattern)
results.extend(os.path.join(base, f) for f in goodfiles)
return results
if not file_path: if not file_path:
return [] return []
file_path_list = [] file_path_list = []
base_name = file_path.rpartition('.')[0] base_name = ek.ek(os.path.basename, file_path).rpartition('.')[0]
if not base_name_only: if not base_name_only:
base_name = base_name + '.' base_name = base_name + '.'
@ -171,8 +178,8 @@ class PostProcessor(object):
# don't confuse glob with chars we didn't mean to use # don't confuse glob with chars we didn't mean to use
base_name = re.sub(r'[\[\]\*\?]', r'[\g<0>]', base_name) base_name = re.sub(r'[\[\]\*\?]', r'[\g<0>]', base_name)
for associated_file_path in ek.ek(glob.glob, base_name + '*'): for associated_file_path in ek.ek(recursive_glob, self.folder_path, base_name + '*'):
# only add associated to list # only add associated to list
if associated_file_path == file_path: if associated_file_path == file_path:
continue continue

View File

@ -2437,7 +2437,7 @@ class TVEpisode(object):
return return
related_files = postProcessor.PostProcessor(self.location).list_associated_files( related_files = postProcessor.PostProcessor(self.location).list_associated_files(
self.location) self.location, base_name_only=True)
if self.show.subtitles and sickbeard.SUBTITLES_DIR != '': if self.show.subtitles and sickbeard.SUBTITLES_DIR != '':
related_subs = postProcessor.PostProcessor(self.location).list_associated_files(sickbeard.SUBTITLES_DIR, related_subs = postProcessor.PostProcessor(self.location).list_associated_files(sickbeard.SUBTITLES_DIR,
@ -2451,8 +2451,17 @@ class TVEpisode(object):
# move related files # move related files
for cur_related_file in related_files: for cur_related_file in related_files:
cur_result = helpers.rename_ep_file(cur_related_file, absolute_proper_path, #We need to fix something here because related files can be in subfolders and the original code doesn't handle this (at all)
absolute_current_path_no_ext_length) cur_related_dir = ek.ek(os.path.dirname, ek.ek(os.path.abspath, cur_related_file))
subfolder = cur_related_dir.replace(ek.ek(os.path.dirname, ek.ek(os.path.abspath, self.location)), '')
#We now have a subfolder. We need to add that to the absolute_proper_path.
#First get the absolute proper-path dir
proper_related_dir = ek.ek(os.path.dirname, ek.ek(os.path.abspath, absolute_proper_path + file_ext))
proper_related_path = absolute_proper_path.replace(proper_related_dir, proper_related_dir + subfolder)
cur_result = helpers.rename_ep_file(cur_related_file, proper_related_path,
absolute_current_path_no_ext_length + len(subfolder))
if not cur_result: if not cur_result:
logger.log(str(self.indexerid) + u": Unable to rename file " + cur_related_file, logger.ERROR) logger.log(str(self.indexerid) + u": Unable to rename file " + cur_related_file, logger.ERROR)