Esempio n. 1
0
        private async Task <Article> ArticleReceived(ArticleDefinition definition)
        {
            var transformed = transformer.Transform(definition);

            logger.LogDebug("ArticleReceived: {0}({1})", transformed.Title, transformed.Id);
            if (scannedLookup.TryGetValue(transformed.Id, out _))
            {
                logger.LogDebug("Article already processed: {0}", transformed.Id);
                return(null);
            }

            scannedLookup[transformed.Id] = true;
            try
            {
                var result = await reader.Read(transformed, tokenSource.Token).ConfigureAwait(false);

                scanned[transformed.Id] = result;
                return(result);
            }
            catch (Exception e)
            {
                logger.LogError(e, "Failed");
            }

            return(null);
        }
        public async Task Construct()
        {
            var article = new ArticleDefinition
            {
                Id  = "4210510",
                Url = new Uri("https://seekingalpha.com/article/4210510-apple-price-matters")
            };
            var     tokenSource = new CancellationTokenSource(100000);
            Article result      = await instance.Read(article, tokenSource.Token).ConfigureAwait(false);

            Assert.AreEqual(6673, result.Content.Text.Length);
            Assert.Greater(result.Comments.Length, 10);
        }
        public async Task ReadAll()
        {
            var tokenSource = new CancellationTokenSource(TimeSpan.FromMinutes(2));
            var definition  = new ArticleDefinition();

            definition.Id  = "80585701";
            definition.Url = new Uri("https://www.delfi.lt/auto/patarimai/siulo-keliuose-statyti-naujo-tipo-matuoklius-gales-daugiau-nei-isivaizduojate.d?id=80585701");
            var result = await instance.Read(definition, tokenSource.Token).ConfigureAwait(false);

            Assert.IsNotNull(result);
            Assert.GreaterOrEqual(result.Content.Text.Length, 100);
            Assert.GreaterOrEqual(result.Content.Title.Length, 50);
            Assert.GreaterOrEqual(result.Comments.Length, 100);
        }