704d105bb0
ff_linkkf
45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
import re
|
|
|
|
from support import SupportFile
|
|
|
|
|
|
def write_file(data, filepath):
|
|
SupportFile.write_file(filepath, data)
|
|
|
|
|
|
def convert_vtt_to_srt(vtt_data):
|
|
lines = []
|
|
counter = 1
|
|
|
|
for block in re.split(r"\r?\n\r?\n", vtt_data.strip()):
|
|
block = block.strip()
|
|
if block == "" or block == "WEBVTT":
|
|
continue
|
|
|
|
block_lines = [line.strip("\ufeff") for line in block.splitlines() if line.strip() != ""]
|
|
if not block_lines:
|
|
continue
|
|
|
|
if block_lines[0].startswith("WEBVTT"):
|
|
block_lines = block_lines[1:]
|
|
if not block_lines:
|
|
continue
|
|
|
|
if "-->" not in block_lines[0] and len(block_lines) > 1 and "-->" in block_lines[1]:
|
|
block_lines = block_lines[1:]
|
|
|
|
if "-->" not in block_lines[0]:
|
|
continue
|
|
|
|
timing = block_lines[0].replace(".", ",")
|
|
payload = block_lines[1:]
|
|
|
|
lines.append(str(counter))
|
|
lines.append(timing)
|
|
lines.extend(payload)
|
|
lines.append("")
|
|
counter += 1
|
|
|
|
return "\n".join(lines).strip() + "\n"
|
|
|