public async Task <MessageContext> Render(MiddlewareData middlewareData, ITelegramClient telegramClient, CancellationToken cancellationToken) { var context = middlewareData.Features.RequireOne <SessionFeature>().Context; var message = middlewareData.Features.RequireOne <UpdateInfoFeature>().GetAnyMessage(); if (message == null) { throw new InvalidOperationException("Cannot send response"); } if (context.SentMessageIds.Any()) { await telegramClient.UpdateMessage(new UpdateMessageData( message.Chat.Id.ToString(), context.SentMessageIds.First(), _messageData ), cancellationToken); return(MessageContext.Empty()); } var chatId = message.Chat.Id.ToString(); var newMessage = await telegramClient.SendMessage(new SendMessageData( chatId, _messageData ), cancellationToken); return(MessageContext.Builder() .AddMessageId(newMessage.Id) .Build()); }
public async Task <MessageContext> Render(MiddlewareData middlewareData, ITelegramClient telegramClient, CancellationToken cancellationToken) { var newMessage = await telegramClient.SendMessage(new SendMessageData(_chatId, _messageData), cancellationToken); return(MessageContext.Builder() .AddMessageId(newMessage.Id) .Build()); }
public void Update([FromRoute] string token, [FromBody] Update update) { if (token != _telegramClient.GetAuthenticationToken()) { return; } if (update != null && update.Message != null) { _telegramClient.SendMessage(update.Message.Chat.Id, $"I received your message: \"{update.Message.Text}\""); } return; }
public async Task <AboutTelegramBot> UpdateTelegramOptions(TelegramOptions options) { //TODO: Don't check unchanged settings //TODO: Answer more descriptive messages //TODO: Use Uri instead of string concatenation _updater.Save(options); _bot.Initialize(); await _bot.SendMessage(options.AdminChat, "Hello Francis administrator, if you received this message, this means your configuration is valid."); if (!Directory.Exists(options.MediaLocation)) { throw new ArgumentException("Invalid media location"); } return(await _bot.Client.GetMeAsync()); }
private async Task HandleTest() { await _client.SendMessage(_options.Value.AdminChat, "This is a test message from Ombi! If you received this, your configuration is valid."); }