public async Task Login()
        {
            _settingsHandler.Settings.LoginAuth = SelectedLoginType.LoginAuth;
            _settingsHandler.Settings.Username  = UserName;
            _settingsHandler.Settings.Password  = Password;

            _settingsHandler.Settings.SetRocketSettings();
            _settingsHandler.SaveSettings();

            _goBot.InitializeClient();
            await _goBot.DoLogin();

            if (_goBot.IsLoggedIn)
            {
                _lastLoginTime = DateTime.Now;
                _dispatcher.Start();

                OnLogin?.Invoke();
                GetPokemon?.Invoke();
            }
            LoginCommand.RaiseCanExecuteChanged();
        }
Beispiel #2
0
        private async Task RequestPokemons(string byUrl = "")
        {
            //await Task.Delay(5000);

            ProgressDialog pbar = new ProgressDialog(this);

            pbar.SetCancelable(false);
            pbar.SetMessage("Buscando Informações...");
            pbar.SetProgressStyle(ProgressDialogStyle.Horizontal);
            pbar.Indeterminate = true;
            pbar.SetProgressStyle(ProgressDialogStyle.Spinner);
            pbar.Show();

            //new Thread(new ThreadStart(async delegate
            //{

            try
            {
                fLista.Clear();
                Filtrar();

                await Task.Delay(3000);

                using (var client = new HttpClient())
                {
                    // envia a requisição GET
                    //var response = await client.GetStringAsync("https://pokeapi.co/api/v2/pokemon/").ConfigureAwait(true);
                    string response;

                    if (byUrl == "")
                    {
                        response = await client.GetStringAsync("https://pokeapi.co/api/v2/pokemon/?limit=25").ConfigureAwait(true);
                    }
                    else
                    {
                        response = await client.GetStringAsync(byUrl).ConfigureAwait(true);
                    }

                    // processa a resposta
                    GetPokemon getPokemon = JsonConvert.DeserializeObject <GetPokemon>(response);

                    fAnt  = "";
                    fNext = "";

                    if (!string.IsNullOrEmpty(getPokemon.Previous))
                    {
                        fAnt = getPokemon.Previous;
                    }

                    if (!string.IsNullOrEmpty(getPokemon.Next))
                    {
                        fNext = getPokemon.Next;
                    }


                    fLista = new List <ListaLocal>();
                    foreach (var result in getPokemon.Results)
                    {
                        ListaLocal lista = new ListaLocal();

                        lista.Name = result.name;

                        response = await client.GetStringAsync("http://pokeapi.co/api/v1/pokemon/" + result.name + "/").ConfigureAwait(true);

                        GetPokemonItem getPokemonItem = JsonConvert.DeserializeObject <GetPokemonItem>(response);
                        if (getPokemonItem != null)
                        {
                            lista.Image  = getPokemonItem.Sprites.front_default;
                            lista.Id     = getPokemonItem.Id;
                            lista.Height = getPokemonItem.Height;
                            lista.Weight = getPokemonItem.Weight;

                            foreach (var tipo in getPokemonItem.Types)
                            {
                                List <PokemonType> pokemonTypes = new List <PokemonType>();

                                pokemonTypes.Add(new PokemonType
                                {
                                    slot = tipo.slot,
                                    type = new NameAPIResource {
                                        name = tipo.type.name, url = tipo.type.url
                                    }
                                });

                                lista.Types = pokemonTypes;
                            }
                        }


                        fLista.Add(lista);
                    }
                }
            }
            catch (Exception ex)
            {
                Thread.Sleep(1000);
                this.RunOnUiThread(() =>
                {
                    this.Window.AddFlags(WindowManagerFlags.NotTouchable | WindowManagerFlags.NotTouchable);
                });
            }

            RunOnUiThread(() =>
            {
                Filtrar();
                pbar.Cancel();
                return;
            });

            //})).Start();
        }
