From 35ecb6eb8bcdc9c5835c0369c5fb80a2381a7208 Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Mon, 14 Mar 2022 18:29:06 +0000 Subject: [PATCH 1/1] mkm3u: Teach video parser to handle single-episode discs with titles. --- mkm3u | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/mkm3u b/mkm3u index bcc3536..9fdc90f 100755 --- a/mkm3u +++ b/mkm3u @@ -139,10 +139,16 @@ def some_group(m, *gg): class VideoDir (object): _R_ISO_PRE = RX.compile(r""" ^ - (?: S (?P \d+) (?: \. \ (?P .*)—)? (?: D (?P \d+))? | - (?P \d+)) - \. \ # - (?P .*) + (?: S (?P \d+) + (?: \. \ (?P .*) — (?: D \d+ \. \ )? | + D \d+ \. \ | + (?= E \d+ \. \ ) | + \. \ ) | + \d+ \. \ ) + (?: (?P + (?: S \d+ \ )? E \d+ (?: – \d+)? + (?: , \ (?: S \d+ \ )? E \d+ (?: – \d+)?)*) | + (?P E \d+) \. \ .*) \. iso $ """, RX.X) @@ -183,7 +189,10 @@ class VideoDir (object): disc = VideoDisc(path) ts = season any, bad = False, False - for eprange in m.group("eps").split(", "): + epname = m.group("epname") + if epname is not None: eplist = [epname] + else: eplist = m.group("eplist").split(", ") + for eprange in eplist: mm = me._R_ISO_EP.match(eprange) if mm is None: bad = True; continue if not any: -- 2.11.0