chiark / gitweb /
mkm3u: Support one-episode-per-file arrangements.
authorMark Wooding <mdw@distorted.org.uk>
Thu, 17 Mar 2022 18:16:12 +0000 (18:16 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Thu, 17 Mar 2022 18:16:12 +0000 (18:16 +0000)
mkm3u

diff --git a/mkm3u b/mkm3u
index 44e17d68ed6699a24fe11e1b83a505fafc5ffb8d..758393776baf62d98565ed5e17a0563c6cc9b185 100755 (executable)
--- a/mkm3u
+++ b/mkm3u
@@ -163,11 +163,12 @@ class VideoDir (object):
                   D \d+ \. \ |
                   (?= E \d+ \. \ ) |
                   \. \ ) |
-            \d+ \. \ )
+            (?P<epnum> \d+) \. \ )
         (?: (?P<eplist>
              (?: S \d+ \ )? E \d+ (?: – \d+)?
              (?: , \ (?: S \d+ \ )? E \d+ (?: – \d+)?)*) |
-            (?P<epname> E \d+) \. \ .*)
+            (?P<epname> E \d+) \. \ .* |
+            .*)
         \. iso $
   """, RX.X)
 
@@ -209,8 +210,12 @@ class VideoDir (object):
       ts = season
       any, bad = False, False
       epname = m.group("epname")
+      epexpr = m.group("eplist")
+      epnum = m.group("epnum")
       if epname is not None: eplist = [epname]
-      else: eplist = m.group("eplist").split(", ")
+      elif epexpr is not None: eplist = epexpr.split(", ")
+      elif epnum is not None: eplist = ["E" + epnum]
+      else: continue
       #print(";; `%s'" % path, file = SYS.stderr)
       for eprange in eplist:
         mm = me._R_ISO_EP.match(eprange)