Beispiel #1
0
        public static async Task <IEnumerable <Tuple <string, string> > > GetImagesFromUrl(string title, string url, IResourceNetworkLayer networkLayer, IProgress <float> progress, CancellationToken token)
        {
            try
            {
                var uri = new Uri(url);

                string filename = Path.GetFileName(uri.LocalPath);

                if (filename.EndsWith(".jpg") || filename.EndsWith(".png") || filename.EndsWith(".jpeg") || filename.EndsWith(".gif"))
                {
                    return new Tuple <string, string>[] { Tuple.Create(title, url) }
                }
                ;
                else
                {
                    var domain = HttpClientUtility.GetDomainFromUrl(url).ToLower();

                    IAsyncAcquisitionAPI asyncApi  = null;
                    IAcquisitionAPI      simpleApi = null;
                    if (_simpleAPIs.TryGetValue(domain, out simpleApi))
                    {
                        return(new Tuple <string, string>[] { Tuple.Create(title, simpleApi.GetImageFromUri(uri)) });
                    }
                    else if (_asyncAPIs.TryGetValue(domain, out asyncApi))
                    {
                        return(await asyncApi.GetImagesFromUri(title, uri, networkLayer, progress, token));
                    }
                    else
                    {
                        return(Enumerable.Empty <Tuple <string, string> >());
                    }
                }
            }
            catch
            {
                return(Enumerable.Empty <Tuple <string, string> >());
            }
        }
Beispiel #2
0
        public static ImageAPIType ImageAPIType(string url)
        {
            try
            {
                var uri = new Uri(url);

                string filename = Path.GetFileName(uri.LocalPath);

                if (filename.EndsWith(".jpg") || url.EndsWith(".png") || url.EndsWith(".jpeg") || filename.EndsWith(".gif"))
                {
                    return(CommonResourceAcquisition.ImageAcquisition.ImageAPIType.Simple);
                }
                else
                {
                    var domain = HttpClientUtility.GetDomainFromUrl(url).ToLower();
                    IAsyncAcquisitionAPI asyncApi  = null;
                    IAcquisitionAPI      simpleApi = null;
                    if (_simpleAPIs.TryGetValue(domain, out simpleApi))
                    {
                        return(CommonResourceAcquisition.ImageAcquisition.ImageAPIType.Simple);
                    }
                    else if (_asyncAPIs.TryGetValue(domain, out asyncApi))
                    {
                        return(asyncApi.IsMatch(uri) ? CommonResourceAcquisition.ImageAcquisition.ImageAPIType.Async : CommonResourceAcquisition.ImageAcquisition.ImageAPIType.None);
                    }
                    else
                    {
                        return(CommonResourceAcquisition.ImageAcquisition.ImageAPIType.None);
                    }
                }
            }
            catch
            {
                //ignore failure here, we're going to return false anyway
            }
            return(CommonResourceAcquisition.ImageAcquisition.ImageAPIType.None);
        }