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); }