Exemple #1
0
        public async void LoadPosts()
        {
            var client   = new ImgurClient("749421e4eed8f22", "87f3637908d8c0fa86c567db9e447ad166a9abdb");
            var endpoint = new GalleryEndpoint(client);
            var images   = await endpoint.GetGalleryAsync();

            foreach (var image in images)
            {
                if (image.GetType() == typeof(GalleryImage))
                {
                    var img  = (GalleryImage)image;
                    var post = new Post(img.Id);
                    posts.AddLast(post);
                }
                else
                {
                    var album = (GalleryAlbum)image;
                    foreach (var albm in album.Images)
                    {
                        posts.AddLast(new Post(albm.Id));
                        Console.WriteLine("Album image found:" + albm.Id);
                    }
                }
            }
            currentPost = posts.First;

            updatePicture();
        }
Exemple #2
0
        private async void LoadMainGallery()
        {
            var galleryEndpoint = new GalleryEndpoint(_currentUser.ApiClient, _currentUser.HttpClient);

            _listBox = new ListBox();

            ImageViewer.Content = _listBox;

            var images = await galleryEndpoint.GetGalleryAsync(new GalleryParametersObject());

            foreach (var image in images.Where(s => s.Height > 0 && s.Width > 0 && !string.IsNullOrEmpty(s.Link)))
            {
                _listBox.Items?.Add(new Image
                {
                    Source = new BitmapImage
                    {
                        UriSource         = new Uri(image.Link),
                        DecodePixelHeight = 300,
                        DecodePixelWidth  = 300,
                    },
                    Height = 300,
                    Width  = 300,
                    Name   = image.Id
                });
            }
        }
Exemple #3
0
        public async void GetGallery()
        {
            var client   = new ImgurClient("59b901759d20a52");
            var endpoint = new GalleryEndpoint(client);
            var gallery  = await endpoint.GetGalleryAsync();

            DataFromImgur.Gallery.Add(gallery);
        }
        public static IEnumerable <GalleryAlbumWrapper> GetAlbums(string clientId, int limit, int tries)
        {
            var client = new ImgurClient(clientId);

            var endpoint = new GalleryEndpoint(client);

            var ret = new List <GalleryAlbumWrapper>(limit);

            int errors = 0;

            for (int page = 0; page < 50; page++)
            {
                try
                {
                    var albumsTask = endpoint.GetGalleryAsync(GallerySection.User, GallerySortOrder.Rising, TimeWindow.Day, page, true);
                    albumsTask.Wait();

                    foreach (var album in albumsTask.Result.OfType <GalleryAlbum>())
                    {
                        if (ret.Count == limit)
                        {
                            break;
                        }

                        ret.Add(new GalleryAlbumWrapper(album));
                    }

                    //reset the error counter
                    errors = 0;
                }
                catch (AggregateException ex) // when(ex.InnerException.Message== "Imgur is temporarily over capacity.Please try again later.")
                {
                    //after 3 errors just bail and return what we got
                    errors++;
                    if (errors >= tries)
                    {
                        return(ret);
                    }

                    //otherwise try the same page again
                    page--;
                    Thread.Sleep(1000);
                }

                if (ret.Count == limit)
                {
                    return(ret);
                }
            }

            return(ret);
        }
        public async Task GetGalleryAsync_DefaultParameters_Any()
        {
            var mockUrl      = "https://api.imgur.com/3/gallery/hot/viral/day/?showViral=true";
            var mockResponse = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(MockGalleryEndpointResponses.GetGallery)
            };

            var client   = new ImgurClient("123", "1234", MockOAuth2Token);
            var endpoint = new GalleryEndpoint(client,
                                               new HttpClient(new MockHttpMessageHandler(mockUrl, mockResponse)));
            var gallery = await endpoint.GetGalleryAsync().ConfigureAwait(false);

            Assert.True(gallery.Any());
        }
