Exemple #1
0
        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());
        }
Exemple #2
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        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);
        }
Exemple #10
0
        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);
        }
Exemple #12
0
        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);
 }
Exemple #15
0
        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;
            }
        }
Exemple #16
0
 public Search_Tests()
 {
     client = new TenorClient(Utils.ApiKey);
 }
Exemple #17
0
 public Post_Tests()
 {
     client = new TenorClient(Utils.ApiKey);
 }
Exemple #18
0
 public Suggestion_Tests()
 {
     client = new TenorClient(Utils.ApiKey);
 }