protected override async Task <DataProviderInformation> GetDataProviderInformation(HttpClient httpClient) { DataProviderInformation result; if (this.request.Id.StartsWith("UpdateOEmbed")) { result = await base.MakeAndProcessHttpRequest(httpClient, OEmbedDataProvider.GetOEmbedRequestUri(this.uri), new LinkPreviewDataProvider.ProcessResponseStreamDelegate(OEmbedDataProvider.ProcessOEmbedResponseStream)); } else { WebPageInformation webPageInformation = (WebPageInformation)(await base.MakeAndProcessHttpRequest(httpClient, this.uri, new LinkPreviewDataProvider.ProcessResponseStreamDelegate(WebPageDataProvider.ProcessResponseStream))); OEmbedInformation oembedInformation = (OEmbedInformation)(await base.MakeAndProcessHttpRequest(httpClient, OEmbedDataProvider.GetOEmbedRequestUri(this.uri), new LinkPreviewDataProvider.ProcessResponseStreamDelegate(OEmbedDataProvider.ProcessOEmbedResponseStream))); oembedInformation.Text = webPageInformation.Text; result = oembedInformation; } return(result); }
public static LinkPreviewDataProvider GetDataProvider(GetLinkPreviewRequest request, RequestDetailsLogger logger, bool activeViewsConvergenceEnabled) { Uri uri = LinkPreviewDataProvider.CreateUri(request.Url); LinkPreviewDataProvider result; Uri uri2; if (activeViewsConvergenceEnabled && OEmbedVideoPreviewBuilder.IsOEmbedVideoUri(uri, logger)) { result = new OEmbedDataProvider(uri, request, logger); } else if (WikipediaLinkPreviewBuilder.TryGetWikipediaServiceUri(uri, out uri2)) { result = new WikipediaDataProvider(uri2, request, logger); } else { result = new WebPageDataProvider(uri, request, logger); } return(result); }