Ejemplo n.º 1
0
        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);
        }