better exception checking. #81 #385 #332

This commit is contained in:
clinton-hall 2014-05-13 22:11:37 +09:30
commit 9b3440e0a5

View file

@ -7,41 +7,43 @@ reverse_list = [r"\.\d{2}e\d{2}s\.", r"\.[pi]0801\.", r"\.p027\.", r"\b[45]62[xh
reverse_pattern = re.compile('|'.join(reverse_list), flags=re.IGNORECASE) reverse_pattern = re.compile('|'.join(reverse_list), flags=re.IGNORECASE)
season_pattern = re.compile(r"(.*\.\d{2}e\d{2}s\.)(.*)", flags=re.IGNORECASE) season_pattern = re.compile(r"(.*\.\d{2}e\d{2}s\.)(.*)", flags=re.IGNORECASE)
word_pattern = re.compile(r"([^A-Z0-9]*[A-Z0-9]+)") word_pattern = re.compile(r"([^A-Z0-9]*[A-Z0-9]+)")
media_list = [r"\.s\d{2}e\d{2}\.", r"\.1080[pi]\.", r"\.720p\.", r"\.[xh]26[45]\b", r"\.bluray\.", r"\.hdtv\.", r"\.web[.-]?dl\.", r"\.[dvd|web|bd|br]rip\."]
media_pattern = re.compile('|'.join(media_list), flags=re.IGNORECASE)
garbage_name = re.compile(r"^[a-zA-Z0-9]*$")
char_replace = [[r"(\w)1\.(\w)",r"\1i\2"] char_replace = [[r"(\w)1\.(\w)",r"\1i\2"]
] ]
def process_all_exceptions(name, dirname): def process_all_exceptions(name, dirname):
for filename in listMediaFiles(dirname): for filename in listMediaFiles(dirname):
if reverse_pattern.search(filename) is not None: parentDir = os.path.dirname(filename)
exception = process_reverse head, fileExtension = os.path.splitext(os.path.basename(filename))
parentDir = os.path.dirname(filename) if reverse_pattern.search(head) is not None:
exception(filename, parentDir) exception = reverse_filename
else: elif garbage_name.search(head) is not None:
for group, exception in __customgroups__.items(): exception = replace_filename
if not (group in name or group in dirname or group in filename): else:
continue continue
parentDir = os.path.dirname(filename) exception(filename, parentDir, name)
exception(filename, parentDir)
def process_qoq(filename, dirname): def replace_filename(filename, dirname, name):
logging.debug("Reversing the file name for a QoQ release %s" % (filename), EXCEPTION)
head, fileExtension = os.path.splitext(os.path.basename(filename)) head, fileExtension = os.path.splitext(os.path.basename(filename))
newname = head[::-1] if media_pattern.search(os.path.basename(dirname)) is not None:
newname = os.path.basename(dirname)
logging.debug("Replacing file name %s with directory name %s" % (head, newname), EXCEPTION)
elif media_pattern.search(name) is not None:
newname = name
logging.debug("Replacing file name %s with download name %s" % (head, newname), EXCEPTION)
else:
logging.warning("No name replacement determined for %s" % (head), EXCEPTION)
return
newfile = newname + fileExtension newfile = newname + fileExtension
newfilePath = os.path.join(dirname, newfile) newfilePath = os.path.join(dirname, newfile)
os.rename(filename, newfilePath) try:
logging.debug("New file name is %s" % (newfile), EXCEPTION) os.rename(filename, newfilePath)
except Exception,e:
logging.error("Unable to rename file due to: %s" % (str(e)), EXCEPTION)
def process_eci(filename, dirname): def reverse_filename(filename, dirname, name):
logging.debug("Replacing file name %s with directory name %s an -ECI release" % (filename, os.path.basename(dirname)), EXCEPTION)
head, fileExtension = os.path.splitext(os.path.basename(filename))
newname = os.path.basename(dirname)
newfile = newname + fileExtension
newfilePath = os.path.join(dirname, newfile)
os.rename(filename, newfilePath)
logging.debug("New file name is %s" % (newfile), EXCEPTION)
def process_reverse(filename, dirname):
head, fileExtension = os.path.splitext(os.path.basename(filename)) head, fileExtension = os.path.splitext(os.path.basename(filename))
na_parts = season_pattern.search(head) na_parts = season_pattern.search(head)
if na_parts is not None: if na_parts is not None:
@ -69,5 +71,5 @@ def process_reverse(filename, dirname):
# dict for custom groups # dict for custom groups
# we can add more to this list # we can add more to this list
__customgroups__ = {'Q o Q': process_qoq, '-ECI': process_eci} #__customgroups__ = {'Q o Q': process_qoq, '-ECI': process_eci}