a zerorpc server exposing prismedia, a video uploader to PeerTube and friends.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 

60 lignes
1.5 KiB

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()