示例#1
0
        public override GetLinkPreviewResponse CreatePreview(DataProviderInformation dataProviderInformation)
        {
            OEmbedInformation  oembedInformation = (OEmbedInformation)dataProviderInformation;
            string             text               = oembedInformation.Text;
            OEmbedResponse     oembedResponse     = oembedInformation.OEmbedResponse;
            LinkPreviewBuilder linkPreviewBuilder = new OEmbedVideoPreviewBuilder(this.request, text, oembedResponse, this.logger, dataProviderInformation.ResponseUri);

            return(linkPreviewBuilder.Execute());
        }
示例#2
0
        private static Uri GetOEmbedRequestUri(Uri uri)
        {
            string oembedQueryForUri = OEmbedVideoPreviewBuilder.GetOEmbedQueryForUri(uri);

            if (oembedQueryForUri != null)
            {
                return(new Uri(oembedQueryForUri));
            }
            GetLinkPreview.ThrowInvalidRequestException("OEmbedQueryStringNotFound", string.Format("Could not get OEmbed query string for url {0}", uri.AbsoluteUri));
            return(null);
        }
        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);
        }