예제 #1
0
        private static async Task <List <GroupedSearchResult> > OnlineResult(string Query)
        {
            var User = Logincredentials.getuser(1);                                        //Grab username and password
            var url  = new Uri("https://myanimelist.net/api/anime/search.xml?q=" + Query);
            var url2 = new Uri("https://myanimelist.net/api/manga/search.xml?q=" + Query); //my god, I hate this hack

            //GET
            HttpResponseMessage AnimeResponse, MangaResponse;

            byte[] bytes         = Encoding.UTF8.GetBytes(User.UserName + ":" + User.Password);
            string LoginToBase64 = Convert.ToBase64String(bytes);

            using (var client = new HttpClient()) {
                client.DefaultRequestHeaders.Add("Authorization", "Basic " + LoginToBase64);

                AnimeResponse = await client.GetAsync(url);

                AnimeResponse.EnsureSuccessStatusCode();

                MangaResponse = await client.GetAsync(url2);

                MangaResponse.EnsureSuccessStatusCode();
            }

            List <GroupedSearchResult> ItemList = new List <GroupedSearchResult>();
            XDocument AnimeItems = ParseResponse(AnimeResponse.Content.ToString());
            XDocument MangaItems = ParseResponse(MangaResponse.Content.ToString());

            if (AnimeItems == null && MangaItems == null)
            {
                return(ItemList);                                                                         // just return null list.
            }
            AnimeResponse.Dispose();
            MangaResponse.Dispose();
            if (AnimeItems != null)
            {
                var AnimeIndex = AnimeItems.Descendants("entry").Take(3);
                foreach (var item in AnimeIndex)
                {
                    ItemList.Add(new GroupedSearchResult {
                        GroupName = "Anime",
                        Library   = new ItemModel {
                            Item_Id    = (int)item.Element("id"),
                            Item_Title = item.Element("title").Value,
                            Imgurl     = item.Element("image").Value
                        }
                    });
                }
            }

            if (MangaItems != null)
            {
                var MangaIndex = MangaItems.Descendants("entry").Take(3);
                foreach (var item in MangaIndex)
                {
                    ItemList.Add(new GroupedSearchResult {
                        GroupName = "Manga",
                        Library   = new ItemModel {
                            Item_Id    = (int)item.Element("id"),
                            Item_Title = item.Element("title").Value,
                            Imgurl     = item.Element("image").Value
                        }
                    });
                }
            }
            return(ItemList);
        }