From 9cf316fe29eec9d4800627af61c506cbd0b40981 Mon Sep 17 00:00:00 2001 From: javara999 Date: Wed, 1 Apr 2026 11:35:46 +0900 Subject: [PATCH] Add remaining linkkf core files --- linkkf/subtitle_util.py | 44 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 linkkf/subtitle_util.py diff --git a/linkkf/subtitle_util.py b/linkkf/subtitle_util.py new file mode 100644 index 0000000..1a80997 --- /dev/null +++ b/linkkf/subtitle_util.py @@ -0,0 +1,44 @@ +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" +