mirror of
https://github.com/iluvcapra/ptulsconv.git
synced 2025-12-31 17:00:46 +00:00
Character reports
This commit is contained in:
@@ -49,6 +49,7 @@ adr_field_map = ((['Title', 'PT.Session.Name'], 'Title', str),
|
||||
(['OMIT'], 'Omit', str),
|
||||
(['ADLIB'], 'Adlib', str),
|
||||
(['OPT'], 'Optional', str),
|
||||
(['DONE'], 'Done', str),
|
||||
(['Movie.Filename'], 'Movie', str),
|
||||
(['Movie.Start_Offset_Seconds'], 'Movie Seconds', float),
|
||||
)
|
||||
@@ -156,8 +157,14 @@ def convert(input_file, output_format='fmpxml', start=None, end=None, select_ree
|
||||
os.chdir("Supervisor Logs")
|
||||
output_supervisor_1pg(parsed)
|
||||
|
||||
print_status_style("Creating Scripts directory and reports")
|
||||
os.chdir("..")
|
||||
print_status_style("Creating Director's Logs director and reports")
|
||||
os.makedirs("Director Logs", exist_ok=True)
|
||||
os.chdir("Director Logs")
|
||||
output_summary(parsed, by_character=True)
|
||||
|
||||
os.chdir("..")
|
||||
print_status_style("Creating Scripts directory and reports")
|
||||
os.makedirs("Talent Scripts", exist_ok=True)
|
||||
os.chdir("Talent Scripts")
|
||||
output_talent_sides(parsed)
|
||||
|
||||
@@ -8,6 +8,7 @@ from reportlab.platypus.frames import Frame
|
||||
from reportlab.pdfbase import pdfmetrics
|
||||
from reportlab.pdfbase.ttfonts import TTFont
|
||||
|
||||
|
||||
# This is from https://code.activestate.com/recipes/576832/ for
|
||||
# generating page count messages
|
||||
class ReportCanvas(canvas.Canvas):
|
||||
@@ -87,7 +88,7 @@ def time_format(mins, zero_str=""):
|
||||
else:
|
||||
m = round(mins)
|
||||
hh, mm = divmod(m, 60)
|
||||
return "%ih%i" % (hh, mm)
|
||||
return "%i:%02i" % (hh, mm)
|
||||
|
||||
|
||||
def draw_header_footer(a_canvas, title_box, doc_title_box, footer_box, record, doc_title=""):
|
||||
|
||||
@@ -23,7 +23,16 @@ def build_aux_data_field(line):
|
||||
tag_field = ""
|
||||
for tag in line.keys():
|
||||
if line[tag] == tag and tag != 'ADR':
|
||||
tag_field += "<font backColor=black textColor=white>" + tag + "</font> "
|
||||
fcolor = 'white'
|
||||
bcolor = 'black'
|
||||
if tag == 'ADLIB' or tag == 'TBW':
|
||||
bcolor = 'darkmagenta'
|
||||
elif tag == 'EFF':
|
||||
bcolor = 'red'
|
||||
elif tag == 'TV':
|
||||
bcolor = 'blue'
|
||||
|
||||
tag_field += "<font backColor=%s textColor=%s fontSize=11>%s</font> " % (bcolor, fcolor, tag)
|
||||
|
||||
entries.append(tag_field)
|
||||
|
||||
@@ -47,16 +56,16 @@ def build_story(lines):
|
||||
('LEFTPADDING', (0, 0), (0, 0), 0.0),
|
||||
('BOTTOMPADDING', (0, 0), (-1, -1), 24.)]
|
||||
|
||||
if 'Omitted' in line.keys():
|
||||
cue_number_field = "<s>" + line['Cue Number'] + "</s><br /><font fontSize=7>" + \
|
||||
line['Character Name'] + "</font>"
|
||||
table_style.append(('BACKGROUND', (0, 0), (-1, 0), colors.lightpink))
|
||||
elif 'Effort' in line.keys():
|
||||
cue_number_field = "<s>" + line['Cue Number'] + "</s><br /><font fontSize=7>" + \
|
||||
line['Character Name'] + "</font>"
|
||||
table_style.append(('BACKGROUND', (0, 0), (-1, 0), colors.lightgreen))
|
||||
else:
|
||||
cue_number_field = line['Cue Number'] + "<br /><font fontSize=7>" + line['Character Name'] + "</font>"
|
||||
# if 'Omitted' in line.keys():
|
||||
# cue_number_field = "<s>" + line['Cue Number'] + "</s><br /><font fontSize=7>" + \
|
||||
# line['Character Name'] + "</font>"
|
||||
# table_style.append(('BACKGROUND', (0, 0), (-1, 0), colors.lightpink))
|
||||
# elif 'Effort' in line.keys():
|
||||
# cue_number_field = "<s>" + line['Cue Number'] + "</s><br /><font fontSize=7>" + \
|
||||
# line['Character Name'] + "</font>"
|
||||
# table_style.append(('BACKGROUND', (0, 0), (-1, 0), colors.lightgreen))
|
||||
# else:
|
||||
cue_number_field = line['Cue Number'] + "<br /><font fontSize=7>" + line['Character Name'] + "</font>"
|
||||
|
||||
time_data = time_format(line.get('Time Budget Mins', 0.))
|
||||
|
||||
@@ -89,16 +98,30 @@ def build_story(lines):
|
||||
return story
|
||||
|
||||
|
||||
def output_report(records, page_size=portrait(letter)):
|
||||
lines = sorted(records['events'], key=lambda line: line['PT.Clip.Start_Seconds'])
|
||||
def generate_report(page_size, records, character_number=None):
|
||||
lines = records['events']
|
||||
if character_number is not None:
|
||||
lines = [r for r in lines if r['Character Number'] == character_number]
|
||||
title = "%s ADR Report (%s)" % (lines[0]['Title'], lines[0]['Character Name'])
|
||||
document_header = "%s ADR Report" % (lines[0]['Character Name'])
|
||||
else:
|
||||
title = "%s ADR Report" % (lines[0]['Title'])
|
||||
document_header = 'ADR Report'
|
||||
|
||||
lines = sorted(lines, key=lambda line: line['PT.Clip.Start_Seconds'])
|
||||
|
||||
title = "%s ADR Report" % (lines[0]['Title'])
|
||||
filename = title + ".pdf"
|
||||
|
||||
doc = make_doc_template(page_size=page_size,
|
||||
filename=filename, document_title=title,
|
||||
record=lines[0], document_header='ADR Report')
|
||||
|
||||
record=lines[0], document_header=document_header)
|
||||
story = build_story(lines)
|
||||
|
||||
doc.build(story)
|
||||
|
||||
|
||||
def output_report(records, page_size=portrait(letter), by_character=False):
|
||||
if by_character:
|
||||
character_numbers = set((r['Character Number'] for r in records['events']))
|
||||
for n in character_numbers:
|
||||
generate_report(page_size, records, n)
|
||||
else:
|
||||
generate_report(page_size, records)
|
||||
|
||||
Reference in New Issue
Block a user