public void Constructor_NullSubtitleParser_Throws() { ISubtitleParser nullSubtitleParser = null; Assert.Throws <ArgumentNullException>( () => new SubtitlesParser(nullSubtitleParser)); }
public SubtitlesParser(ISubtitleParser subtitleParser) { if (subtitleParser == null) { throw new ArgumentNullException(nameof(Subtitle)); } this.subtitleParser = subtitleParser; }
public FileParser( ZipFileService zipFileProcessor, ISubtitleParser subtitleParser, LanguageIdentifier languageIdentifier, IFileReader fileReader) { _zipFileService = zipFileProcessor; _subtitleParser = subtitleParser; _languageIdentifier = languageIdentifier; _fileReader = fileReader; }
static void Main(string[] args) { try { var options = new SubbedOptionParser(args); if (options.ActionVerb == Verbs.Help) { options.WriteHelp(); return; } var parserFactory = new SubtitleParserFactory(); ISubtitleParser reader = parserFactory.GetReaderFor(options.InputFile); IEnumerable <ISubtitle> subs = reader.Read(options.InputFile); var subManager = new SubtitleManager(subs); switch (options.ActionVerb) { case Verbs.Extrapolate: ISubtitle targetSub = subs.FirstOrDefault(options.SubtitleSelector); subManager.Extrapolate(targetSub, options.TimeDiff); break; case Verbs.StretchBy: subManager.StretchBy(options.Factor); break; case Verbs.TransposeBy: subManager.TransposeBy(options.TimeDiff); break; } subs = subManager.Subtitles; ISubtitleParser writer = parserFactory.GetWriterFor(options.OutputFile); writer.Write(subs, options.OutputFile); } catch (Exception ex) { Console.WriteLine(ex); } }
private CuesMap FillCuesMap(ISubtitleParser parser, Stream stream, string encoding) { if (string.IsNullOrEmpty(encoding)) { encoding = parser.DefaultEncoding; } var cuesMap = new CuesMap(); using (var reader = new StreamReader(stream, Encoding.GetEncoding(encoding))) { foreach (var cue in parser.Parse(reader)) { cuesMap.Put(cue); } } return(cuesMap); }
public static List <LineInfo> ParseSubtitle(Settings settings, string filename, Dictionary <String, String> properties) { string mimeType = UtilsCommon.GetMimetypeByFilename(filename); // find right parser ISubtitleParser parser = null; switch (mimeType) { case "text/x-ass": case "text/x-ssa": parser = new SubtitleParserASS(); break; case "application/x-subrip": parser = new SubtitleParserSRT(); break; case "video/x-matroska": return(ParseSubtitleInVideoFile(settings, filename, properties)); case "": throw new Exception("File type/mime type could not be recognized for file \"" + filename + "\"!"); default: throw new Exception("Unsupportet format (" + mimeType + ") for subtitle \"" + filename + "\"!"); } // read encoding string from properties String encodingString = "utf-8"; if (properties.ContainsKey("enc")) { encodingString = properties["enc"]; } // read all lines using (var fileStream = new FileStream(filename, FileMode.Open)) { return(parser.parse(settings, fileStream, Encoding.GetEncoding(encodingString))); } }
public SrtCleaner(ISubtitleParser inner, ILogger <SrtCleaner> logger) { _inner = inner; _logger = logger; }
private SubtitlesParser CreateParser(ISubtitleParser subtitleParser) { return(new SubtitlesParser(subtitleParser)); }