Beispiel #3
0
        public async Task Pokemon([Remainder] string pokemonName = null)
        {
            string speciesConvert   = "";
            string abilitiesConvert = "";
            string typeConvert      = "";

            if (pokemonName == null)
            {
                await ReplyAsync("provide a pokemon name");

                return;
            }

            pokemonName = pokemonName.Replace(" ", "%20");

            GetPokemon getPokemon = null;

            using (WebClient webClient = new WebClient())
            {
                try
                {
                    webClient.UseDefaultCredentials = true;
                    string json = webClient.DownloadString("https://some-random-api.ml/pokedex?pokemon=" + pokemonName);
                    getPokemon = JsonConvert.DeserializeObject <GetPokemon>(json.Substring(1, json.Length - 2));
                }
                catch (Exception ex)
                {
                    await ReplyAsync($"that wasnt a pokemon");

                    Console.WriteLine(ex);
                }
            }

            for (int i = 0; i < getPokemon.Species.Length; i++) //Makes Species String
            {
                speciesConvert += $"{getPokemon.Species[i]} ";
            }

            for (int i = 0; i < getPokemon.Type.Length; i++) //Makes Types String
            {
                if (i == getPokemon.Type.Length - 1)
                {
                    typeConvert += $"{getPokemon.Type[i]}";
                }
                else
                {
                    typeConvert += $"{getPokemon.Type[i]} / ";
                }
            }

            for (int i = 0; i < getPokemon.Abilities.Length; i++) //Makes Abilities String
            {
                if (getPokemon.Abilities.Length == 1)             //For Pokémon with 1 ability
                {
                    abilitiesConvert += $"{getPokemon.Abilities[i]}";
                }
                else //For Pokémon with >1 abilities
                {
                    if (i == getPokemon.Abilities.Length - 1)
                    {
                        abilitiesConvert += $"HA: {getPokemon.Abilities[i]}";
                    }
                    else
                    {
                        abilitiesConvert += $"{getPokemon.Abilities[i]} / ";
                    }
                }
            }

            string[] pokemonInfo = { $"{getPokemon.Name}",
                                     $"{getPokemon.Id}",
                                     $"{getPokemon.Height}",
                                     $"{getPokemon.Weight}",
                                     $"{speciesConvert}",
                                     $"{abilitiesConvert}",
                                     $"{typeConvert}",
                                     $"{getPokemon.Sprites.Normal}", };

            for (int i = 0; i < pokemonInfo.Length; i++)
            {
                var bytes = Encoding.Default.GetBytes(pokemonInfo[i]); //Fixes ’ (formatting) in the original string from the API (kind of annoying)
                pokemonInfo[i] = Encoding.UTF8.GetString(bytes);
            }

            var foot = new EmbedFooterBuilder()
            {
                Text = $"Powered by https://some-random-api.ml/",
            };

            var embed = new EmbedBuilder();

            embed.Title        = char.ToUpper(pokemonInfo[0][0]) + pokemonInfo[0].Substring(1);
            embed.Footer       = foot;
            embed.ThumbnailUrl = pokemonInfo[7];
            embed.WithColor(new Color(249, 51, 24))
            .AddField(y =>
            {
                y.Name     = "ID";
                y.Value    = pokemonInfo[1];
                y.IsInline = true;
            })
            .AddField(y =>
            {
                y.Name     = "Height";
                y.Value    = pokemonInfo[2];
                y.IsInline = true;
            })
            .AddField(y =>
            {
                y.Name     = "Weight";
                y.Value    = pokemonInfo[3];
                y.IsInline = true;
            })
            .AddField(y =>
            {
                y.Name     = "Species";
                y.Value    = pokemonInfo[4];
                y.IsInline = true;
            })
            .AddField(y =>
            {
                y.Name     = "Abilities";
                y.Value    = pokemonInfo[5];
                y.IsInline = true;
            })
            .AddField(y =>
            {
                y.Name     = "Typing";
                y.Value    = pokemonInfo[6];
                y.IsInline = true;
            });

            await ReplyAsync($"", false, embed.Build());
        }