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(); }
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(); }
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()); }