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());
        }
Example #2
0
        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;
        }
Example #4
0
        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());
        }
Example #5
0
 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.");
 }