chiark / gitweb /
mkm3u: Add `!displaced' command to handle using special versions of episodes.
authorMark Wooding <mdw@distorted.org.uk>
Thu, 17 Mar 2022 16:17:11 +0000 (16:17 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Thu, 17 Mar 2022 16:17:11 +0000 (16:17 +0000)
That is, we use the fancy `extended' version of an episode from a
different disc.  This just compensates the disc-episode accounting.

mkm3u

diff --git a/mkm3u b/mkm3u
index 27907cd3ea289cfa55fd0bf661737b4f76c11467..7cf240c039eb9e44a1e5edec68fffae2cac50789 100755 (executable)
--- a/mkm3u
+++ b/mkm3u
@@ -509,6 +509,20 @@ class EpisodeListParser (object):
       if dir == "-": forget(me._audirs, name)
       else: me._audirs[name] = AudioDir(dir)
 
+    elif cmd == "displaced":
+      series, name = me._opts_series(cmd, opts)
+      w = ww.rest(); check(w is not None, "missing count"); n = getint(w)
+      check(name not in me._isos, "iso file active")
+      season = series.ensure_season()
+      check(season.i is not None, "movie season active")
+      dir = lookup(me._vdirs, name, "no active video directory")
+      vseason = lookup(dir.seasons, season.i,
+                       "season %d not found in video dir `%s'" %
+                         (season.i, dir.dir))
+      src = lookup(vseason.episodes, season.ep_i,
+                   "episode %d.%d not found in video dir `%s'" %
+                     (season.i, season.ep_i, dir.dir))
+      src.nuses += n
     else:
       raise ExpectedError("unknown command `%s'" % cmd)