コード例 #1
0
ファイル: DiscordBot.cs プロジェクト: Davudi2134/Karuta
        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);
        }
コード例 #2
0
        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());
        }
コード例 #4
0
ファイル: HandleConversation.cs プロジェクト: eshcrow/Mirai
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
ファイル: RedditCrawler.cs プロジェクト: Davudi2134/Karuta
 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);
     }
 }
コード例 #9
0
        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);
        }
コード例 #10
0
 public async Task GetAlbumImagesAsync_WithIdNull_ThrowsArgumentNullException()
 {
     var client   = new ImgurClient("123", "1234");
     var endpoint = new AlbumEndpoint(client);
     await endpoint.GetAlbumImagesAsync(null);
 }