private async Task soloMethod(Update upd, TelegramBotClient client, ShikimoriClient shikiClient, AnimeStatus status) { var userId = upd.CallbackQuery.From.Id; var mesId = upd.CallbackQuery.Message.MessageId; var chatId = upd.CallbackQuery.Message.Chat.Id; if (Bot.GetUserAnime(userId) is null) { await Task.Yield(); var bag = await shikiClient.V2AnimeReturn(status).ConfigureAwait(false); await Task.Yield(); Trace.WriteLine($"var bag {bag.Count} \n {Environment.StackTrace}"); var lst = new UserAnimeList(bag.ToList(), DateTime.Now, userId); Trace.WriteLine($"lst {lst.UpdatedAt}"); Bot.animeAccountsLists[userId] = new UserAnimeList(bag.ToList(), DateTime.Now, userId); Trace.WriteLine("dict"); } var page = Bot.GetAnimePage(userId); var keyb = Bot.GetKeyboard(KeyboardTarget.AnimeItemsMenu) as AnimeEntriesListKeyboard; var markup = await keyb.GetKeyboard(page, MovePage.Current).ConfigureAwait(false); Trace.WriteLine("markup"); await client.EditMessageTextAsync(chatId, mesId, "Anime", replyMarkup : markup).ConfigureAwait(false); Trace.WriteLine("edit mes"); }
public async Task GetTask(Message mes, TelegramBotClient client) { try { if (mes.Text is null || mes.Text.Length != 43) { await client.SendTextMessageAsync(mes.Chat.Id, $"Wrong code").ConfigureAwait(false); return; } var shikiClient = new ShikimoriClient(); var code = mes.Text; await client.SendTextMessageAsync(mes.Chat.Id, $"<i>Authorizing with code :</i>{Environment.NewLine}<code>{code}</code>", parseMode : Telegram.Bot.Types.Enums.ParseMode.Html); await shikiClient.ShikiLogin(code).ConfigureAwait(false); await client.SendTextMessageAsync(mes.Chat.Id, $"Logged as {shikiClient.GetNickname()}", replyMarkup : Bot.GetKeyboard(Keyboards.KeyboardTarget.ShikiMenu)?.GetKeyboard()).ConfigureAwait(false); Bot.animeAccounts[mes.From.Id] = shikiClient; } catch (Exception e) { await client.SendTextMessageAsync(mes.Chat.Id, $"Error {e.Message}{Environment.NewLine}Stack = {e.StackTrace}", replyToMessageId : mes.MessageId).ConfigureAwait(false); return; } }
private async Task Aue(Message mes, TelegramBotClient client) { isRunning = true; ShikimoriClient shikiClient; if (!Bot.animeAccounts.TryGetValue(mes.From.Id, out shikiClient)) { try { shikiClient = new ShikimoriClient(); var code = mes.Text.Trim().Split(' ').Last().Trim(); await client.SendTextMessageAsync(mes.Chat.Id, $"Authorizing with code={code}", replyToMessageId : mes.MessageId); await shikiClient.ShikiLogin(code).ConfigureAwait(false); await client.SendTextMessageAsync(mes.Chat.Id, $"Logged as {shikiClient.GetNickname()}", replyToMessageId : mes.MessageId).ConfigureAwait(false); //shikiClient.ErrorTextEvent += new Action<string>(async errorStr => await client.SendTextMessageAsync(mes.Chat.Id, $"{errorStr}", replyToMessageId: mes.MessageId).ConfigureAwait(false)); Bot.animeAccounts.Add(mes.From.Id, shikiClient); this.isRunning = false; } catch (Exception e) { await client.SendTextMessageAsync(mes.Chat.Id, $"Error {e.Message} Stack={e.StackTrace}", replyToMessageId : mes.MessageId).ConfigureAwait(false); this.isRunning = false; return; } } }
public async Task GetTask(ShikimoriClient shikiClient, AnimeStatus status) { var bag = new ConcurrentBag <SpecialUserAnimeRate>(); await shikiClient.GetAnimeFull(bag, status).ConfigureAwait(false); Trace.WriteLine("await shikiclient passed"); AnimeList = bag.ToList(); Trace.WriteLine("animeList passed"); }
protected TestBase() { var scope = Environment.GetEnvironmentVariable("scope"); var access = Environment.GetEnvironmentVariable("access_token"); var refresh = Environment.GetEnvironmentVariable("refresh_token"); var name = Environment.GetEnvironmentVariable("name"); var clientId = Environment.GetEnvironmentVariable("client_id"); var clientSecret = Environment.GetEnvironmentVariable("client_secret"); UserId = Convert.ToInt64(Environment.GetEnvironmentVariable("userId")); Token = new AccessToken { Access_Token = access, RefreshToken = refresh, Scope = scope }; var logger = new NUnitLogger <TestBase>(); Client = new ShikimoriClient(logger, new ClientSettings(name, clientId, clientSecret)); }
public static async Task <ConcurrentBag <SpecialUserAnimeRate> > GetTaskBag(ShikimoriClient shikiClient, AnimeStatus status) { Trace.WriteLine("await shikiclient passed"); return(await shikiClient.GetAnimeFullReturn(status).ConfigureAwait(false)); }
public ShikimoriAttendance(ILogger <ShikimoriAttendance> logger, ShikimoriClient client) { _logger = logger; _client = client; }