public void Start() { try { Bot = new TelegramBotClient(this.token); Bot.OnCallbackQuery += BotOnCallbackQueryReceived; Bot.OnMessage += BotOnMessageReceived; Bot.OnMessageEdited += BotOnMessageReceived; Bot.OnInlineResultChosen += BotOnChosenInlineResultReceived; Bot.OnReceiveError += BotOnReceiveError; var me = Bot.GetMeAsync().Result; Logger.Log(string.Format("Telegram successfully login with {0}", me.Username)); EventHub.Register("Chat.Public.SendToTelegram.Group", new Action <object>((x) => { var y = (StdChatModel)x; var serverInfo = DataAccess.Instance.QueryServerInfo(y.Source); var serverName = serverInfo == null ? y.Source : serverInfo.Name; Task.Run(async() => { await Bot.SendTextMessageAsync(trustedGroups[0], string.Format("[{0}][{1}]: {2}", serverName, y.DisplayName, y.Text)); }).Wait(); })); EventHub.Register("Chat.Public.BroadcastToTelegram.Group", new Action <object>((x) => { var y = (StdChatModel)x; var serverInfo = DataAccess.Instance.QueryServerInfo(y.Source); var serverName = serverInfo == null ? y.Source : serverInfo.Name; Task.Run(async() => { await Bot.SendTextMessageAsync(trustedGroups[0], string.Format("[{0}] {1}", serverName, y.Text)); }).Wait(); })); EventHub.Register("Chat.Public.SendToTelegram.Admin", new Action <object>((x) => { var y = (StdChatModel)x; var serverInfo = DataAccess.Instance.QueryServerInfo(y.Source); var serverName = serverInfo == null ? y.Source : serverInfo.Name; Task.Run(async() => { await Bot.SendTextMessageAsync(trustedGroups[0], string.Format("[{0}][{1}]: {1}", serverName, y.DisplayName, y.Text)); }).Wait(); })); Bot.StartReceiving(); } catch (Exception e) { Logger.LogErr(string.Format("TelegramBot Error: {0}", e.ToString())); } }
public static void Register(IEventHub eventHub, DataAccess dataAccess) { eventHub.Register("Chat.Public.FromTelegram", new Action <object>((x) => { var y = (StdChatModel)x; dataAccess.SendChatMsgToMcs(y); })); eventHub.Register("Chat.Public.FromMcs", new Action <object>((x) => { var y = (StdChatModel)x; dataAccess.SendChatMsgToMcs(y, y.Source); eventHub.Emit("Chat.Public.SendToTelegram.Group", new StdChatModel { Source = y.Source, DisplayName = y.DisplayName, Text = y.Text }); })); }