public async Task <List <GifResult> > Search(string query) { var client = new TenorClient("5Z2X4KYG2HVW"); Gif results = null; try{ results = client.Search(query); } catch (Exception ex) { Debug.Write(ex.Message); } GifObject[] gifResult = null; if (results != null) { gifResult = results.GifResults; } return(gifResult.Select(x => new GifResult() { Width = x.Media[0][GifFormat.mp4].Dims[0], Height = x.Media[0][GifFormat.mp4].Dims[1], Tags = x.Tags.ToList(), Title = x.Title, Url = x.Media[0][GifFormat.mp4].Url.AbsoluteUri }).ToList()); }
private async Task TenorSearch(params string[] stringArray) { var tenor = new TenorClient(_tenorToken); tenor.SetContentFilter(TenorSharp.Enums.ContentFilter.medium); GifObject[] gifs = new GifObject[0]; var range = 10; while (range > 1) { try { gifs = tenor.Search(string.Join(" ", stringArray), range).GifResults; range = 0; } catch { range /= 2; } } if (gifs.Count() == 0) { gifs = tenor.Search("confused").GifResults; } var r = new Random(); var gif = gifs.ElementAt(r.Next(0, Math.Min(5, gifs.Count()))); await ReplyAsync(gif.Url.OriginalString); }
public async Task ExecuteSearch(string query) { await ShowLoadingGrid(true) .ConfigureAwait(true); IEnumerable <ImagePost> searchResults = !string.IsNullOrEmpty(query) ? (await TenorClient.SearchAsync(query, 40) .ConfigureAwait(true)).Results : (await TenorClient.GetTrendingPostsAsync(40) .ConfigureAwait(true)).Results; lstImages.Children.Clear(); if (searchResults == null) { return; } foreach (var data in searchResults) { ImagePreviewButton previewButton = new ImagePreviewButton { ButtonSize = 150, ButtonPressAction = ViewModel.OnPicSelect }; foreach (var media in data.Media) { if (!media.TryGetValue(MediaType.TinyGif, out MediaItem value)) { continue; } previewButton.SmallImageSource = value?.Url; if (!media.TryGetValue(MediaType.Gif, out value)) { continue; } previewButton.ImageSource = value?.Url; } if (previewButton.SmallImageSource == null || previewButton.ImageSource == null) { continue; } lstImages.Children.Add(previewButton); } await Task.Delay(TimeSpan.FromSeconds(2)) .ConfigureAwait(true); await ShowLoadingGrid(false) .ConfigureAwait(true); }
public async Task PoutAsync() { var tenor = new TenorClient(Environment.GetEnvironmentVariable("TENOR_API")); var pouts = tenor.Search("anime pout"); var output = pouts.GifResults[new Random().Next(pouts.GifResults.Length)]; await RankaReplyAsync($"{Context.User.Username} is pouting").ConfigureAwait(false); await RankaReplyAsync(output.Url.AbsoluteUri).ConfigureAwait(false); }
public async Task HugAsync() { var tenor = new TenorClient(Environment.GetEnvironmentVariable("TENOR_API")); var hugs = tenor.Search("anime hug"); var output = hugs.GifResults[new Random().Next(hugs.GifResults.Length)]; await RankaReplyAsync($"Oh my you got nobody? Fine I'll give you a hug <(^-^)>").ConfigureAwait(false); await RankaReplyAsync(output.Url.AbsoluteUri).ConfigureAwait(false); }
public async Task Should_Apply_Filter() { var client = new TenorClient(new TenorConfiguration { ApiKey = Utils.ApiKey, ContentFilter = ContentFilter.Off }); var results = await client.SearchAsync("ass"); Assert.NotEmpty(results.Results); }
public async Task Should_Use_Correct_Culture() { var culture = CultureInfo.GetCultureInfo("es"); var client = new TenorClient(new TenorConfiguration { ApiKey = Utils.ApiKey, Locale = culture }); var results = await client.SearchAsync("Zanahoria"); Assert.NotEmpty(results.Results); }
public async Task PoutAsync([Summary("That someone")] IUser user) { if (user == null) { throw new ArgumentNullException(nameof(user), "No user mentioned"); } var tenor = new TenorClient(Environment.GetEnvironmentVariable("TENOR_API")); var pouts = tenor.Search("anime pout"); var output = pouts.GifResults[new Random().Next(pouts.GifResults.Length)]; await RankaReplyAsync($"{Context.User.Username} is pouting at {user.Mention}").ConfigureAwait(false); await RankaReplyAsync(output.Url.AbsoluteUri).ConfigureAwait(false); }
public async Task HugAsync([Summary("That someone")] IUser user, [Remainder][Summary("Reason")] string reason) { if (user == null) { throw new ArgumentNullException(nameof(user), "No user mentioned"); } var tenor = new TenorClient(Environment.GetEnvironmentVariable("TENOR_API")); var hugs = tenor.Search("anime hug"); var output = hugs.GifResults[new Random().Next(hugs.GifResults.Length)]; await RankaReplyAsync($"{Context.User.Username} hugs {user.Mention} for {reason}").ConfigureAwait(false); await RankaReplyAsync(output.Url.AbsoluteUri).ConfigureAwait(false); }
public async Task <List <GifCategoryResult> > Categories() { var client = new TenorClient("5Z2X4KYG2HVW"); Category results = client.Categories(); return(results.Tags.Select(x => new GifCategoryResult() { Image = x.Image.AbsoluteUri, Name = x.Name, Path = x.Path.AbsoluteUri, SearchTerm = x.SearchTerm }).ToList()); }
static TenorSearchPage() { TenorConfig = new TenorConfiguration { ApiKey = SettingsManager.PersistentSettings.GetTenorAPIKey(), Locale = CultureInfo.CurrentCulture, ContentFilter = ContentFilter.Medium, MediaFilter = MediaFilter.Minimal, AspectRatio = AspectRatio.All }; TenorClient = new TenorClient(TenorConfig); }
public async Task SlapAsync([Summary("That someone")] IUser user, [Remainder][Summary("Reasoning")] string reasoning) { if (user == null) { throw new ArgumentNullException(nameof(user), "No user mentioned"); } if (user.IsBot && user.Id == Context.Client.CurrentUser.Id) { await RankaReplyAsync($"w-why? for {reasoning}?? .·´¯`(>▂<)´¯`·.").ConfigureAwait(false); return; } var tenor = new TenorClient(Environment.GetEnvironmentVariable("TENOR_API")); var slaps = tenor.Search("anime slap"); var output = slaps.GifResults[new Random().Next(slaps.GifResults.Length)]; await RankaReplyAsync($"{Context.User.Username} slapped {user.Mention} for {reasoning}").ConfigureAwait(false); await RankaReplyAsync(output.Url.AbsoluteUri).ConfigureAwait(false); }
public async Task TenorSearch(string query, int numPosts) { var tenor = new TenorClient(_config["TenorApiKey"]); tenor.SetContentFilter(TenorSharp.Enums.ContentFilter.high); await Log(msg : new Discord.LogMessage(message: $"Getting gif results for: [{query}]", severity: Discord.LogSeverity.Info, source: "GifCommand")); var gifs = tenor.Search(query).GifResults; var rand = new Random(); var gif = gifs[rand.Next(0, Math.Min(numPosts, gifs.Length))].Url.OriginalString; await Log(msg : new Discord.LogMessage(message: $"Got the gif: [{gif}]", severity: Discord.LogSeverity.Info, source: "GifCommand")); await Context.Channel.SendMessageAsync(gif); await Log(msg : new Discord.LogMessage(message: "Gif sent", severity: Discord.LogSeverity.Info, source: "GifCommand")); }
public Trending_Tests() { client = new TenorClient(Utils.ApiKey); }
public async Task ExecuteSearch( string query) { SearchQueryTextBox.IsEnabled = false; await ShowLoadingGrid() .ConfigureAwait(true); try { var searchResults = !string.IsNullOrEmpty(query) ? (await TenorClient.SearchAsync(query, 40) .ConfigureAwait(true)).Results : (await TenorClient.GetTrendingPostsAsync(40) .ConfigureAwait(true)).Results; ImagesWrapPanel.Children.Clear(); if (searchResults == null) { return; } foreach (var data in searchResults) { var imageButton = new ImagePreviewButton { ButtonSize = 150, Margin = new Thickness(5) }; imageButton.Click += ImagePreviewButton_Click; foreach (var media in data.Media) { if (!media.TryGetValue(MediaType.Gif, out var value)) { continue; } imageButton.ImageSource = value?.Url; if (!media.TryGetValue(MediaType.TinyGif, out value)) { value = media[MediaType.Gif]; } imageButton.SmallImageSource = value?.Url; } if (imageButton.ImageSource == null || imageButton.SmallImageSource == null) { continue; } ImagesWrapPanel.Children.Add( imageButton); } await Task.Delay( TimeSpan.FromSeconds(2)) .ConfigureAwait(true); } finally { await HideLoadingGrid() .ConfigureAwait(true); SearchQueryTextBox.IsEnabled = true; } }
public Search_Tests() { client = new TenorClient(Utils.ApiKey); }
public Post_Tests() { client = new TenorClient(Utils.ApiKey); }
public Suggestion_Tests() { client = new TenorClient(Utils.ApiKey); }