68 lines
1.8 KiB
Python
Executable file
68 lines
1.8 KiB
Python
Executable file
#!/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")
|
|
renderlib.debug = True
|
|
|
|
if os.environ.get('CRS_TOKEN') is None or os.environ.get('CRS_SECRET') is None:
|
|
print('CRS_TOKEN or CRS_SECRET is empty. did you source the tracker-scripts-profile?')
|
|
sys.exit(1)
|
|
|
|
ticket_type = 'recording'
|
|
ticket_state = 'generating'
|
|
|
|
host = socket.getfqdn()
|
|
url = os.environ['CRS_TRACKER']
|
|
token = os.environ['CRS_TOKEN']
|
|
secret = os.environ['CRS_SECRET']
|
|
|
|
filter = {}
|
|
if not os.environ.get('CRS_ROOM') is None:
|
|
filter['Fahrplan.Room'] = os.environ['CRS_ROOM']
|
|
|
|
projects = {}
|
|
def generatePreroll(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')
|
|
|
|
print("rendering")
|
|
renderlib.rendertask(task)
|
|
|
|
if hasattr(project, 'deploy'):
|
|
print("deploying")
|
|
project.deploy(ticket, task)
|
|
|
|
|
|
while True:
|
|
print('Asking RPC for {0}-tickets which are ready for state {1}'.format(ticket_type, ticket_state))
|
|
|
|
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)
|
|
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')
|
|
|
|
print('Sleeping for 30 seconds')
|
|
time.sleep(30);
|
|
|