Esempio n. 1
0
        /// <summary>
        /// 文字列を解析する
        /// </summary>
        /// <param name="rawContent"></param>
        /// <returns></returns>
        public IXenoVideoParseResult Parse(string rawContent)
        {
            var result = new XenoVideoParseResult();

            foreach (var line in rawContent.Split(Environment.NewLine).Select((content, index) => new { content, index }).Where(l => !l.content.IsNullOrEmpty()))
            {
                IXenoVideoNode node;
                try
                {
                    node = new XenoVideoNode(line.content);
                }
                catch (Exception e)
                {
                    this.logger.Error($"行の解析に失敗しました。(行:{line.index + 1}, content: {line.content})", e);
                    result.FailedCount++;
                    continue;
                }

                if (node.NiconicoId is null)
                {
                    result.SkippedCount++;
                    continue;
                }

                result.Videos.Add(node);
                result.SucceededCount++;
            }

            return(result);
        }
Esempio n. 2
0
        public void 動画情報ファイルノードの解析をテストする(string content, string id)
        {
            var video = new XenoVideoNode(content);

            Assert.That(video.NiconicoId, Is.EqualTo(id));
        }