From: Mark Wooding Date: Sat, 19 Mar 2022 22:31:00 +0000 (+0000) Subject: mkm3u: Format episode numbers correctly when paired. X-Git-Url: https://git.distorted.org.uk/~mdw/epls/commitdiff_plain/c6b2a381f50731e86ed51e1b09544652cb695a47 mkm3u: Format episode numbers correctly when paired. --- diff --git a/mkm3u b/mkm3u index 982475c..bc963d5 100755 --- 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 diff --git a/ref/btvs.m3u8 b/ref/btvs.m3u8 index c1160b0..d805f5a 100644 --- a/ref/btvs.m3u8 +++ b/ref/btvs.m3u8 @@ -205,7 +205,7 @@ dvd:///mnt/dvd/archive/B/Buffy%20the%20Vampire%20Slayer/S05D06.%20E20%e2%80%9322 #EXTINF:2562,,5.22. The Gift dvd:///mnt/dvd/archive/B/Buffy%20the%20Vampire%20Slayer/S05D06.%20E20%e2%80%9322.iso#3 -#EXTINF:5127,,6.1, 2. Bargaining +#EXTINF:5127,,6.1, 6.2. Bargaining dvd:///mnt/dvd/archive/B/Buffy%20the%20Vampire%20Slayer/S06D01.%20E01%e2%80%9304.iso#1 #EXTINF:2491,,6.3. After Life dvd:///mnt/dvd/archive/B/Buffy%20the%20Vampire%20Slayer/S06D01.%20E01%e2%80%9304.iso#2 diff --git a/ref/buffyverse.m3u8 b/ref/buffyverse.m3u8 index c6dd59a..7d4e473 100644 --- a/ref/buffyverse.m3u8 +++ b/ref/buffyverse.m3u8 @@ -297,7 +297,7 @@ dvd:///mnt/dvd/archive/A/Angel/S02D06.%20E20%e2%80%9322.iso#3 dvd:///mnt/dvd/archive/A/Angel/S03D01.%20E01%e2%80%9304.iso#1 #EXTINF:2517,,Angel 3.2. That Vision Thing dvd:///mnt/dvd/archive/A/Angel/S03D01.%20E01%e2%80%9304.iso#2 -#EXTINF:5127,,Buffy the Vampire Slayer 6.1, 2. Bargaining +#EXTINF:5127,,Buffy the Vampire Slayer 6.1, 6.2. Bargaining dvd:///mnt/dvd/archive/B/Buffy%20the%20Vampire%20Slayer/S06D01.%20E01%e2%80%9304.iso#1 #EXTINF:2442,,Angel 3.3. That Old Gang of Mine dvd:///mnt/dvd/archive/A/Angel/S03D01.%20E01%e2%80%9304.iso#3 diff --git a/ref/stargate-sg1.m3u8 b/ref/stargate-sg1.m3u8 index 54f53a3..79aaeec 100644 --- a/ref/stargate-sg1.m3u8 +++ b/ref/stargate-sg1.m3u8 @@ -308,10 +308,10 @@ dvd:///mnt/dvd/archive/S/Stargate%20SG-1/S07D05.%20E17%e2%80%9320.iso#9 dvd:///mnt/dvd/archive/S/Stargate%20SG-1/S07D05.%20E17%e2%80%9320.iso#10 #EXTINF:2531,,7.20. Inauguration dvd:///mnt/dvd/archive/S/Stargate%20SG-1/S07D05.%20E17%e2%80%9320.iso#11 -#EXTINF:4921,,7.21, 22. Lost City (parts 1&2) +#EXTINF:4921,,7.21, 7.22. Lost City (parts 1&2) dvd:///mnt/dvd/archive/S/Stargate%20SG-1/S07D06.%20E21%e2%80%9322.iso#2 -#EXTINF:4866,,8.1, 2. New Order (parts 1&2) +#EXTINF:4866,,8.1, 8.2. New Order (parts 1&2) dvd:///mnt/dvd/archive/S/Stargate%20SG-1/S08D01.%20E01%e2%80%9304.iso#10 #EXTINF:2517,,8.3. Lockdown dvd:///mnt/dvd/archive/S/Stargate%20SG-1/S08D01.%20E01%e2%80%9304.iso#11 diff --git a/ref/stargate.m3u8 b/ref/stargate.m3u8 index 1713d0f..9c1f9b4 100644 --- a/ref/stargate.m3u8 +++ b/ref/stargate.m3u8 @@ -311,10 +311,10 @@ dvd:///mnt/dvd/archive/S/Stargate%20SG-1/S07D05.%20E17%e2%80%9320.iso#9 dvd:///mnt/dvd/archive/S/Stargate%20SG-1/S07D05.%20E17%e2%80%9320.iso#10 #EXTINF:2531,,Stargate SG-1 7.20. Inauguration dvd:///mnt/dvd/archive/S/Stargate%20SG-1/S07D05.%20E17%e2%80%9320.iso#11 -#EXTINF:4921,,Stargate SG-1 7.21, 22. Lost City (parts 1&2) +#EXTINF:4921,,Stargate SG-1 7.21, 7.22. Lost City (parts 1&2) dvd:///mnt/dvd/archive/S/Stargate%20SG-1/S07D06.%20E21%e2%80%9322.iso#2 -#EXTINF:4866,,Stargate SG-1 8.1, 2. New Order (parts 1&2) +#EXTINF:4866,,Stargate SG-1 8.1, 8.2. New Order (parts 1&2) dvd:///mnt/dvd/archive/S/Stargate%20SG-1/S08D01.%20E01%e2%80%9304.iso#10 #EXTINF:5070,,Stargate Atlantis 1.1. Rising dvd:///mnt/dvd/archive/S/Stargate%20Atlantis/S01D01.%20E01%e2%80%9303.iso#8