public Subtitle AutoGuessImport(List <string> lines) { var subtitle = ImportTimeCodesOnSameSeperateLine(lines); if (subtitle.Paragraphs.Count < 2) { subtitle = ImportTimeCodesAndTextOnSameLineOnlySpaceAsSeparator(lines); } var subTcAndTextOnSameLine = ImportTimeCodesAndTextOnSameLine(lines); if (subTcAndTextOnSameLine.Paragraphs.Count > subtitle.Paragraphs.Count) { subtitle = subTcAndTextOnSameLine; } var subTcOnAloneLines = ImportTimeCodesOnAloneLines(lines); if (subTcOnAloneLines.Paragraphs.Count > subtitle.Paragraphs.Count) { subtitle = subTcOnAloneLines; } if (subtitle.Paragraphs.Count < 2) { subtitle = ImportTimeCodesInFramesOnSameSeperateLine(lines); if (subtitle.Paragraphs.Count < 2) { subtitle = ImportTimeCodesInFramesAndTextOnSameLine(lines); } } if (subtitle.Paragraphs.Count > 1) { CleanUp(subtitle); } if (subtitle.Paragraphs.Count < 2) { var jsonSubtitle = new UknownFormatImporterJson().AutoGuessImport(lines); if (jsonSubtitle != null && jsonSubtitle.Paragraphs.Count > 2) { subtitle = jsonSubtitle; } } if (subtitle.Paragraphs.Count == 0 && lines.Count == 1 && lines[0].Contains(" --> ")) { subtitle = ImportSubtitleWithNoLineBreaks(lines[0]); } return(subtitle); }
public Subtitle AutoGuessImport(string[] lines) { var subtitle = ImportTimeCodesOnSameSeperateLine(lines); if (subtitle.Paragraphs.Count < 2) { subtitle = ImportTimeCodesAndTextOnSameLineOnlySpaceAsSeparator(lines); } var subTcAndTextOnSameLine = ImportTimeCodesAndTextOnSameLine(lines); if (subTcAndTextOnSameLine.Paragraphs.Count > subtitle.Paragraphs.Count) { subtitle = subTcAndTextOnSameLine; } var subTcOnAloneLines = ImportTimeCodesOnAloneLines(lines); if (subTcOnAloneLines.Paragraphs.Count > subtitle.Paragraphs.Count) { subtitle = subTcOnAloneLines; } if (subtitle.Paragraphs.Count < 2) { subtitle = ImportTimeCodesInFramesOnSameSeperateLine(lines); if (subtitle.Paragraphs.Count < 2) { subtitle = ImportTimeCodesInFramesAndTextOnSameLine(lines); } } if (subtitle.Paragraphs.Count > 1) { CleanUp(subtitle); } if (subtitle.Paragraphs.Count < 2) { var jsonSubtitle = new UknownFormatImporterJson().AutoGuessImport(lines); if (jsonSubtitle != null && jsonSubtitle.Paragraphs.Count > 2) { subtitle = jsonSubtitle; } } return(subtitle); }
public Subtitle AutoGuessImport(List <string> lines) { var subtitle = ImportTimeCodesOnSameSeperateLine(lines); if (subtitle.Paragraphs.Count < 2) { subtitle = ImportTimeCodesAndTextOnSameLineOnlySpaceAsSeparator(lines); } var subTcAndTextOnSameLine = ImportTimeCodesAndTextOnSameLine(lines); if (subTcAndTextOnSameLine.Paragraphs.Count > subtitle.Paragraphs.Count) { subtitle = subTcAndTextOnSameLine; } var subTcOnAloneLines = ImportTimeCodesOnAloneLines(lines); if (subTcOnAloneLines.Paragraphs.Count > subtitle.Paragraphs.Count) { subtitle = subTcOnAloneLines; } if (subtitle.Paragraphs.Count < 2) { subtitle = ImportTimeCodesInFramesOnSameSeperateLine(lines); if (subtitle.Paragraphs.Count < 2) { var sameLineSub = ImportTimeCodesInFramesAndTextOnSameLine(lines); if (sameLineSub.Paragraphs.Count < 10 && (sameLineSub.Paragraphs.Count(p => p.Duration.TotalMilliseconds < 0) > 2 || sameLineSub.Paragraphs.Count(p => p.Text.Length > 100) > 1)) { // probably not a subtitle } else if (sameLineSub.Paragraphs.Count < 20 && (sameLineSub.Paragraphs.Count(p => p.Duration.TotalMilliseconds < 0) > 8 || sameLineSub.Paragraphs.Count(p => p.Text.Length > 100) > 5)) { // probably not a subtitle } else { subtitle = sameLineSub; } } } if (subtitle.Paragraphs.Count > 1) { CleanUp(subtitle); } if (subtitle.Paragraphs.Count < 2) { var jsonSubtitle = new UknownFormatImporterJson().AutoGuessImport(lines); if (jsonSubtitle != null && jsonSubtitle.Paragraphs.Count > 2) { subtitle = jsonSubtitle; } } if (subtitle.Paragraphs.Count == 0 && lines.Count == 1 && lines[0].Contains(" --> ")) { subtitle = ImportSubtitleWithNoLineBreaks(lines[0]); } if (subtitle.Paragraphs.Count > 0 && lines.Count > 0 && lines.Count / subtitle.Paragraphs.Count > 25) { // no more than 25 raw lines per subtitle lines return(new Subtitle()); } return(subtitle); }