コード例 #1
0
        /// <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;
        }
コード例 #2
0
        /// <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);
        }