def create_ass_file(subtitle_blocks: List[SubtitleBlock], ass_file, styles: Dict[str, StyleConfig]): subs = SSAFile() colors = [Color(255, 255, 255), Color(100, 100, 255), Color(255, 100, 100)] for k, name in enumerate(subtitle_blocks[0].names): my_style = subs.styles["Default"].copy() my_style.primarycolor = colors[k] my_style.fontsize = styles[name].fontsize my_style.shadow = 0 subs.styles[name] = my_style for sb in subtitle_blocks: start, end = None, None for name, text in sb.name_texts: if len(text) > 0: text = text.replace("_", " ") if start is None: start = sb.start end = sb.end sub_line = SSAEvent( start=start, end=end, text=text, ) sub_line.style = name subs.append(sub_line) else: print(f"WARNING: got empty block! {name} ") subs.save(ass_file)
def save_to_subtitles(results, f): subs = create_ssa_file() for result in results: event = SSAEvent(start=make_time(s=result['start']), end=make_time(s=result['end']), text=f(result)) if 'highlight' in result and result['highlight']: event.style = 'red' subs.append(event) logger.info(f'Processed {len(results)} results to subtitle events') return subs
def save_to_subtitles(results, formatter): """ Save to subtitle file :param results: Dictionary containing info and start/end times :param formatter: Apply text formating to the subtitle :return: New subtitle file """ subs = SSAFile() for result in results: event = SSAEvent(start=make_time(s=result['start']), end=make_time(s=result['end']), text=formatter(result)) if 'highlight' in result and result['highlight']: event.style = 'red' subs.append(event) logger.info(f'Processed {len(results)} results to subtitle events') return subs