public static RequestBase <Message> Run([ActivityTrigger] IDurableActivityContext context, ILogger log) { log.LogInformation("Processing ReactionFunction"); RequestBase <Message> reply = null; try { var input = context.GetInput <Tuple <Message, ReactionsList, ChatSettings> >(); var message = input.Item1; var reactionsList = input.Item2; var chatSettings = input.Item3; if (IsReaction(message, reactionsList, out var reaction)) { var reactionReply = DoReaction(reaction); if (string.IsNullOrEmpty(reactionReply.Text) == false) { reply = new SendMessageRequest(message.Chat.Id, reactionReply.Text) { ReplyToMessageId = message.MessageId }; } else if (string.IsNullOrEmpty(reactionReply.Sticker) == false) { var sticker = new InputOnlineFile(reactionReply.Sticker); reply = new SendStickerRequest(message.Chat.Id, sticker) { ReplyToMessageId = message.MessageId }; } } else { var huifiedMessage = HuifyMeInternal(message.Text); reply = new SendMessageRequest(message.Chat.Id, huifiedMessage) { ReplyToMessageId = message.MessageId }; } } catch (Exception e) { log.LogError(e, "Error while processing Reaction function"); } return(reply); }
public static async Task <Message> SendStickerAsync(this Telegram telegram, SendStickerRequest sendRequest, string file = null) { var result = new Message(); if (string.IsNullOrEmpty(file) && string.IsNullOrEmpty(sendRequest.Sticker)) { return(null); } var url = telegram.GetFullPathUrl("sendSticker"); using (var form = new MultipartFormDataContent()) { AddParametersToRequest(form, sendRequest); using (var fileStream = new FileStream(file, FileMode.Open, FileAccess.Read)) { if (!string.IsNullOrEmpty(file)) { form.Add(new StreamContent(fileStream), "sticker", Path.GetFileName(file)); } using (var client = new HttpClient()) { var responseHendler = await client.PostAsync(url, form); if (responseHendler != null) { var response = await responseHendler.Content.ReadAsStringAsync(); if (!string.IsNullOrEmpty(response)) { result = Newtonsoft.Json.JsonConvert.DeserializeObject <ResponseAnswer <Message> >(response).Result; } } } } } return(result); }
public SendStickerResponse SendSticker(SendStickerRequest sendStickerRequest) { Log.Info(nameof(SendSticker)); return(SendStickerResponse.Parse(ExecuteAction(sendStickerRequest))); }
public SendStickerResponse SendSticker(SendStickerRequest sendStickerRequest) { return SendStickerResponse.Parse(ExecuteAction(sendStickerRequest)); }