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;
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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
            //}
        }
Esempio n. 6
0
        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));
            }
        }
Esempio n. 7
0
        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;
        }
Esempio n. 8
0
 private static async Task edit(Telegram.Bot.Types.Message message)
 {
     await botClient.SendTextMessageAsync(
         chatId : chatid,
         text : "Đã sửa công việc."
         );
 }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        /// <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);
        }
Esempio n. 11
0
        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);
                }
            }
        }
Esempio n. 12
0
        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;
        }
Esempio n. 13
0
        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);
            }
        }
Esempio n. 14
0
        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;
        }
Esempio n. 15
0
        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;
            }
        }
Esempio n. 17
0
        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);
            }
        }
Esempio n. 18
0
        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);
            }
        }
Esempio n. 19
0
        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;
        }
Esempio n. 20
0
        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); //третий параметр - если нужно цитирование
        }
Esempio n. 21
0
        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);
        }
Esempio n. 22
0
        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;
        }
Esempio n. 23
0
        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());
        }
Esempio n. 24
0
 /// <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;
     }
 }
Esempio n. 25
0
        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;
            }
        }
Esempio n. 26
0
        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;
        }
Esempio n. 27
0
 public MessageEnvelop(String User,
                       Int64?ChatId,
                       Telegram.Bot.Types.Message Message)
 {
     this.Username = User;
     this.ChatId   = ChatId;
     this.Message  = Message;
 }
Esempio n. 28
0
        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);
        }
Esempio n. 29
0
        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));
        }
Esempio n. 31
0
        public bool Contains(TGTypes.Message message)
        {
            if (message.Type != TGTypes.Enums.MessageType.Text)
            {
                return(false);
            }

            return(message.Text.Contains(Name));
        }
Esempio n. 32
0
        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);
        }
Esempio n. 33
0
        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;
        }
Esempio n. 34
0
 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;
     }
 }
Esempio n. 35
0
        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);
        }
Esempio n. 36
0
        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);
            }
        }
Esempio n. 37
0
 private void HandleText(Message message)
 {
 }
Esempio n. 38
0
 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;
 }
Esempio n. 40
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MessageEventArgs"/> class.
 /// </summary>
 /// <param name="message">The message.</param>
 public MessageEventArgs(Message message)
 {
     Message = message;
 }
Esempio n. 41
0
 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)));
 }
Esempio n. 42
0
 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;
 }
Esempio n. 44
0
 private static void registerUserByChatId(Message message)
 {
     System.Console.WriteLine(message);
 }
Esempio n. 45
0
 public async void SendText(int chatId, string text)
 {
     _result = await _bot.SendTextMessage(chatId, text);
 }
Esempio n. 46
0
 /// <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;
 }
Esempio n. 47
0
 public void Execute(Message message)
 {
     if (message.From != null) _db.SaveOrUpdateUserAsync(message.From);
     _bot.SendText(message.Chat.Id, Responses.StartText);
 }
Esempio n. 48
0
 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;
 }
Esempio n. 50
0
 public void Execute(Message message)
 {
     _bot.SendText(message.Chat.Id, Responses.SettingsText);
 }
Esempio n. 51
0
 public void Execute(Message message)
 {
     _bot.SendText(message.Chat.Id, _commandHelper.CheckPermission(message.Chat.Id) ? Responses.HelpTextForAllowed : string.Format(Responses.HelpText, message.Chat.Id));
 }
Esempio n. 52
0
 public void Execute(Message message)
 {
     _bot.SendText(message.Chat.Id, string.Format(Responses.AdminText, string.Join("\r\n", Config.AdminCommands)));
 }