diff --git a/script-Z-preroll-generator.py b/script-Z-preroll-generator.py index fb3f1a1..8c2efbf 100755 --- a/script-Z-preroll-generator.py +++ b/script-Z-preroll-generator.py @@ -1,9 +1,12 @@ #!/usr/bin/python3 import xmlrpc.client +import traceback import socket import time import sys import os + +import renderlib import c3t_rpc_client as rpc print("C3TT preroll generator") @@ -24,8 +27,19 @@ filter = {} if not os.environ.get('CRS_ROOM') is None: filter['Fahrplan.Room'] = os.environ['CRS_ROOM'] +projects = {} def generatePreroll(ticket): - print('generating preroll for', ticket) + print(ticket) + projectname = ticket.get('Processing.Prerolls.Slug', ticket['Meta.Acronym']) + if not projectname in projects: + projects[projectname] = renderlib.loadProject(projectname) + + project = projects[projectname] + task = project.ticket(ticket) + task.outfile = os.path.join(ticket['Processing.Path.Intros'], ticket['Fahrplan.ID'] + '.dv') + task.workdir = os.path.join(os.getcwd(), projectname, 'artwork') + renderlib.rendertask(task) + while True: print('Asking RPC for {0}-tickets which are ready for state {1}'.format(ticket_type, ticket_state)) @@ -33,7 +47,11 @@ while True: ticket_id = rpc.assignNextUnassignedForState(ticket_type, ticket_state, url, token, host, secret, filter) if ticket_id != False: ticket = rpc.getTicketProperties(str(ticket_id), url, token, host, secret) - generatePreroll(ticket) + try: + generatePreroll(ticket) + rpc.setTicketDone(str(ticket_id), url, token, host, secret) + except: + rpc.setTicketFailed(str(ticket_id), str(traceback.format_exc()), url, token, host, secret) else: print('No ticket found')