Exemple #6
0
        //public async Task<IImage> GetPopularImages()
        //{
        //    var client = new ImgurClient("59b901759d20a52");
        //    var endpoint = new GalleryEndpoint(client);
        //    var gallery = await endpoint.GetGalleryAsync();

        //    foreach (var item in gallery)
        //    {
        //        if (item.GetType() == typeof(Imgur.API.Models.Impl.GalleryImage))
        //        {
        //            var endp = new ImageEndpoint(client);
        //            var im = endp.GetImageAsync(item.GetType().GetProperty("Id").GetValue(item).ToString());
        //            return im.Result;
        //        }
        //    }
        //    return null;
        //}

        async void GetAlbums()
        {
            var client   = new ImgurClient(ClientID);
            var endpoint = new GalleryEndpoint(client);
            var gallery  = await endpoint.GetGalleryAsync();

            foreach (var item in gallery)
            {
                if (item.GetType() == typeof(Imgur.API.Models.Impl.GalleryAlbum))
                {
                    var endp         = new GalleryEndpoint(client);
                    var galleryAlbum = endp.GetGalleryAlbumAsync(item.GetType().GetProperty("Id").GetValue(item).ToString());
                    Albums.Add(galleryAlbum.Result);
                }
            }
        }
        public async Task GetGalleryAsync_WithUserRisingMonth2ShowViralFalse_Any()
        {
            var mockUrl      = "https://api.imgur.com/3/gallery/user/rising/month/2?showViral=false";
            var mockResponse = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(MockGalleryEndpointResponses.GetGallery)
            };

            var client   = new ImgurClient("123", "1234", MockOAuth2Token);
            var endpoint = new GalleryEndpoint(client,
                                               new HttpClient(new MockHttpMessageHandler(mockUrl, mockResponse)));
            var gallery = await endpoint.GetGalleryAsync(GallerySection.User,
                                                         GallerySortOrder.Rising,
                                                         TimeWindow.Month, 2, false).ConfigureAwait(false);

            Assert.True(gallery.Any());
        }
Exemple #8
0
        private async Task GetGalleryImagesAsync(string query)
        {
            var endpoint = new GalleryEndpoint(new ImgurClient(Constants.appId));
            IEnumerable <IGalleryItem> images = await endpoint.GetGalleryAsync();

            if (this.images != null)
            {
                this.images.Clear();
            }
            this.images = FilterClass <IGalleryItem> .convertList(query, images.ToList());

            _adapter = new LvImgBinder(this, Resource.Layout.listview_model, this.images, currentUser);
            RunOnUiThread(() =>
            {
                _lv.Adapter    = _adapter;
                _lv.ItemClick += lv_ItemClick;
            });
        }
Exemple #9
0
        private async void Search_Button_Clicked(object sender, RoutedEventArgs e)
        {
            var galleryEndpoint = new GalleryEndpoint(_currentUser.ApiClient, _currentUser.HttpClient);

            _listBox = new ListBox();

            ImageViewer.Content = _listBox;

            var sectionType = ConfigurationManager.Instance.ParseEnum <GallerySectionType>(((ComboBoxItem)SectionTypeComboBox.SelectedItem)?.Content?.ToString());
            var sortType    = ConfigurationManager.Instance.ParseEnum <GallerySortType>(((ComboBoxItem)SortTypeComboBox.SelectedItem)?.Content?.ToString());
            var windowType  = ConfigurationManager.Instance.ParseEnum <GalleryWindowType>(((ComboBoxItem)WindowTypeComboBox.SelectedItem)?.Content?.ToString());

            var parametersObject = new GalleryParametersObject
            {
                ExactSearch = SearchBox.Text,
                SectionType = sectionType,
                SortType    = sortType,
                WindowType  = windowType
            };

            var images = await galleryEndpoint.GetGalleryAsync(parametersObject);

            foreach (var image in images.Where(s => s.Height > 0 && s.Width > 0 && !string.IsNullOrEmpty(s.Link)))
            {
                _listBox.Items?.Add(new Image
                {
                    Source = new BitmapImage
                    {
                        UriSource         = new Uri(image.Link),
                        DecodePixelHeight = 300,
                        DecodePixelWidth  = 300,
                    },
                    Height = 300,
                    Width  = 300,
                    Name   = image.Id
                });
            }
        }