Exemple #1
0
        public async Task <ICharacterInfo> GetRandomCharacterAsync()
        {
            int check = 2;

            if (CharId.IsNeedForUpdate())
            {
                var characters = await _shClient.Ex.GetAllCharactersFromAnimeAsync();

                if (!characters.IsSuccessStatusCode())
                {
                    return(null);
                }

                CharId.Update(characters.Body);
            }

            ulong id       = Fun.GetOneRandomFrom(CharId.GetIds());
            var   response = await _shClient.GetCharacterInfoAsync(id);

            while (!response.IsSuccessStatusCode())
            {
                id       = Fun.GetOneRandomFrom(CharId.GetIds());
                response = await _shClient.GetCharacterInfoAsync(id);

                await Task.Delay(TimeSpan.FromSeconds(2));

                if (check-- == 0)
                {
                    return(null);
                }
            }
            return(response.Body);
        }
Exemple #2
0
        public async Task RepairCardsAsync(ulong oldId, ulong newId)
        {
            var response = await _shClient.GetCharacterInfoAsync(newId);

            if (!response.IsSuccessStatusCode())
            {
                await "New character ID is invalid!".ToResponse(500).ExecuteResultAsync(ControllerContext);
                return;
            }

            var exe = new Executable($"api-repair oc{oldId} c{newId}", new Task(() =>
            {
                using (var db = new Database.UserContext(_config))
                {
                    var cards = db.Cards.Where(x => x.Character == oldId);
                    foreach (var card in cards)
                    {
                        card.Character = newId;
                    }

                    db.SaveChanges();

                    QueryCacheManager.ExpireTag(new string[] { "users" });
                }
            }));

            await _executor.TryAdd(exe, TimeSpan.FromSeconds(1));

            await "Success".ToResponse(200).ExecuteResultAsync(ControllerContext);
        }
Exemple #3
0
        public async Task GeneratePokeImageAsync([Summary("nr grafiki")] int index)
        {
            try
            {
                var reader = new JsonFileReader($"./Pictures/Poke/List.json");
                var images = reader.Load <List <SafariImage> >();

                var character = (await _shClient.GetCharacterInfoAsync(2)).Body;
                var channel   = Context.Channel as ITextChannel;

                _ = await _waifu.GetSafariViewAsync(images[index], _waifu.GenerateNewCard(null, character), channel);
            }
            catch (Exception ex)
            {
                await ReplyAsync("", embed : $"Coś poszło nie tak: {ex.Message}".ToEmbedMessage(EMType.Error).Build());
            }
        }