public MessageViewModel(Telegram.Bot.Types.Message m) { MessageText = m.Text; CurrentPadding = m.From.IsBot ? PaddingForBot : PaddingForUser; CurrentHorizontalAlignment = m.From.IsBot ? HorizontalAlignmentForBot : HorizontalAlignmentForUser; Author = m.From.IsBot ? "me" : m.From.FirstName; }
public override void Execute(Telegram.Bot.Types.Message message, TelegramBotClient client) { var chatId = message.Chat.Id; var messageId = message.MessageId; client.SendTextMessageAsync(chatId, "Hello!", replyToMessageId: messageId); }
private async void SendGameStat(Chat chatFinded, Game game) { if (game == null) { await Bot.SendTextMessageAsync(chatFinded.Id, "Не удалось найти игру"); return; } //var game = DB.DBCommands.DBGame.GetGame(gameId); var file = ImageGen.GameStatistic(game); var photo = new Telegram.Bot.Types.FileToSend("gamestat", (new StreamReader(file)).BaseStream); var button = new InlineKeyboardButton("Состав"); button.CallbackData = game.Id.ToString(); var keyboard = new InlineKeyboardMarkup(new[] { new[] { button } }); Message mes = await Bot.SendPhotoAsync(chatFinded.Id, photo, replyMarkup : keyboard); var newCom = new Command(new [] { "состав", game.Id.ToString() }); newCom.Message = mes; chatFinded.WaitingCommands.Add(newCom); }
public override async Task Execute(Telegram.Bot.Types.Message message, TelegramBotClient botClient) { var chatId = message.Chat.Id; await botClient.SendTextMessageAsync(chatId, "Привіт, я VolunteerX чат-бот. Як я можу до тебе звертатися?" , parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown); }
private static async void BotOnMessage(object sender, Telegram.Bot.Args.MessageEventArgs e) { Bot.Types.Message msg = e.Message; if (msg == null) { return; } if (msg.Type == Bot.Types.Enums.MessageType.TextMessage) { AIMLbot.Bot AI = new AIMLbot.Bot(); AI.loadSettings(); // This loads the settings from the config folder AI.loadAIMLFromFiles(); AIMLbot.User me_aiml = new AIMLbot.User("dd", AI); Request r = new Request(msg.Text, me_aiml, AI); Result res = AI.Chat(r); string s = res.ToString(); await bot.SendTextMessageAsync(msg.Chat.Id, s); } //if (msg.Type == Bot.Types.Enums.MessageType.TextMessage) //{ // //await bot.SendTextMessageAsync(msg.Chat.Id, "Здарова " + msg.From.FirstName //} }
private async void CreateGameCallback(Message message, TelegramBotClient Bot, object arg) { var user = UserDatabase.GetUser(message.Chat.Id); if (user.User.ActiveGameId != null) { await Bot.SendTextMessageAsync(message.Chat.Id, "Вы уже участвуете в игре. Закончите предыдущую игру или введите команду /exit", ParseMode.Markdown); return; } else { var menu = new ReplyMenu("", true, new KeyboardButton[][] { new KeyboardButton[] { new KeyboardButton("« Назад в главное меню") } }); await Bot.SendTextMessageAsync(message.Chat.Id, "Введите *название* игры (до 20 символов):", ParseMode.Markdown, false, false, 0, menu.Keyboard); user.CommandRegex = (new Regex(".{0,20}"), new ReplyCallback(CorrectNameCallback), new ReplyCallback(UncorrectNameCallback)); } }
static void ProcessStatePresaleWaitForAddress(User user, Telegram.Bot.Types.Message message) { string msg = message.Text.Trim(); if (!msg.StartsWith("0x")) { SendMessage(message, user, "Your ETH address must start with 0x, please try again..."); return; } else if (msg.Length != 42) { SendMessage(message, user, "Wrong length of ETH address, please try again..."); return; } SendMessage(message, user, "Verifying your ETH address on the blockchain (can take a few seconds)"); string value = VerifyEthAddress(msg); if (value == null) { SendMessage(message, user, "Unknown or Invalid ETH address, please try again..."); } user.WhitelistItem.EthAddress = msg; user.WhitelistItem.EthBalance = value; user.WhitelistItem.State = WhiteListStateEnum.wait_for_amount; SendMessage(message, user, String.Format("How much ETH do you want to contribute ?" + lf + "(0.5 ETH minimum, 15 ETH maximum)", message.Chat.FirstName)); return; }
private static async Task edit(Telegram.Bot.Types.Message message) { await botClient.SendTextMessageAsync( chatId : chatid, text : "Đã sửa công việc." ); }
public override async Task <bool> ExecuteAsync(Telegram.Bot.Types.Message message, IBotService bot) { string url = "http://mygazeta.com/гороскоп/" + Sign + "/гороскоп-" + Sign + "-" + DateTime.Today.ToString("dd-MM-yyyy") + ".html"; Console.WriteLine(url); var response = await new HttpClient().GetAsync(url); string source = null; string all = ""; Parser parser = new Parser(); int i = 0; if (response != null && response.StatusCode == System.Net.HttpStatusCode.OK) { source = await response.Content.ReadAsStringAsync(); } var domParser = new HtmlParser(); var document = await domParser.ParseAsync(source); var result = parser.Parse(document); foreach (var elem in result) { i++; if ((i % 2 == 0) && (i != 22) && (i < 25) && (elem != "Извините, этот гороскоп пока что отсутствует.")) { all += elem + " "; } } await bot.Client.SendTextMessageAsync(message.Chat.Id, all); return(true); }
/// <summary> /// Извлекает индексы из сообщения-команды /// </summary> /// <param name="message">Сообщение</param> /// <returns>Список индексов</returns> private List <int> DecomposeIndexes(Telegram.Bot.Types.Message message) { var indexes = new List <int>(); try { message.Text.Substring(message.Text.IndexOf(' ') + 1).Split(' ').ToList().ForEach(x => indexes.Add(int.Parse(x))); } catch (ArgumentException) { bot.SendTextMessageAsync(message.Chat.Id, "Ошибка: индексы введены неверно"); indexes.Clear(); } catch (FormatException) { bot.SendTextMessageAsync(message.Chat.Id, "Неверное использование команды"); indexes.Clear(); } catch (Exception ex) { bot.SendTextMessageAsync(message.Chat.Id, $"Ошибка: {ex.Message}"); indexes.Clear(); } return(indexes); }
private static async Task RunCC(Update update) { Log("Cc enabled, forwarding...", "BOT"); foreach (long Id in Vars.CurrentConf.Cc) { Log("Forwarding message to cc: " + Id, "BOT"); try { Telegram.Bot.Types.Message ForwardedMessageCc = await Vars.Bot.ForwardMessageAsync(Id, update.Message.From.Id, update.Message.MessageId, Vars.CurrentConf.DisableNotifications); // check for real message sender if (ForwardedMessageCc.ForwardFrom.Id != update.Message.From.Id) { await Vars.Bot.SendTextMessageAsync(Id, Vars.CurrentLang.Message_ForwarderNotReal .Replace("$2", update.Message.From.Id.ToString()) .Replace("$1", "[" + update.Message.From.FirstName + " " + update.Message.From.LastName + "](tg://user?id=" + update.Message.From.Id + ")"), ParseMode.Markdown, false, Vars.CurrentConf.DisableNotifications, ForwardedMessageCc.MessageId); } } catch (Exception ex) { Log("Unable to forward message to cc: " + Id + ", reason: " + ex.Message, "BOT", LogLevel.ERROR); } } }
static void ProcessStateWaitForAddress(User user, Telegram.Bot.Types.Message message) { string msg = message.Text.Trim(); if (!msg.StartsWith("0x")) { SendMessage(message, user, "Your ETH wallet address must start with 0x, please try again..."); return; } else if (msg.Length != 42) { SendMessage(message, user, "Wrong length of ETH address, please try again..."); return; } SendMessage(message, user, "Verifying your ETH wallet address on the blockchain (can take a few seconds)"); string value = VerifyEthAddress(msg); if (value == null) { SendMessage(message, user, "Unknown or Invalid ETH address, please try again..."); } user.GiveawayItem.EthAddress = msg; user.GiveawayItem.State = GiveawayStateEnum.wait_for_task; SendMessage(message, user, "You have to complete the following small tasks to receive the giveaway:" + lf + lf + "1. <b>Follow</b> our twitter account: https://twitter.com/savix_org" + lf + "2. <b>Retweet</b> one of our tweets" + lf + "3. <b>Join</b> our discord server: https://discord.gg/22bxBnP4GD" + lf + lf + "Type <b><i>done</i></b>, if you did the above tasks." + lf + lf + "No need to hurry, you can come back to the bot at any time."); return; }
private async Task Receive(Message message) { try { var phoneChatId = _phoneChatIds.FirstOrDefault(x => x.ChatId == message.Chat.Id); if (phoneChatId == null && message.Contact == null) { await _botClient.SendTextMessageAsync( chatId : message.Chat, text : "Пожалуйста, расшарьте Ваш номер телефона", replyMarkup : new ReplyKeyboardMarkup( new[] { KeyboardButton.WithRequestContact("Share Contact") }, true, true ) ); _logService.TraceMessage($"Новый пользователь: {message.Chat.Username}"); } else { if (phoneChatId == null) { lock (this) { string phone = message.Contact.PhoneNumber.Replace("+", ""); phoneChatId = new PhoneChatId() { ChatId = message.Chat.Id, Phone = phone, Allowed = _allowedPhoneNumbers.Any(x => x == phone) }; _phoneChatIds.Add(phoneChatId); XmlSerializer xsr = new XmlSerializer(typeof(List <PhoneChatId>)); using (StreamWriter tw = new StreamWriter(_phoneChatIdsFile)) { xsr.Serialize(tw, _phoneChatIds); } } } if (phoneChatId.Allowed) { await _botClient.SendTextMessageAsync( chatId : message.Chat, text : "Вы подключены. Заявки будут высылаться вам автоматически." ); } else { await _botClient.SendTextMessageAsync( chatId : message.Chat, text : "У вас нет доступа" ); } } } catch (Exception e) { _logService.LogError(e); } }
static void ProcessStateWaitForConfirmation(User user, Telegram.Bot.Types.Message message) { string msg = message.Text.Trim().ToLower(); if (msg == "no" || msg == "quit") { user.GiveawayItem.State = GiveawayStateEnum.zero; user.GiveawayItem.EthAddress = null; user.GiveawayItem.Twitter = null; user.GiveawayItem.Discord = null; SendMessage(message, user, "Sorry to hear that, if you want, you can restart the giveaway at any time."); return; } else if (msg != "yes") { SendMessage(message, user, "As a last step please confirm that we got your information right." + lf + lf + "Twitter: " + user.GiveawayItem.Twitter + ", " + "Discord: " + user.GiveawayItem.Discord + lf + "Eth Address: " + user.GiveawayItem.EthAddress + lf + lf + "Please type <b><i>yes</i></b> if the above information is correct"); return; } SendMessage(-1001354512306, user, String.Format("Congratulations {0}! You joined our giveaway. You will receive 0.5 SVX (15$) after our presale.", user.FirstName)); SendMessage(message, user, "Congratulations! You will automatically receive 0.5 SVX 48-72 hours after our presale ends." + lf + "Please stay in the channels until the presale ends."); user.GiveawayItem.State = GiveawayStateEnum.confirmed; _count++; SaveCount(); return; }
static void ProcessStateWaitForTask(User user, Telegram.Bot.Types.Message message) { string msg = message.Text.Trim().ToLower(); if (msg == "no" || msg == "quit") { user.GiveawayItem.State = GiveawayStateEnum.zero; user.GiveawayItem.EthAddress = null; user.GiveawayItem.Twitter = null; user.GiveawayItem.Discord = null; SendMessage(message, user, "Sorry to hear that, if you want, you can restart the giveaway at any time."); return; } else if (msg != "done") { SendMessage(message, user, "You have to complete the following small tasks to receive the giveaway:" + lf + lf + "1. <b>Follow</b> our twitter account: https://twitter.com/savix_org" + lf + "2. <b>Retweet</b> one of our tweets" + lf + "3. <b>Join</b> our discord server: https://discord.gg/22bxBnP4GD" + lf + lf + "Type <b><i>done</i></b>, if you did the above tasks." + lf + lf + "No need to hurry, you can come back to the bot at any time."); return; } SendMessage(message, user, "Well done, as a last step please confirm that we got your information right:" + lf + lf + "Twitter: " + user.GiveawayItem.Twitter + lf + "Discord:" + user.GiveawayItem.Discord + lf + "Eth Address: " + user.GiveawayItem.EthAddress + lf + lf + "Please type <b><i>yes</i></b> if the above information is correct"); user.GiveawayItem.State = GiveawayStateEnum.wait_for_confirmation; return; }
public static async Task EditAsync(this string sendText, InlineKeyboardMarkup replyMarkup = null) { TimeProc = Message.Date.GetDelay(); Telegram.Bot.Types.Message edit = null; if (sendText != "") { sendText += $"\n\n⏱ <code>{TimeInit} s</code> | ⌛️ <code>{TimeProc} s</code>"; } try { edit = await Client.EditMessageTextAsync( Message.Chat, SentMessageId, sendText, ParseMode.Html, replyMarkup : replyMarkup ); } catch (Exception ex) { Log.Error(ex, "Send Message without reply Exception."); } if (edit != null) { EditedMessageId = edit.MessageId; } }
private void UncorrectMaxPlayersCallback(Message message, TelegramBotClient Bot, object arg) { var user = UserDatabase.GetUser(message.Chat.Id); if (message.Text == "« Назад в главное меню") { user.CommandRegex = LocalUser.DefaultRegex; CommandsCenter.GetMenu("StartMenu").ShowAsync(message.Chat.Id, Bot, "", true); return; } else { var menu = new ReplyMenu("", true, new KeyboardButton[][] { new KeyboardButton[] { new KeyboardButton("« Назад в главное меню") } }); Bot.SendTextMessageAsync(message.Chat.Id, "*Неверное количество*. Укажите максимальное количество игроков (4-19 игроков):", ParseMode.Markdown, false, false, 0, menu.Keyboard); } }
private void UncorrectNameCallback(Message message, TelegramBotClient Bot, object arg) { var user = UserDatabase.GetUser(message.Chat.Id); if (message.Text == "« Назад в главное меню") { user.CommandRegex = LocalUser.DefaultRegex; CommandsCenter.GetMenu("StartMenu").ShowAsync(message.Chat.Id, Bot, "", true); return; } else { var menu = new ReplyMenu("", true, new KeyboardButton[][] { new KeyboardButton[] { new KeyboardButton("« Назад в главное меню") } }); Bot.SendTextMessageAsync(message.Chat.Id, "*Слишком длинное название игры!* Введите название игры (до 20 символов):", ParseMode.Markdown, false, false, 0, menu.Keyboard); } }
static void ProcessStatePresaleWaitForAmount(User user, Telegram.Bot.Types.Message message) { string msg = message.Text.Trim().Replace(".", ","); double amount = 0; try { amount = Convert.ToDouble(msg); } catch (Exception e) { SendMessage(message, user, "Incorrect number format, please try again..."); SendMessage(message, user, String.Format("How much ETH do you want to contribute ?" + lf + "(0.5 ETH minimum, 15 ETH maximum)", message.Chat.FirstName)); return; } if (amount < MIN_CONTRIBUTION) { SendMessage(message, user, "That's not enough, minimum is 0.5 ETH"); return; } else if (amount > MAX_CONTRIBUTION) { SendMessage(message, user, "That's too much, maximum is 15 ETH"); return; } user.WhitelistItem.Contribution = amount; user.WhitelistItem.State = WhiteListStateEnum.wait_for_terms; SendMessage(message, user, @"Please type <b>yes</b> if you agree to our <a href=""https://savix.org/terms"">Terms and Conditions</a>"); return; }
public override async void Execute(Telegram.Bot.Types.Message message, TelegramBotClient cli) { var chatID = message.Chat.Id; var messageID = message.MessageId; await cli.SendTextMessageAsync(chatID, "Зиганчики", replyToMessageId : messageID); //третий параметр - если нужно цитирование }
private void AddRoleCallback(Message message, TelegramBotClient Bot, object arg) { var user = UserDatabase.GetUser(message.Chat.Id); string buttonText = CommandsCenter.GetInlineButton((arg as CallbackQuery).Data).Button.Text; if (buttonText.StartsWith("❌")) { if (user.GameRoomCreation == null) { GameNotFound(message, Bot, user); return; } else { user.GameRoomCreation .AddRole(buttonText.Split(new [] { ' ' }, StringSplitOptions.RemoveEmptyEntries)[2]); } } else if (buttonText.StartsWith("✅")) { user.GameRoomCreation .RemoveRole(buttonText.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)[2]); } new RolesListGenerator(user.GameRoomCreation.Roles).GenerateMenu() .ShowAsync(message.Chat.Id, Bot, user.GameRoomCreation.ToString(), true, message.MessageId); }
static void ProcessStateWaitForDiscord(User user, Telegram.Bot.Types.Message message) { string msg = message.Text.Trim().ToLower(); if (!msg.Contains("#")) { SendMessage(message, user, "Your Discord name must include # followed by a number"); SendImage(message, "https://savix.org/wp-content/uploads/2020/11/discord_name.jpg", "<b>Picture shows you how to access your discord name</b>" + lf + "Please try again..."); return; } if (!discordRx.IsMatch(msg)) { SendMessage(message, user, "Not a valid discord name, your name must have the format: yourname#123"); SendImage(message, "https://savix.org/wp-content/uploads/2020/11/discord_name.jpg", "<b>Picture shows you how to access your discord name</b>" + lf + "Please try again..."); return; } if (msg == "savix#6028") { SendMessage(message, user, "This is our discord name, we want your name, please try again..."); return; } user.GiveawayItem.Discord = msg; SendMessage(message, user, "Please enter your ETH wallet address, we need it to send you the SVX (format 0x)"); user.GiveawayItem.State = GiveawayStateEnum.wait_for_ethaddress; return; }
public async Task <ActionResult> Index(string Msg, HttpPostedFileBase attach) { string attachFiledID = string.Empty; List <User> Users = db.Users.ToList(); foreach (User u in Users) { try { await TbotController.SendMessageAsync(u.ChatID_bint, Msg.Replace("[نام]", u.Name_nvc)); if (attach != null) { byte[] file; using (MemoryStream ms = new MemoryStream()) { attach.InputStream.CopyTo(ms); file = ms.ToArray(); } if (string.IsNullOrEmpty(attachFiledID)) { T.Message m = await TbotController.SendDocumentAsync(u.ChatID_bint, "", file, attach.FileName); attachFiledID = m.Document.FileId; } else { await TbotController.SendDocumentAsync(u.ChatID_bint, "", attachFiledID); } } } catch { } } ViewBag.Message = "پیام ها ارسال شدند"; return(View()); }
/// <summary> /// Обрабатывает сообщение от пользователя /// </summary> public async void Handle(Message message) { var text = message.Text.Split(' '); if (text.First() != "/wol") return; switch (text.Count()) { case 1: case 2: await _bot.SendTextMessage(message.Chat.Id, "Пример использования: /wol 1.2.3.4 01:02:03:04:05:06 7"); break; default: if (!WakeOnLan.ValidateMac(text[2])) await _bot.SendTextMessage(message.Chat.Id, "Неверный MAC адрес"); else { try { WakeOnLan.Up(text[1], text[2], GetPort(text)); await _bot.SendTextMessage(message.Chat.Id, "Пакет отправлен!"); } catch (Exception) { await _bot.SendTextMessage(message.Chat.Id, "Произошла ошибка :("); } } break; } }
private void ProcessAFKChecking(Bot.Types.Message message, out bool respondeu) { try { lockedExecution = true; bot.SendChatActionAsync(message.Chat.Id, ChatAction.UploadAudio); var lastInputInfo = new LASTINPUTINFO(); lastInputInfo.cbSize = (uint)Marshal.SizeOf(lastInputInfo); GetLastInputInfo(ref lastInputInfo); var lastInput = DateTime.Now.AddMilliseconds( -(Environment.TickCount - lastInputInfo.dwTime)); var diferenca = DateTime.Now - lastInput; var ret = bot.SendTextMessageAsync(Convert.ToInt32(message.Chat.Id), String.Format("O usuário {0} de {1} está sem interagir com o computador a {2}", Environment.UserName, MachineKey, diferenca.ToString(@"hh\Hmm\Mss\S"))).Result; respondeu = true; lockedExecution = false; } catch (Exception ex) { var ret = bot.SendTextMessageAsync(Convert.ToInt32(message.Chat.Id), "Ocorreu um erro ao tentar obter o AFK de " + MachineKey).Result; respondeu = true; lockedExecution = false; } }
static void ProcessStateWaitForStart(User user, Telegram.Bot.Types.Message message) { string msg = message.Text.Trim().ToLower(); if (msg == "no") { user.WhitelistItem.State = WhiteListStateEnum.zero; user.WhitelistItem.EthAddress = null; user.WhitelistItem.Contribution = 0; user.WhitelistItem.EthBalance = null; SendMessage(message, user, "Sorry to hear that, if you want, you can restart the whitelist process at any time."); return; } else if (msg != "yes") { SendMessage(message, user, "You are about to apply for a spot in our whitelist. Only whitelisted members are able to contribute to our presale!" + lf + lf + "In order to minimize the possibility for participants to \"cheat\" the system and contribute more than 15 ETH, a whitelist system based on telegram accounts has been implemented in combination with ethereum contribution addresses stored in the Savix presale contract." + lf + lf + "Since telegram requires a phone number, it is much harder to obtain multiple accounts compared to E-Mail addresses or the like. You need the following pre-requisites to participate in the Savix presale:" + lf + lf + "<i><b>- Ethereum Wallet</b></i> used for ether contribution and to receive Savix." + lf + lf + "<i><b>- Metamask</b></i>" + lf + lf + "please type <b><i>yes</i></b> if you are ready to start the whitelist process ?"); return; } SendMessage(message, user, "Please enter your ETH address that you will be sending the funds from (format 0x)"); user.WhitelistItem.State = WhiteListStateEnum.wait_for_address; return; }
public MessageEnvelop(String User, Int64?ChatId, Telegram.Bot.Types.Message Message) { this.Username = User; this.ChatId = ChatId; this.Message = Message; }
public override void Execute(Telegram.Bot.Types.Message message, TelegramBotClient client) { var chatId = message.Chat.Id; var messageId = message.MessageId; var photoId = message.Photo[0].FileId; string requestPathTG = "https://api.telegram.org/bot" + AppSettings.Key + "/getFile?file_id=" + photoId; WebRequest requestTG = WebRequest.Create(requestPathTG); requestTG.Method = "GET"; WebResponse responseTG = requestTG.GetResponse(); string json_resp = ""; using (StreamReader reader = new StreamReader(responseTG.GetResponseStream())) { json_resp = reader.ReadToEnd(); } var path = JObject.Parse(json_resp)["result"]["file_path"].ToString(); string fullpath = "https://api.telegram.org/file/bot" + AppSettings.Key + "/" + path; NameValueCollection out_formData = HttpUtility.ParseQueryString(string.Empty); out_formData.Add("id_proj", "5"); out_formData.Add("id_user", "1"); out_formData.Add("qr", fullpath); string postDataPromo = out_formData.ToString(); var dataPromo = Encoding.ASCII.GetBytes(postDataPromo); WebRequest requestPromo = WebRequest.Create("https://promo-check.ru/api/qr/add_qr_url"); requestPromo.Method = "POST"; requestPromo.ContentType = "application/x-www-form-urlencoded"; requestPromo.ContentLength = dataPromo.Length; using (var stream = requestPromo.GetRequestStream()) { stream.Write(dataPromo, 0, dataPromo.Length); } WebResponse responsePromo = requestPromo.GetResponse(); json_resp = ""; using (StreamReader reader = new StreamReader(responsePromo.GetResponseStream())) { json_resp = reader.ReadToEnd(); } string messageMy = JObject.Parse(json_resp)["Message"].ToString(); client.SendTextMessageAsync(chatId, messageMy, replyToMessageId: messageId); }
public AntiBayanBot.Core.Models.BayanResult GetBayanResult(Bitmap bitmap, Telegram.Bot.Types.Message message) { Core.Models.MessageData forwardMsgData = null; if (message.ForwardFrom != null) { forwardMsgData = new Core.Models.MessageData() { MessageId = message.MessageId, ChatId = message.Chat.Id, UserId = message.ForwardFrom.Id, UserFullName = GetUserFullName(message.ForwardFrom.FirstName, message.ForwardFrom.LastName), UserName = message.ForwardFrom.Username, DateTimeAdded = message.ForwardDate.Value }; } else if (message.ForwardFromChat != null) { forwardMsgData = new Core.Models.MessageData() { MessageId = message.MessageId, ChatId = message.Chat.Id, UserId = message.ForwardFromChat.Id, UserFullName = message.ForwardFromChat.Title, UserName = message.ForwardFromChat.Title, DateTimeAdded = message.ForwardDate.Value }; } var msgData = new Core.Models.MessageData() { MessageId = message.MessageId, ChatId = message.Chat.Id, UserId = message.From.Id, UserFullName = GetUserFullName(message.From.FirstName, message.From.LastName), UserName = message.From.Username, DateTimeAdded = message.Date }; var messageData = forwardMsgData ?? msgData; if (IsInnerForward(messageData.DateTimeAdded, messageData.UserId, messageData.ChatId)) { return(new Core.Models.BayanResult()); } var result = Recognition.BayanDetector.DetectPhotoBayan(bitmap, messageData); if (result.IsBayan) { // Наказываем баяниста var statisticsRepository = new Core.Dal.StatisticsRepository(); // Сколько он уже набаянил var bayans = statisticsRepository.IncrementBayansCount(msgData); result.BayansCount = bayans; } return(result); }
public override bool Contains(Telegram.Bot.Types.Message message) { if (message.Type != Telegram.Bot.Types.Enums.MessageType.Text) { return(false); } return(message.Text.Contains(this.Name)); }
public bool Contains(TGTypes.Message message) { if (message.Type != TGTypes.Enums.MessageType.Text) { return(false); } return(message.Text.Contains(Name)); }
public virtual void HandleMessage(Api api, Message message, object state) { var chatId = message.Chat.Id; TelegramSession session; if (!Sessions.TryGetValue(chatId, out session)) { session = CreateSession(); Sessions[chatId] = session; } session.HandleMessage(api, message, state); }
public virtual void HandleMessage(Api api, Message message, object state) { if (message.Type == MessageType.TextMessage) { var text = message.Text.Trim(); if (text == "/start") { StartHandler.HandleMessage(this, api, message, state); return; } else if (text == "/help") { HelpHandler.HandleMessage(this, api, message, state); return; } } var handler = CurrentHandler; var next = handler.HandleMessage(this, api, message, state); CurrentHandler = next; }
public void Execute(Message message) { var text = message.Text.Split(' '); switch (text.Count()) { case 1: _bot.SendText(message.Chat.Id, Responses.DisallowUserCommandUsage); break; default: var param = text[1]; int userId; var user = int.TryParse(param, out userId) ? _db.Value.UserDisallow(userId) : _db.Value.UserDisallow(param); if (user == null) { _bot.SendText(message.Chat.Id, Responses.UserNotFound); break; } _bot.SendText(message.Chat.Id, string.Format(Responses.DisallowUserCommandSuccess, user.GetUsernameWithId())); _bot.SendText(userId, Responses.DisallowUserCommandMessageToUser); break; } }
private void HandleCommand(Message message) { ICommandStrategy strategy = null; var command = message.GetCommand(); switch (command) { case "/start": strategy = new StartCommand(_db.Value, _bot.Value); break; case "/help": strategy = new HelpCommand(_commandHelper.Value, _bot.Value); break; case "/settings": strategy = new SettingsCommand(_bot.Value); break; case "/add": strategy = new AddCommand(_bot.Value, _db.Value); break; case "/list": strategy = new ListCommand(_bot.Value, _db.Value, _commandHelper.Value); break; default: if (Config.BotAdmins.Contains(message.Chat.Id) && Config.AdminCommands.Contains(command)) { switch (command) { case "/admin": strategy = new AdminCommand(_bot.Value); break; case "/allowuser": strategy = new AllowUserCommand(_bot.Value, _db); break; case "/disallowuser": strategy = new DisallowUserCommand(_bot.Value, _db); break; } break; } if (_commandHelper.Value.CheckPermission(message.Chat.Id)) { switch (command) { case "/wol": strategy = new WolCommand(_bot.Value); break; case "/alias": strategy = new AliasCommand(_db.Value, _bot.Value, _commandHelper.Value); break; } } if (_db.Value.GetCommandByChat(message.Chat.Id, message.Text) != null) strategy = new CustomUserCommand(_db.Value, _bot.Value); break; } new CommandContext(strategy ?? new UnknownCommand(_bot.Value)).Execute(message); }
public void Handle(Message message) { try { if (Config.BasicCommands.Contains(message.Text)) { HandleCommand(message); return; } if (!_commandHelper.Value.CheckPermission(message.Chat.Id)) return; if (message.IsText()) HandleText(message); if (message.IsCommand()) HandleCommand(message); } catch (Exception exception) { _db.Value.SaveErrorAsync(exception); } }
private void HandleText(Message message) { }
public void Execute(Message message) { _bot.SendText(message.Chat.Id, Responses.UnknownCommandText); }
public virtual TelegramMessageHandler HandleMessage(TelegramSession session, Api api, Message message, object state) { return this; }
/// <summary> /// Initializes a new instance of the <see cref="MessageEventArgs"/> class. /// </summary> /// <param name="message">The message.</param> public MessageEventArgs(Message message) { Message = message; }
public void Execute(Message message) { var commands = _commandHelper.GetCommandsByChat(message.Chat.Id); _bot.SendText(message.Chat.Id, string.Format(Responses.ListText, string.Join("\r\n", commands))); }
internal MessageEventArgs(Update update) { Message = update.Message; }
public override TelegramMessageHandler HandleMessage(TelegramSession session, Api api, Message message, object state) { api.SendTextMessage(message.Chat.Id, Text, DisableWebPagePreview, ReplyToMessageId, ReplyMarkup, IsMarkdown); return this; }
private static void registerUserByChatId(Message message) { System.Console.WriteLine(message); }
public async void SendText(int chatId, string text) { _result = await _bot.SendTextMessage(chatId, text); }
/// <summary> /// Initializes a new instance of the <see cref="MessageEventArgs"/> class. /// </summary> /// <param name="update">The update.</param> public MessageEventArgs(Update update) { Message = (update.Type == UpdateType.EditedMessage) ? update.EditedMessage : update.Message; }
public void Execute(Message message) { if (message.From != null) _db.SaveOrUpdateUserAsync(message.From); _bot.SendText(message.Chat.Id, Responses.StartText); }
public void Execute(Message message) { _strategy.Execute(message); }
/// <summary> /// Initializes a new instance of the <see cref="MessageEventArgs"/> class. /// </summary> /// <param name="message">The message.</param> internal MessageEventArgs(Message message) { Message = message; }
public void Execute(Message message) { _bot.SendText(message.Chat.Id, Responses.SettingsText); }
public void Execute(Message message) { _bot.SendText(message.Chat.Id, _commandHelper.CheckPermission(message.Chat.Id) ? Responses.HelpTextForAllowed : string.Format(Responses.HelpText, message.Chat.Id)); }
public void Execute(Message message) { _bot.SendText(message.Chat.Id, string.Format(Responses.AdminText, string.Join("\r\n", Config.AdminCommands))); }