Esempio n. 1
0
        public override Task <AutocompletionResult> GenerateSuggestionsAsync(
            IInteractionContext context,
            IAutocompleteInteraction autocompleteInteraction,
            IParameterInfo parameter,
            IServiceProvider services
            )
        {
            var input = autocompleteInteraction.Data.Current.Value as string;

            var matches = _cmdHelpService.GetCmdsStartsWithInput(context.User, input)
                          .Select(cmd =>
            {
                if (cmd is CommandInfo regCmdInfo)
                {
                    return(regCmdInfo.Name);
                }
                else
                {
                    return((cmd as IApplicationCommandInfo)?.Name);
                }
            })
                          .Distinct()
                          .PartialSort(25);

            var results = AutocompletionResult.FromSuccess(matches.Select(cmdName => new AutocompleteResult(cmdName, cmdName)));

            return(Task.FromResult(results));
        }
Esempio n. 2
0
    public override async Task <AutocompletionResult> GenerateSuggestionsAsync(IInteractionContext context, IAutocompleteInteraction autocompleteInteraction, IParameterInfo parameter, IServiceProvider services)
    {
        // Create a collection with suggestions for autocomplete
        IEnumerable <AutocompleteResult> results = new[]
        {
            new AutocompleteResult("Name1", "value111"),
            new AutocompleteResult("Name2", "value2")
        };

        // max - 25 suggestions at a time (API limit)
        return(AutocompletionResult.FromSuccess(results.Take(25)));
    }
        public override Task <AutocompletionResult> GenerateSuggestionsAsync(IInteractionContext context, IAutocompleteInteraction autocompleteInteraction, IParameterInfo parameter, IServiceProvider services)
        {
            string filter = autocompleteInteraction.Data.Current.Value.ToString();
            List <SlashCommandInfo> slashCommands = InteractionService.SlashCommands.Where(x => !x.Name.Equals(HELP_COMMAND, StringComparison.OrdinalIgnoreCase)).OrderBy(x => x.Name).ToList();

            if (!string.IsNullOrWhiteSpace(filter))
            {
                slashCommands = slashCommands.Where(x => x.Name.Contains(filter, StringComparison.OrdinalIgnoreCase)).Take(MAX_AUTOCOMPLETE_RESULTS).OrderBy(x => x.Name).ToList();
            }
            else
            {
                slashCommands = slashCommands.Take(MAX_AUTOCOMPLETE_RESULTS).ToList();
            }

            IEnumerable <AutocompleteResult> autocompletionCollection = slashCommands.Select(x => new AutocompleteResult(x.Name, x.Name));

            return(Task.FromResult(AutocompletionResult.FromSuccess(autocompletionCollection)));
        }
Esempio n. 4
0
        public override async Task <AutocompletionResult> GenerateSuggestionsAsync(
            IInteractionContext context,
            IAutocompleteInteraction autocompleteInteraction,
            IParameterInfo parameter,
            IServiceProvider services
            )
        {
            var input = autocompleteInteraction.Data.Current.Value as string;

            if (string.IsNullOrEmpty(input))
            {
                return(AutocompletionResult.FromSuccess());
            }

            var archetypes = await _yugiohDbService.GetArchetypesAutocompleteAsync(input);

            return(AutocompletionResult.FromSuccess(archetypes.Select(archetype => new AutocompleteResult(archetype, archetype))));
        }
Esempio n. 5
0
    public override async Task <AutocompletionResult> GenerateSuggestionsAsync(
        IInteractionContext context,
        IAutocompleteInteraction autocompleteInteraction,
        IParameterInfo parameter,
        IServiceProvider services
        )
    {
        var input = (string)autocompleteInteraction.Data.Current.Value;

        if (string.IsNullOrEmpty(input))
        {
            return(AutocompletionResult.FromSuccess());
        }

        var results = await _yuGiOhDbService.GetBoosterPacksAutocompleteAsync(input);

        return(AutocompletionResult.FromSuccess(results.Select(result => new AutocompleteResult(result, result))));
    }
