public async Task <List <string> > ResolveImgurUrl(Uri url) { List <string> imageLinks = new List <string>(); if (url.AbsolutePath.Contains("/a/") || url.AbsolutePath.Contains("/gallery/")) { //Album string id = url.AbsolutePath.Split('/')[2]; //Karuta.Write($"album: {id}"); if (id.Length < 3) { throw new Exception("Only Imgur URLs are supported"); } var album = await albumEndpoint.GetAlbumImagesAsync(id); foreach (var image in album) { imageLinks.Add(image.Link); } } else if (Path.GetFileNameWithoutExtension(url.AbsolutePath) != "new") { string id = Path.GetFileNameWithoutExtension(url.AbsolutePath); //Karuta.Write($"item: {id}"); //Indirect Imgur DL //var image = await imgEndpoint.GetImageAsync(id); imageLinks.Add($"http://i.imgur.com/{id}.png"); } return(imageLinks); }
async Task <IEnumerable <IImage> > AccessTheWebAsync() { var client = new ImgurClient(token); var endpoint = new AlbumEndpoint(client); var images = await endpoint.GetAlbumImagesAsync(albumlink); return(images); }
public async Task GetAlbumImagesAsync_WithAlbum_AreEqual(IAlbum actualAlbum) { var client = new MashapeClient(ClientId, ClientSecret, MashapeKey, OAuth2Token); var endpoint = new AlbumEndpoint(client); var albums = await endpoint.GetAlbumImagesAsync(actualAlbum.Id); Assert.AreEqual(2, albums.Count()); }
internal async static Task Meme(ReceivedMessage Message) { var client = new ImgurClient(Bot.Config["ImgurId"], Bot.Config["ImgurSecret"]); var endpoint = new AlbumEndpoint(client); var images = await endpoint.GetAlbumImagesAsync("AEWxy"); var imagesArray = images.ToArray(); Message.Respond(imagesArray[Rand.Next(0, imagesArray.Length)].Link, false); }
public async Task GetAlbumImagesAsync_WithIdNull_ThrowsArgumentNullException() { var client = new ImgurClient("123", "1234"); var endpoint = new AlbumEndpoint(client); var exception = await Record.ExceptionAsync( async() => await endpoint.GetAlbumImagesAsync(null).ConfigureAwait(false)) .ConfigureAwait(false); Assert.NotNull(exception); Assert.IsType <ArgumentNullException>(exception); }
public async Task GetAlbumImagesAsync_ImageCountTrue() { var mockUrl = "https://api.imgur.com/3/album/5F5Cy/images"; var mockResponse = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(MockAlbumEndpointResponses.Imgur.GetAlbumImages) }; var client = new ImgurClient("123", "1234"); var endpoint = new AlbumEndpoint(client, new HttpClient(new MockHttpMessageHandler(mockUrl, mockResponse))); var images = await endpoint.GetAlbumImagesAsync("5F5Cy").ConfigureAwait(false); Assert.True(images.Count() == 3); }
public async Task GetAlbumImagesAsync_ImageCountIsTrue() { var fakeHttpMessageHandler = new FakeHttpMessageHandler(); var fakeResponse = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(AlbumEndpointResponses.Imgur.GetAlbumImagesResponse) }; fakeHttpMessageHandler.AddFakeResponse(new Uri("https://api.imgur.com/3/album/5F5Cy/images"), fakeResponse); var client = new ImgurClient("123", "1234"); var endpoint = new AlbumEndpoint(client, new HttpClient(fakeHttpMessageHandler)); var images = await endpoint.GetAlbumImagesAsync("5F5Cy"); Assert.IsTrue(images.Count() == 3); }
void DownloadImgurAlbum(Uri url, string fileName, Post p, string curDir) { try { string imgurID = url.AbsolutePath; imgurID = imgurID.Split('/')[2]; if (imgurID.Length < 3) { return; } //logger.Log("Saving Album: " + log, "/r/" + sub.Name, _verbose); //logger.Log("Album ID: " + imgurID, "/r/" + sub.Name, _verbose); var task = albumEndpoint.GetAlbumImagesAsync(imgurID); Task.WaitAll(task); var album = task.Result; int i = 1; foreach (var image in album) { if (!isRunning) { break; } string thisFile = "[" + p.CreatedUTC.ToEpoch() + "] [" + i + "] " + fileName; thisFile = curDir + ((p.NSFW) ? "/NSFW" : "") + "/" + thisFile; //logger.Log(thisFile, name, verbose); string ext = Path.GetExtension(image.Link); if (File.Exists(thisFile + ((ext == ".gif") ? ext : ".png"))) { //logger.LogWarning("Skipping \"" + p.Title + "\", file already exsits", "/r/" + sub.Name, verbose); i++; continue; } SaveImage(p, thisFile, new Uri(image.Link)); i++; } } catch (Exception e) { LOGGER.LogWarning($"Unable to Download {p.Title}, {e.Message}", $"/r/{p.SubredditName}", verbose); LOGGER.LogError(e.StackTrace, name, verbose); } }
private async Task <IEnumerable <ImageResult> > GetImagesAsync() { try { var client = new ImgurClient("bc01b8dbb915f5f", "07927d3b0dfe5c530d663d89b9110100f7a1d506"); var endpoint = new AlbumEndpoint(client); var image = await endpoint.GetAlbumImagesAsync("SZFpO6D"); return(image.OrderByDescending(x => x.Width).Select(x => new ImageResult { Link = x.Link, Description = x.Description }).ToList()); } catch (ImgurException imgurEx) { Debug.Write("An error occurred getting an image from Imgur."); Debug.Write(imgurEx.Message); } return(null); }
public async Task GetAlbumImagesAsync_WithIdNull_ThrowsArgumentNullException() { var client = new ImgurClient("123", "1234"); var endpoint = new AlbumEndpoint(client); await endpoint.GetAlbumImagesAsync(null); }