mkm3u: Format episode numbers correctly when paired.
[epls] / mkm3u
diff --git a/mkm3u b/mkm3u
index 982475c..bc963d5 100755 (executable)
--- a/mkm3u
+++ b/mkm3u
@@ -354,9 +354,9 @@ class BaseSeason (object):
     return ep
   def _epnames(me, i, neps):
     playlist = me.series.playlist
-    if neps == 1: return playlist.epname, "%d" % i
-    elif neps == 2: return playlist.epnames, "%d, %d" % (i, i + 1)
-    else: return playlist.epnames, "%d–%d" % (i, i + neps - 1)
+    if neps == 1: return playlist.epname, ["%d" % i]
+    elif neps == 2: return playlist.epnames, ["%d" % i, "%d" % (i + 1)]
+    else: return playlist.epnames, ["%d–%d" % (i, i + neps - 1)]
 
 class Season (BaseSeason):
   def __init__(me, series, title, i, *args, **kw):
@@ -365,13 +365,21 @@ class Season (BaseSeason):
   def _eplabel(me, i, neps, title):
     epname, epn = me._epnames(i, neps)
     if title is None:
-      if me.implicitp: label = "%s %s" % (epname, epn)
-      elif me.title is None: label = "%s %d.%s" % (epname, me.i, epn)
-      else: label = "%s—%s %s" % (me.title, epname, epn)
+      if me.implicitp:
+        label = "%s %s" % (epname, ", ".join(epn))
+      elif me.title is None:
+        label = "%s %s" % \
+          (epname, ", ".join("%d.%s" % (me.i, e) for e in epn))
+      else:
+        label = "%s—%s %s" % (me.title, epname, ", ".join(epn))
     else:
-      if me.implicitp: label = "%s. %s" % (epn, title)
-      elif me.title is None: label = "%d.%s. %s" % (me.i, epn, title)
-      else: label = "%s—%s. %s" % (me.title, epn, title)
+      if me.implicitp:
+        label = "%s. %s" % (", ".join(epn), title)
+      elif me.title is None:
+        label = "%s. %s" % \
+          (", ".join("%d.%s" % (me.i, e) for e in epn), title)
+      else:
+        label = "%s—%s. %s" % (me.title, ", ".join(epn), title)
     return label
 
 class MovieSeason (BaseSeason):
@@ -388,7 +396,7 @@ class MovieSeason (BaseSeason):
       label = title
     elif title is None:
       epname, epn = me._epnames(i, neps)
-      label = "%s—%s %s" % (me.title, epname, epn)
+      label = "%s—%s %s" % (me.title, epname, ", ".join(epn))
     else:
       label = "%s—%s" % (me.title, title)
     return label