PodcastRSS.DurationParser (Podcast RSS v0.3.0)
View SourceParser for episode duration input formats.
Supports various input formats and converts them to total seconds:
- Integer: 1234 (seconds)
- String seconds: "1234" (seconds)
- MM:SS format: "12:34"
- HH:MM:SS format: "01:23:45"
- HH:MM:SS.ms format: "01:23:45.678" (rounds up fractional seconds)
Summary
Functions
Parse duration input and convert to total seconds.
Convert seconds to HH:MM:SS format for display purposes.
Functions
Parse duration input and convert to total seconds.
Returns seconds as integer or float (depending on precision) or nil for invalid input.
Options
:precision- Number of decimal places to preserve (default: 0 for integer output)
Examples
iex> PodcastRSS.DurationParser.parse(1234)
1234
iex> PodcastRSS.DurationParser.parse("1234")
1234
iex> PodcastRSS.DurationParser.parse("12:34")
754
iex> PodcastRSS.DurationParser.parse("01:23:45")
5025
iex> PodcastRSS.DurationParser.parse("01:23:45.678")
5026
iex> PodcastRSS.DurationParser.parse("01:23:45.678", precision: 3)
5025.678
iex> PodcastRSS.DurationParser.parse("123.456", precision: 2)
123.46
iex> PodcastRSS.DurationParser.parse("invalid")
nil
Convert seconds to HH:MM:SS format for display purposes.
Note: iTunes duration in XML is rendered as seconds, not HH:MM:SS. This function is useful for display formatting.
Examples
iex> PodcastRSS.DurationParser.to_hhmmss(1234)
"00:20:34"
iex> PodcastRSS.DurationParser.to_hhmmss(5025)
"01:23:45"