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> >()); } }
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); }