Esempio n. 6
0
        public override Task <AutocompletionResult> GenerateSuggestionsAsync(IInteractionContext context, IAutocompleteInteraction autocompleteInteraction, IParameterInfo parameter, IServiceProvider services)
        {
            var settings = services.GetRequiredService <Settings>();
            var test     = autocompleteInteraction.Data.Current.Value.ToString();

            if (string.IsNullOrEmpty(test))
            {
                var results = settings.Sources.Select(x => new AutocompleteResult(x.FriendlyName, x.FriendlyName));
                return(Task.FromResult(AutocompletionResult.FromSuccess(results.Take(25))));
            }
            else
            {
                // Note: This could be optimised.
                var results = settings.Sources.Where(x => x.FriendlyName.Contains(test, StringComparison.OrdinalIgnoreCase))
                              .OrderBy(entry => entry.FriendlyName)
                              .Select(x => new AutocompleteResult(x.FriendlyName, x.FriendlyName));

                return(Task.FromResult(AutocompletionResult.FromSuccess(results.Take(25))));
            }
        }
        public override async Task <AutocompletionResult> GenerateSuggestionsAsync(IInteractionContext context, IAutocompleteInteraction autocompleteInteraction, IParameterInfo parameter, IServiceProvider services)
        {
            string filter = autocompleteInteraction.Data.Current.Value.ToString();
            List <WorldCurrencyCodeResponse> currencyCodes = await FiatCurrencyService.GetWorldCurrenciesList();

            if (!string.IsNullOrWhiteSpace(filter))
            {
                currencyCodes = currencyCodes.Where(x => x.Code.Contains(filter, StringComparison.OrdinalIgnoreCase) || x.Name.Contains(filter, StringComparison.OrdinalIgnoreCase))
                                .Take(MAX_AUTOCOMPLETE_RESULTS)
                                .ToList();
            }
            else
            {
                currencyCodes = currencyCodes.Take(MAX_AUTOCOMPLETE_RESULTS).ToList();
            }

            IEnumerable <AutocompleteResult> autocompletionCollection = currencyCodes.Select(x => new AutocompleteResult($"{x.Code} ({x.Name})", x.Code)).OrderBy(x => x.Name).ToList();

            return(AutocompletionResult.FromSuccess(autocompletionCollection));
        }
Esempio n. 8
0
        public override async Task <AutocompletionResult> GenerateSuggestionsAsync(IInteractionContext context, IAutocompleteInteraction autocompleteInteraction, IParameterInfo parameter, IServiceProvider services)
        {
            string filter = autocompleteInteraction.Data.Current.Value.ToString();
            List <CryptoCodeResponse> currencyCodes = await CryptoService.GetCryptoCodeList();

            if (!string.IsNullOrWhiteSpace(filter))
            {
                List <CryptoCodeResponse> currencyCodesBySymbol = currencyCodes.Where(x => x.Symbol.Equals(filter, StringComparison.OrdinalIgnoreCase)).ToList();
                if (!currencyCodesBySymbol.Any())
                {
                    currencyCodesBySymbol = currencyCodes.Where(x => x.Symbol.Contains(filter, StringComparison.OrdinalIgnoreCase)).ToList();
                }
                List <CryptoCodeResponse> currencyCodesByName = currencyCodes.Where(x => x.Name.Contains(filter, StringComparison.OrdinalIgnoreCase)).ToList();
                currencyCodes = currencyCodesBySymbol.Union(currencyCodesByName).Take(MAX_AUTOCOMPLETE_RESULTS).ToList();
            }
            else
            {
                currencyCodes = currencyCodes.Take(MAX_AUTOCOMPLETE_RESULTS).ToList();
            }

            IEnumerable <AutocompleteResult> autocompletionCollection = currencyCodes.Select(x => new AutocompleteResult($"[{x.Symbol.ToUpper()}] {x.Name}", x.Code)).OrderBy(x => x.Name);

            return(AutocompletionResult.FromSuccess(autocompletionCollection));
        }