chiark
/
gitweb
/
~mdw
/
epls
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5ca4c92
)
mkm3u: Allow movie seasons to have titles and numbered episodes.
author
Mark Wooding
<mdw@distorted.org.uk>
Thu, 17 Mar 2022 16:16:47 +0000
(16:16 +0000)
committer
Mark Wooding
<mdw@distorted.org.uk>
Thu, 17 Mar 2022 16:16:47 +0000
(16:16 +0000)
mkm3u
patch
|
blob
|
blame
|
history
diff --git
a/mkm3u
b/mkm3u
index 9051c268b3f44e6327a4924e4a0e9438ff6a08f5..27907cd3ea289cfa55fd0bf661737b4f76c11467 100755
(executable)
--- a/
mkm3u
+++ b/
mkm3u
@@
-322,13
+322,23
@@
class Season (BaseSeason):
return label
class MovieSeason (BaseSeason):
return label
class MovieSeason (BaseSeason):
- def __init__(me, series, *args, **kw):
+ def __init__(me, series, title, *args, **kw):
+ super().__init__(series, *args, **kw)
+ me.title = title
me.i = None
def add_episode(me, j, neps, title, src, tno, startch):
me.i = None
def add_episode(me, j, neps, title, src, tno, startch):
- if title is None: raise ExpectedError("movie must have a title")
+ if me.title is None and title is None:
+ raise ExpectedError("movie or movie season must have a title")
return super().add_episode(j, neps, title, src, tno, startch)
return super().add_episode(j, neps, title, src, tno, startch)
- def _eplabel(me, i, epn, title):
- return title
+ def _eplabel(me, i, neps, title):
+ if me.title is None:
+ label = title
+ elif title is None:
+ epname, epn = me._epnames(i, neps)
+ label = "%s—%s %s" % (me.title, epname, epn)
+ else:
+ label = "%s—%s" % (me.title, title)
+ return label
class Series (object):
def __init__(me, playlist, title = None):
class Series (object):
def __init__(me, playlist, title = None):
@@
-339,8
+349,8
@@
class Series (object):
me.cur_season = season
def add_season(me, title, i, implicitp = False):
me._add_season(Season(me, title, i, implicitp))
me.cur_season = season
def add_season(me, title, i, implicitp = False):
me._add_season(Season(me, title, i, implicitp))
- def add_movies(me):
- me._add_season(MovieSeason(me))
+ def add_movies(me
, title = None
):
+ me._add_season(MovieSeason(me
, title
))
def ensure_season(me):
if me.cur_season is None: me.add_season(None, 1, implicitp = True)
return me.cur_season
def ensure_season(me):
if me.cur_season is None: me.add_season(None, 1, implicitp = True)
return me.cur_season
@@
-451,9
+461,8
@@
class EpisodeListParser (object):
w = ww.nextword();
check(w is not None, "missing season number")
if w == "-":
w = ww.nextword();
check(w is not None, "missing season number")
if w == "-":
- check(ww.rest() is None, "trailing junk")
if not me._wantedp(sname): return
if not me._wantedp(sname): return
- series.add_movies()
+ series.add_movies(
ww.rest()
)
else:
title = ww.rest(); i = getint(w)
if not me._wantedp(sname): return
else:
title = ww.rest(); i = getint(w)
if not me._wantedp(sname): return