Current section
Files
Jump to
Current section
Files
lib/srt/formatter.ex
defmodule Subtitles.Srt.Formatter do
def format(%Subtitle{cues: cues}) do
cues
|> Enum.with_index(1)
|> Enum.map(&build(&1))
|> Enum.join("\n\n")
|> Utils.add_closing_line_breaks()
end
defp build({sub, idx}) do
build_cue_header(idx, sub) <> build_cue_text(sub.parts)
end
defp build_cue_header(idx, %{from: from, to: to}) do
"#{idx}\n#{Utils.format_time(from, ",")} --> #{Utils.format_time(to, ",")}\n"
end
defp build_cue_text(parts), do: parts |> Enum.map(& &1.text_data) |> Enum.join("\n")
end