From 08bcdc415683f0b83a9f3d55f354bd15b4b8065a Mon Sep 17 00:00:00 2001 From: Alexis Date: Wed, 9 Dec 2015 16:48:52 -0800 Subject: [PATCH] discard cue when start / end times are invalid --- lib/parser.rb | 2 ++ tests/parser.rb | 6 ++++++ tests/subtitles/invalid_cue_time.srt | 3 +++ 3 files changed, 11 insertions(+) create mode 100644 tests/subtitles/invalid_cue_time.srt diff --git a/lib/parser.rb b/lib/parser.rb index 24341d0..c3a718d 100644 --- a/lib/parser.rb +++ b/lib/parser.rb @@ -150,6 +150,8 @@ def parse @start = Timestamp.new $1 @end = Timestamp.new $2 @style = Hash[$3.strip.split(" ").map{|s| s.split(":").map(&:strip) }] + else + return end @text = lines[1..-1].join("\n") end diff --git a/tests/parser.rb b/tests/parser.rb index 381a800..3d2ee71 100644 --- a/tests/parser.rb +++ b/tests/parser.rb @@ -210,4 +210,10 @@ def test_invalid_cue webvtt = WebVTT.convert_from_srt("tests/subtitles/invalid_cue.srt") assert_equal 1, webvtt.cues.size end + + def test_invalid_cue_time + cue_string = open("tests/subtitles/invalid_cue_time.srt").read + cue = WebVTT::Cue.parse(cue_string) + assert_nil cue.text + end end diff --git a/tests/subtitles/invalid_cue_time.srt b/tests/subtitles/invalid_cue_time.srt new file mode 100644 index 0000000..620142c --- /dev/null +++ b/tests/subtitles/invalid_cue_time.srt @@ -0,0 +1,3 @@ +9999 +00:00:0,500 --> 00:00:2,00 +www.tvsubtitles.net