/// <inheritdoc/> public override MediaFile Clone() { SrtSubTitleFile srtSubTitleFileClone = new SrtSubTitleFile(this.Configuration); srtSubTitleFileClone.Description = this.Description; srtSubTitleFileClone.URL = this.URL; srtSubTitleFileClone.URLLocalFilesystem = this.URLLocalFilesystem; srtSubTitleFileClone.Filename = this.Filename; srtSubTitleFileClone.Extension = this.Extension; srtSubTitleFileClone.Server = this.Server; srtSubTitleFileClone.Media = this.Media; srtSubTitleFileClone.SubTitle = this.SubTitle; srtSubTitleFileClone.FileIndex = this.FileIndex; srtSubTitleFileClone.SubTitleEntries.AddRange(this.SubTitleEntries); srtSubTitleFileClone.OffsetTime = this.OffsetTime; return (SrtSubTitleFile)srtSubTitleFileClone; }
/// <summary> /// checks XML-file from MovieCollector for SubTitles linked to the Video and sets them for this VideoFile /// </summary> /// <param name="xMLMedia">XML-file from MovieCollector</param> public void ReadSubTitleFile(XmlNode xMLMedia) { List<SubTitleFile> lstSubTitleFiles = new List<SubTitleFile>(); foreach (SubTitle subTitle in ((Video)this.Media).SubTitles) { foreach (XmlNode xMLSubTitleStreamFile in xMLMedia.XMLReadSubnode("links").XMLReadSubnodes("link")) { // check all links for subtitle in language if ((xMLSubTitleStreamFile.XMLReadSubnode("urltype").XMLReadInnerText(string.Empty) == "Movie") && xMLSubTitleStreamFile.XMLReadSubnode("description").XMLReadInnerText(string.Empty).Contains("Untertitel." + subTitle.Language + ".")) { // create new subtitle objects SrtSubTitleFile srtSubTitleFile = new SrtSubTitleFile(this.Configuration); srtSubTitleFile.Media = this.Media; srtSubTitleFile.SubTitle = subTitle; // name and filenames srtSubTitleFile.Description = xMLSubTitleStreamFile.XMLReadSubnode("description").XMLReadInnerText(string.Empty); srtSubTitleFile.URL = xMLSubTitleStreamFile.XMLReadSubnode("url").XMLReadInnerText(string.Empty); srtSubTitleFile.ConvertFilename(); // check for fileIndex int completeLength = srtSubTitleFile.Description.Length; int subtitleLength = ("Untertitel." + subTitle.Language + ".").Length; int fileIndex = 1; if (!int.TryParse(srtSubTitleFile.Description.Substring(subtitleLength, completeLength - subtitleLength).LeftOf("."), out fileIndex)) { fileIndex = 1; } // subtitle file name and type if (srtSubTitleFile.Extension.Contains(".srt") && this.FileIndex == fileIndex) { srtSubTitleFile.FileIndex = fileIndex; srtSubTitleFile.ReadFromSubTitleFile(); lstSubTitleFiles.Add(srtSubTitleFile); } } } } this.SubTitleFiles.AddRange(lstSubTitleFiles); }