def video_map(r): path = r.args['path'] try: return [{'epnum': k, 'path': v} for k, v in madmagia.files.input_videos(path, ['mkv']).iteritems()] except StandardError, e: logger.exception(e) return []
def get_sections(r): path = os.path.join(r.args["path"], "sequence.txt") logger.info("Load from %s", path) try: with open(path, "r") as f: sections = madmagia.sequence.parse([unicode(ln, "utf-8") for ln in f.readlines()], False)[0] return [_dump_section(s) for s in sections] except madmagia.sequence.ParseError, e: logger.exception(e) logger.error("Error at line %d", e.linenum)
def touch_sequence_file(r): path = os.path.join(r.form["path"], "sequence.txt") if os.path.isfile(path): return "ok" try: with open(path, "a+"): return "ok" except StandardError, e: logger.exception(e) return "fail"
def audio_slice(r): path = app.path(r.form['file']) start = float(r.form['start']) duration = float(r.form['duration']) output_dir = _temp_dir(r.form['output_dir']) try: return madmagia.audio_slice.slice(path, start, start + duration, output_dir) except StandardError, e: logger.exception(e) return []
return "fail" @app.get_async("/seqc/get/") def get_sections(r): path = os.path.join(r.args["path"], "sequence.txt") logger.info("Load from %s", path) try: with open(path, "r") as f: sections = madmagia.sequence.parse([unicode(ln, "utf-8") for ln in f.readlines()], False)[0] return [_dump_section(s) for s in sections] except madmagia.sequence.ParseError, e: logger.exception(e) logger.error("Error at line %d", e.linenum) except StandardError, e: logger.exception(e) return [_dump_section(madmagia.sequence.Section(0, ":begin"))] def _write_segment(f, seg): print >> f, " ", seg["epnum"], seg["start"], seg["duration"] for fname, fargs in seg["filters"]: print >> f, (" :%s" % fname), fargs or "" def _write_section(f, sec): if sec["name"] != ":begin": print >> f, ":section", sec["start"], sec["name"].encode("utf-8"), sec.get("sub", "") for s in sec["segments"]: _write_segment(f, s) print >> f, ""
def media_len(r): try: return madmagia.audio_slice.audio_len(app.path(r.args['path'])) except StandardError, e: logger.exception(e) return -1