public static async Task RunOrchestrator( [OrchestrationTrigger] IDurableOrchestrationContext context, [Blob(Constants.ReactionsBlobPath)] string reactionsString, [Blob(Constants.ChatSettingsBlobPath)] string chatSettingsString, [Blob(Constants.DataBlobPath)] CloudBlobContainer chatSettingsOutput, ILogger log) { _log = log; _context = context; try { _bot = new TelegramBotClient(Configuration.Instance.BotToken); _reactions = JsonConvert.DeserializeObject <ReactionsList>(reactionsString); _chatSettings = JsonConvert.DeserializeObject <ChatSettings>(chatSettingsString); var me = await _bot.GetMeAsync(); if (me == null) { throw new Exception("Bot initialisation failed"); } var message = context.GetInput <Message>(); var reply = await BotOnMessageReceived(message); await _bot.MakeRequestAsync(reply); } catch (Exception e) { log.LogError(e, "Error while running output function"); } }
public MessageAdapterFactory(TelegramBotClient bot, ChatSettings chatSettings, ReactionsList reactions, BoyanList boyans) { _bot = bot; _chatSettings = chatSettings; _reactions = reactions; _boyans = boyans; }
private static bool IsReaction(Message message, ReactionsList reactionsList, out Reaction reaction) { var messageText = message.Text?.ToLower() ?? string.Empty; reaction = reactionsList.Items.FirstOrDefault(x => x.Triggers.Any(messageText.Contains)); if (reaction == null) { return(false); } if (reaction.IsMentionReply && HelperMethods.MentionsBot(message) == false) { return(false); } if (reaction.IsAlwaysReply == false && HelperMethods.YesOrNo() == false) { return(false); } return(true); }
private static void LoadReactions() { var reactionsString = ReadSettings("reactions.json"); _reactions = JsonConvert.DeserializeObject <ReactionsList>(reactionsString) ?? new ReactionsList(); }