- def __init__(me, dir):
- me.dir = dir
- fns = OS.listdir(OS.path.join(ROOT, dir))
- fns.sort()
- episodes = {}
- last_i = 0
- for fn in fns:
- path = OS.path.join(dir, fn)
- if not fn.endswith(".flac"): continue
- m = me._R_FLAC.match(fn)
- if not m: continue
- i = filter(m.group(1), int)
- etitle = m.group(2)
- check(i == last_i + 1, "episode %d /= %d" % (i, last_i + 1))
- episodes[i] = AudioEpisode(path, i)
- last_i = i
- me.episodes = episodes
+class VideoFile (Source):
+ PREFIX = "file://"
+ TITLEP = CHAPTERP = False
+
+ def _duration(me, title, start_chapter, end_chaptwr):
+ out = program_output(["mediainfo", "--output=General;%Duration%",
+ OS.path.join(ROOT, me.fn)])
+ return int(out)//1000
+
+class VideoEpisode (VideoFile):
+ def __init__(me, fn, i, *args, **kw):
+ super().__init__(fn, *args, **kw)
+ me.i = i
+
+class VideoDir (SingleFileDir):
+ _EXT = ".mp4"
+ _CHECK_COMPLETE = False
+
+ def _mkepisode(me, path, i):
+ return VideoEpisode(path, i)