from __future__ import print_function from prismedia import upload import main as upload import sys import zerorpc class PrismediahedronAPI(): prismedia = def upload(self, *args, **kwargs): """upload video using prismedia""" arguments = [ self.prismedia, *args, *kwargs ] try: output = subprocess.check_output( arguments, stderr=subprocess.STDOUT) return uploader._geturl(output) except subprocess.CalledProcessError as cpe: print "cpe.returncode", cpe.returncode print "cpe.cmd", cpe.cmd print "cpe.output", cpe.output @staticmethod def _geturl(s): # the output contains much more than just the url cue = "Peertube: Watch it at " for line in s.split("\n"): if cue in line: # the url befins right after the cue. Between in url and the end of the line is a single ".", # which also needs to be remove return line.split(cue, 1)[1][:-1] def parse_port(): port = 4242 try: port = int(sys.argv[1]) except Exception as e: pass return '{}'.format(port) def main(): addr = 'tcp://127.0.0.1:' + parse_port() s = zerorpc.Server(PrismediahedronAPI()) s.bind(addr) print('prismediahedron started on {}'.format(addr)) s.run() if __name__ == '__main__': main()