Пример #1
0
        public async Task <IEnumerable <Tuple <string, string> > > GetImagesFromUrl(string title, string url)
        {
            try
            {
                var uri = new Uri(url);

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

                //if (filename.EndsWith(".gif"))
                //    return Enumerable.Empty<Tuple<string, string>>();

                if (filename.EndsWith(".jpg") || filename.EndsWith(".png") || filename.EndsWith(".jpeg") || filename.EndsWith(".gif"))
                {
                    return new Tuple <string, string>[] { Tuple.Create(title, url) }
                }
                ;
                else
                {
                    var targetHost = uri.DnsSafeHost.ToLower(); //make sure we can compare caseless

                    switch (targetHost)
                    {
                    case "imgur.com":
                        return(await Imgur.GetImagesFromUri(title, uri));

                    case "min.us":
                        return(await Minus.GetImagesFromUri(title, uri));

                    case "www.quickmeme.com":
                    case "i.qkme.me":
                    case "quickmeme.com":
                    case "qkme.me":
                        return(Quickmeme.GetImagesFromUri(title, uri));

                    case "memecrunch.com":
                        return(Memecrunch.GetImagesFromUri(title, uri));

                    case "flickr.com":
                        return(await Flickr.GetImagesFromUri(title, uri));

                    default:
                        return(Enumerable.Empty <Tuple <string, string> >());
                    }
                }
            }
            catch
            {
                return(Enumerable.Empty <Tuple <string, string> >());
            }
        }
Пример #2
0
        static ImageAcquisition()
        {
            var quickmeme     = new Quickmeme();
            var picsarus      = new Picsarus();
            var memecrunch    = new Memecrunch();
            var livememe      = new Livememe();
            var memedad       = new Memedad();
            var memegen       = new Memegen();
            var memefive      = new Memefive();
            var ehost         = new Ehost();
            var makeameme     = new Makeameme();
            var imgflip       = new Imgflip();
            var crtlv         = new Ctrlv();
            var picshd        = new Picshd();
            var redditUploads = new RedditUploads();

            _simpleAPIs.Add("qkme.me", quickmeme);
            _simpleAPIs.Add("quickmeme.com", quickmeme);
            _simpleAPIs.Add("picsarus.com", picsarus);
            _simpleAPIs.Add("memecrunch.com", memecrunch);
            _simpleAPIs.Add("livememe.com", livememe);
            _simpleAPIs.Add("memedad.com", memedad);
            _simpleAPIs.Add("memefive.com", memefive);
            _simpleAPIs.Add("eho.st", ehost);
            _simpleAPIs.Add("makeameme.org", makeameme);
            _simpleAPIs.Add("imgflip.com", imgflip);
            _simpleAPIs.Add("ctrlv.in", crtlv);
            _simpleAPIs.Add("i.reddituploads.com", redditUploads);
            _simpleAPIs.Add("reddituploads.com", redditUploads);
            _simpleAPIs.Add("picshd.com", picshd);

            _simpleAPIs.Add("memegen.com", memegen);
            _simpleAPIs.Add("memegen.de", memegen);
            _simpleAPIs.Add("memegen.nl", memegen);
            _simpleAPIs.Add("memegen.fr", memegen);
            _simpleAPIs.Add("memegen.it", memegen);
            _simpleAPIs.Add("memegen.es", memegen);
            _simpleAPIs.Add("memegen.se", memegen);
            _simpleAPIs.Add("memegen.pl", memegen);

            var imgur  = new Imgur();
            var flickr = new Flickr();
            var minus  = new Minus();


            _asyncAPIs.Add("imgur.com", imgur);
            _asyncAPIs.Add("flickr.com", flickr);
            _asyncAPIs.Add("min.us", minus);
        }