From 9e576798985200e4ae81e552b52b17ff52790074 Mon Sep 17 00:00:00 2001 From: Aleteoryx Date: Mon, 29 Dec 2025 12:07:33 -0500 Subject: [PATCH] better heuristics --- queuers/reenc.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/queuers/reenc.py b/queuers/reenc.py index b573b20d77c06c0d49e37e1e3d966fb62a3e2966..8086c4ff6d08e89283609235b2eb998ae7e849ec 100644 --- a/queuers/reenc.py +++ b/queuers/reenc.py @@ -102,8 +102,13 @@ class Episode: else: return f'S{self.season:02}E{self.number:02}' + +def cleanup_filename(file): + file = re.sub('[\[\(][0-9A-Fa-f]{8}[\]\)]', '[########]', file) + file = re.sub('\d', '#', file) + return file def find_common_ends(files): - files = map(lambda x: re.sub('\d', '#', x), files) + files = map(cleanup_filename, files) needle = next(files) pfxlen = len(needle) sfxlen = len(needle) @@ -124,17 +129,14 @@ def find_sXXeXX(name): season, episode = 0, 0 - if (m := re.search('S([0-9]+)', name, re.I)) is not None: + if (m := re.search('([0-9]+)(?:st|nd|rd|th)\\DSeason', name, re.I)) is not None: season = int(m.group(1)) name = name[:m.start()] + name[m.end():] elif (m := re.search('Se?a?s?o?n?\\D?([0-9]+)', name, re.I)) is not None: season = int(m.group(1)) name = name[:m.start()] + name[m.end():] - - if (m := re.search('E([0-9]+)', name, re.I)) is not None: - episode = int(m.group(1)) - elif (m := re.search('E\p\i\s\o\d\e\\D?([0-9]+)', name, re.I)) is not None: + if (m := re.search('Ep?i?s?o?d?e?\D?([0-9]+)', name, re.I)) is not None: episode = int(m.group(1)) elif (m := re.search('([0-9]+)', name, re.I)) is not None: episode = int(m.group(1))