diff --git a/ptulsconv/commands.py b/ptulsconv/commands.py index 6634b6e..8a56ba8 100644 --- a/ptulsconv/commands.py +++ b/ptulsconv/commands.py @@ -143,31 +143,34 @@ def convert(input_file, output_format='fmpxml', start=None, end=None, select_ree if output_format == 'json': json.dump(parsed, output) - elif output_format == 'full': + elif output_format == 'adr': + + lines = [e for e in parsed['events'] if 'ADR' in e.keys()] + print_section_header_style("Creating PDF Reports") print_status_style("Creating ADR Report") - output_summary(parsed) + output_summary(lines) print_status_style("Creating Line Count") - output_line_count(parsed) + output_line_count(lines) print_status_style("Creating Supervisor Logs directory and reports") os.makedirs("Supervisor Logs", exist_ok=True) os.chdir("Supervisor Logs") - output_supervisor_1pg(parsed) + output_supervisor_1pg(lines) 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) + output_summary(lines, 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) + output_talent_sides(lines) elif output_format == 'fmpxml': if xsl is None: diff --git a/ptulsconv/pdf/line_count.py b/ptulsconv/pdf/line_count.py index e7127af..daa6827 100644 --- a/ptulsconv/pdf/line_count.py +++ b/ptulsconv/pdf/line_count.py @@ -11,9 +11,9 @@ from reportlab.lib.styles import getSampleStyleSheet from .common import time_format, make_doc_template -def build_columns(records, show_priorities=False, include_omitted=False): +def build_columns(lines, show_priorities=False, include_omitted=False): columns = list() - reel_numbers = sorted(set([x['Reel'] for x in records['events'] if 'Reel' in x.keys()])) + reel_numbers = sorted(set([x['Reel'] for x in lines if 'Reel' in x.keys()])) num_column_width = 0.375 * inch @@ -129,12 +129,12 @@ def build_columns(records, show_priorities=False, include_omitted=False): return columns -def populate_columns(records, columns, include_omitted, page_size): +def populate_columns(lines, columns, include_omitted, page_size): data = list() styles = list() columns_widths = list() - sorted_character_numbers = sorted(set([x['Character Number'] for x in records['events'] + sorted_character_numbers = sorted(set([x['Character Number'] for x in lines if 'Character Number' in x.keys()]), key=lambda x: str(x)) @@ -146,10 +146,8 @@ def populate_columns(records, columns, include_omitted, page_size): data.append(list(map(lambda x: x['heading'], columns))) - if include_omitted: - lines = [x for x in records['events']] - else: - lines = [x for x in records['events'] if 'Omitted' not in x.keys()] + if not include_omitted: + lines = [x for x in lines if 'Omitted' not in x.keys()] for n in sorted_character_numbers: char_records = list([x for x in lines if x['Character Number'] == n]) @@ -189,9 +187,9 @@ def populate_columns(records, columns, include_omitted, page_size): def build_header(column_widths): pass -def output_report(records, include_omitted=False, page_size=portrait(letter)): - columns = build_columns(records, include_omitted) - data, style, columns_widths = populate_columns(records, columns, include_omitted, page_size) +def output_report(lines, include_omitted=False, page_size=portrait(letter)): + columns = build_columns(lines, include_omitted) + data, style, columns_widths = populate_columns(lines, columns, include_omitted, page_size) style.append(('FONTNAME', (0, 0), (-1, -1), "Futura")) style.append(('FONTSIZE', (0, 0), (-1, -1), 9.)) @@ -200,11 +198,11 @@ def output_report(records, include_omitted=False, page_size=portrait(letter)): pdfmetrics.registerFont(TTFont('Futura', 'Futura.ttc')) - title = "%s Line Count" % (records['events'][0]['Title']) + title = "%s Line Count" % (lines[0]['Title']) filename = title + '.pdf' doc = make_doc_template(page_size=page_size, filename=filename, document_title=title, - record=records['events'][0], + record=lines[0], document_header='Line Count') #header_data, header_style, header_widths = build_header(columns_widths) diff --git a/ptulsconv/pdf/summary_log.py b/ptulsconv/pdf/summary_log.py index e3a3d9b..d50f2f2 100644 --- a/ptulsconv/pdf/summary_log.py +++ b/ptulsconv/pdf/summary_log.py @@ -56,16 +56,7 @@ 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 = "" + line['Cue Number'] + "
" + \ - # line['Character Name'] + "" - # table_style.append(('BACKGROUND', (0, 0), (-1, 0), colors.lightpink)) - # elif 'Effort' in line.keys(): - # cue_number_field = "" + line['Cue Number'] + "
" + \ - # line['Character Name'] + "" - # table_style.append(('BACKGROUND', (0, 0), (-1, 0), colors.lightgreen)) - # else: - cue_number_field = line['Cue Number'] + "
" + line['Character Name'] + "" + cue_number_field = "%s
%s" % (line['Cue Number'], line['Character Name']) time_data = time_format(line.get('Time Budget Mins', 0.)) @@ -74,19 +65,7 @@ def build_story(lines): aux_data_field = build_aux_data_field(line) - tc_data = line['PT.Clip.Start'] + "
" + line['PT.Clip.Finish'] - - third_line = [] - if 'Reel' in line.keys(): - if line['Reel'][0:1] == 'R': - third_line.append("%s" % (line['Reel'])) - else: - third_line.append("Reel %s" % (line['Reel'])) - if 'Version' in line.keys(): - third_line.append("(%s)" % line['Version']) - - if len(third_line) > 0: - tc_data = tc_data + "
" + " ".join(third_line) + tc_data = build_tc_data(line) line_table_data = [[Paragraph(cue_number_field, line_style), Paragraph(tc_data, line_style), @@ -112,8 +91,23 @@ def build_story(lines): return story -def generate_report(page_size, records, character_number=None): - lines = records['events'] +def build_tc_data(line): + tc_data = line['PT.Clip.Start'] + "
" + line['PT.Clip.Finish'] + third_line = [] + if 'Reel' in line.keys(): + if line['Reel'][0:1] == 'R': + third_line.append("%s" % (line['Reel'])) + else: + third_line.append("Reel %s" % (line['Reel'])) + if 'Version' in line.keys(): + third_line.append("(%s)" % line['Version']) + if len(third_line) > 0: + tc_data = tc_data + "
" + " ".join(third_line) + return tc_data + + +def generate_report(page_size, lines, character_number=None, include_done=True, + include_omitted=True): 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']) @@ -122,6 +116,12 @@ def generate_report(page_size, records, character_number=None): title = "%s ADR Report" % (lines[0]['Title']) document_header = 'ADR Report' + if not include_done: + lines = [line for line in lines if 'Done' not in line.keys()] + + if not include_omitted: + lines = [line for line in lines if 'Omitted' not in line.keys()] + lines = sorted(lines, key=lambda line: line['PT.Clip.Start_Seconds']) filename = title + ".pdf" @@ -132,10 +132,10 @@ def generate_report(page_size, records, character_number=None): doc.build(story) -def output_report(records, page_size=portrait(letter), by_character=False): +def output_report(lines, page_size=portrait(letter), by_character=False): if by_character: - character_numbers = set((r['Character Number'] for r in records['events'])) + character_numbers = set((r['Character Number'] for r in lines)) for n in character_numbers: - generate_report(page_size, records, n) + generate_report(page_size, lines, n) else: - generate_report(page_size, records) + generate_report(page_size, lines) diff --git a/ptulsconv/pdf/supervisor_1pg.py b/ptulsconv/pdf/supervisor_1pg.py index 9074b68..182322a 100644 --- a/ptulsconv/pdf/supervisor_1pg.py +++ b/ptulsconv/pdf/supervisor_1pg.py @@ -236,10 +236,10 @@ def create_report_for_character(records, report_date): c.save() -def output_report(records): +def output_report(lines): report_date = datetime.datetime.now() - events = sorted(records['events'], key=lambda x: x['PT.Clip.Start_Frames']) - character_numbers = set([x['CN'] for x in events]) + events = sorted(lines, key=lambda x: x['PT.Clip.Start_Frames']) + character_numbers = set([x['CN'] for x in lines]) for n in character_numbers: create_report_for_character([e for e in events if e['CN'] == n], report_date) diff --git a/ptulsconv/pdf/talent_sides.py b/ptulsconv/pdf/talent_sides.py index 37e4f22..a9c0554 100644 --- a/ptulsconv/pdf/talent_sides.py +++ b/ptulsconv/pdf/talent_sides.py @@ -12,21 +12,21 @@ from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.ttfonts import TTFont -def output_report(records): - character_numbers = set([n['Character Number'] for n in records['events']]) +def output_report(lines): + character_numbers = set([n['Character Number'] for n in lines]) pdfmetrics.registerFont(TTFont('Futura', 'Futura.ttc')) for n in character_numbers: - lines = [line for line in records['events'] + char_lines = [line for line in lines if 'Omit' not in line.keys() and line['Character Number'] == n] - sorted(lines, key=lambda line: line['PT.Clip.Start_Seconds']) + sorted(char_lines, key=lambda line: line['PT.Clip.Start_Seconds']) - title = "%s (%s) %s ADR Script" % (lines[0]['Title'], lines[0]['Character Name'], n) + title = "%s (%s) %s ADR Script" % (char_lines[0]['Title'], char_lines[0]['Character Name'], n) filename = "%s_%s_%s_ADR Script.pdf" % (lines[0]['Title'], n, lines[0]['Character Name']) doc = make_doc_template(page_size=letter, filename=filename, document_title=title, - record=lines[0], document_header=lines[0]['Character Name']) + record=char_lines[0], document_header=char_lines[0]['Character Name']) story = [] @@ -46,7 +46,7 @@ def output_report(records): number_style.leftIndent = 0. number_style.rightIndent = 0. - for line in lines: + for line in char_lines: data_block = [[Paragraph(line['Cue Number'], number_style), Paragraph(line['PT.Clip.Start'] + " - " + line['PT.Clip.Finish'], number_style) ]]