public async void TestGetSearchListGood() { var omdb = new AsyncOmdbClient(TestData.apikey); var searchList = await omdb.GetSearchListAsync("Arrow", 1); var search = searchList.SearchResults.ToArray(); Assert.Equal("Arrow", search[0].Title); Assert.Equal("2012–", search[0].Year); Assert.Equal("tt2193021", search[0].ImdbId); Assert.Equal("series", search[0].Type); Assert.Equal("Broken Arrow", search[1].Title); Assert.Equal("1996", search[1].Year); Assert.Equal("tt0115759", search[1].ImdbId); Assert.Equal("movie", search[1].Type); Assert.Null(searchList.Error); Assert.Equal("True", searchList.Response); }
public async void TestGetSearchListGood2() { var omdb = new AsyncOmdbClient(TestData.apikey); var searchList = await omdb.GetSearchListAsync("Skyrim", OmdbType.Game); var search = searchList.SearchResults.ToArray(); Assert.Equal("The Elder Scrolls V: Skyrim", search[0].Title); Assert.Equal("2011", search[0].Year); Assert.Equal("tt1814884", search[0].ImdbId); Assert.Equal("game", search[0].Type); Assert.Equal("The Elder Scrolls V: Skyrim - Dawnguard", search[1].Title); Assert.Equal("2012", search[1].Year); Assert.Equal("tt5333506", search[1].ImdbId); Assert.Equal("game", search[1].Type); Assert.Null(searchList.Error); Assert.Equal("True", searchList.Response); }
public async System.Threading.Tasks.Task TestGetSearchListBad() { var omdb = new AsyncOmdbClient(TestData.apikey); await Assert.ThrowsAsync <ArgumentException>(() => omdb.GetSearchListAsync(null)); await Assert.ThrowsAsync <ArgumentException>(() => omdb.GetSearchListAsync("")); await Assert.ThrowsAsync <ArgumentException>(() => omdb.GetSearchListAsync(" ")); await Assert.ThrowsAsync <ArgumentOutOfRangeException>(() => omdb.GetSearchListAsync("star wars", 0)); await Assert.ThrowsAsync <ArgumentOutOfRangeException>(() => omdb.GetSearchListAsync(1500, "star wars", 0)); await Assert.ThrowsAsync <HttpRequestException>(() => omdb.GetSearchListAsync("asdf")); }
public async Task ImdbCmdAsync([Remainder] string query) { var author = new EmbedAuthorBuilder() .WithName("IMDb") .WithIconUrl("http://files.softicons.com/download/social-media-icons/flat-gradient-social-icons-by-guilherme-lima/png/512x512/IMDb.png") .WithUrl("https://www.imdb.com/"); var list = await _omdb.GetSearchListAsync(query).ConfigureAwait(false); if (!string.IsNullOrEmpty(list.Error)) { await Context.MarkCmdFailedAsync($"OMDB: {list.Error}").ConfigureAwait(false); return; } if (list.SearchResults.Count == 1) { var item = await _omdb.GetItemByIdAsync(list.SearchResults[0].ImdbId).ConfigureAwait(false); var embed = new EmbedBuilder() .WithColor(new Color(248, 231, 28)) .WithCurrentTimestamp() .WithTitle($"{item.Title} ({item.Year})") .WithDescription($"{item.Plot} ({item.Runtime})") .WithUrl($"https://www.imdb.com/title/{ item.ImdbId}") .WithImageUrl(item.Poster) .WithAuthor(author) .AddField("Rating", $"{item.ImdbRating}\nMetascore: {item.Metascore}") .AddField("Info", $"Director: {item.Director}\nWriter: {item.Writer}\nCast: {item.Actors}\nGenre: {item.Genre}\nCountry: {item.Country}") .AddField("Release dates", $"Released: {item.Released}\nDVD: {item.Dvd}", true) .AddField("Trivia", $"Box office: {item.BoxOffice}\nAwards: {item.Awards}") .Build(); await ReplyAsync(embed : embed).ConfigureAwait(false); return; } var pages = new List <string>(); foreach (var result in list.SearchResults) { var item = await _omdb.GetItemByIdAsync(result.ImdbId).ConfigureAwait(false); var str = $@"{$"{item.Title} ({item.Year})".Bold().Hyperlink(Helpers.BuildSafeUrl($"https://www.imdb.com/title/{item.ImdbId}"))} {item.Plot} ({item.Runtime}) {"Rating".Bold()} {item.ImdbRating} Metascore: {item.Metascore} {"Info".Bold()} Director: {item.Director} Writer: {item.Writer} Cast: {item.Actors} Genre: {item.Genre} Country: {item.Country} {"Release dates".Bold()} Released: {item.Released} DVD: {item.Dvd} {"Trivia".Bold()} Box office: {item.BoxOffice} Awards: {item.Awards}"; pages.Add(str); } var msg = new PaginatedMessage() { Title = $"Search results for {query.Italics()}", Author = author, Color = new Color(248, 231, 28), Pages = pages }; await PagedReplyAsync(msg, false).ConfigureAwait(false); }