Esempio n. 1
0
        public static async void ReceiveMessage()
        {
            int checkname     = 0;
            var lastMessageId = 0;

            while (true)
            {
                var messages = await Bot.GetUpdatesAsync();

                if (messages.Length > 0)
                {
                    var last = messages[messages.Length - 1];
                    if (lastMessageId != last.Id)
                    {
                        lastMessageId = last.Id;
                        Console.WriteLine(last.Message.Text);
                        switch (last.Message.Text.ToLower().Trim())
                        {
                        case "/start":
                        case "hi":
                        case "hello":
                        {
                            Console.WriteLine("Получено сообщение!");
                            await Bot.SendTextMessageAsync(last.Message.From.Id, BotAnswers.SendFirstMessage());

                            break;
                        }

                        case "/info":
                        {
                            await Bot.SendTextMessageAsync(last.Message.From.Id, BotAnswers.CommandsInfo());

                            break;
                        }

                        case "/createnote":
                        {
                            await Bot.SendTextMessageAsync(last.Message.From.Id, BotAnswers.InsertNoteName());

                            break;
                        }
                        }

                        /*if (checkname == 0 && last.Message.Text.Contains("/start"))
                         * {
                         * await Bot.SendTextMessageAsync(last.Message.From.Id, "Hello! How can I call you?");
                         * checkname = 1;
                         * }
                         * if (checkname == 1)
                         * {
                         *  await Bot.SendTextMessageAsync(last.Message.From.Id, "Nice to meet you, {0}! My name is RemindBookBot.",);
                         * }*/
                    }
                }
                if (checkname == 0)
                {
                    Thread.Sleep(200);
                }
            }
        }
Esempio n. 2
0
        internal void GetUpdates()
        {
            _client = new Telegram.Bot.TelegramBotClient(_token);
            var me = _client.GetMeAsync().Result;

            if (me != null && !string.IsNullOrEmpty(me.Username))
            {
                int offset = 0;
                while (true)
                {
                    try
                    {
                        var updates = _client.GetUpdatesAsync(offset).Result;
                        if (updates != null && updates.Count() > 0)
                        {
                            foreach (var update in updates)
                            {
                                processUpdate(update);
                                offset = update.Id + 1;
                            }
                        }
                    }
                    catch (Exception ex) { Console.WriteLine(ex.Message); }

                    //Thread.Sleep(1000);
                    Task.Delay(1000);
                }
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Bot's work process
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void backgroundWorkerProcess_DoWorkAsync(object sender, DoWorkEventArgs e)
        {
            var worker = sender as BackgroundWorker;
            var key    = e.Argument as string; // получаем ключ из аргументов

            try
            {
                var webProxy = new WebProxy("198.199.91.20:3128", true);
                var Bot      = new Telegram.Bot.TelegramBotClient(key, webProxy);
                await Bot.SetWebhookAsync(""); //USE VPN

                int offset = 0;                // отступ по сообщениям
                while (true)
                {
                    var updates = await Bot.GetUpdatesAsync(offset);

                    foreach (var update in updates)
                    {
                        var message = update.Message;

                        /*
                         * Test message
                         * if (message.Text == "/saysomething")
                         * {
                         *   // в ответ на команду /saysomething выводим сообщение
                         *   await Bot.SendTextMessageAsync(message.Chat.Id, "тест",
                         *          replyToMessageId: message.MessageId);
                         * }
                         */

                        if (message.Text == "/random")
                        {
                            string   pageText = AnekdotParsing.LoadPage(randomAnekdotPage);
                            string[] data     = AnekdotParsing.ParseData(pageText);

                            string reply = string.Empty;
                            foreach (string str in data)
                            {
                                reply += str + "\n";
                            }

                            await Bot.SendTextMessageAsync(message.Chat.Id, reply);
                        }

                        offset = update.Id + 1;
                    }
                }
            }
            catch (Telegram.Bot.Exceptions.ApiRequestException ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Esempio n. 4
0
        public override async void bw_DoWork(object sender, DoWorkEventArgs e)
        {
            var worker = sender as BackgroundWorker;
            var key    = e.Argument as string;

            try
            {
                var Bot = new Telegram.Bot.TelegramBotClient(key);
                await Bot.SetWebhookAsync("");

                int offset = 0;

                while (true)
                {
                    var updates = await Bot.GetUpdatesAsync(offset);

                    foreach (var v in updates)
                    {
                        var message = v.Message;
                        if (message == null)
                        {
                            return;
                        }

                        int idCurrentUser = dataBase.IdCurrentUser(message.From.Id);

                        if (idCurrentUser == 0)                                                                              //если ID не найден, то создаем и добавляем нового клиента и присваиваем ему индек последнего объекта
                        {
                            dataBase.AddUser(message.From.Id.ToString(), message.Chat.Id.ToString(), OperatingMode.AddGoal); //add new user
                            await Bot.SendTextMessageAsync(message.Chat.Id, "Приветствуем Вас.\nВведите от 3 до 15 целей, которые необходимо достичь.", replyMarkup : KeyBoard());
                        }
                        else
                        {
                            IUser user = new User(dataBase, idCurrentUser, message, dataBase.GetUserMod(idCurrentUser));
                            await Bot.SendTextMessageAsync(message.Chat.Id, (user.Message = message).Text, replyMarkup : KeyBoard());
                        }

                        offset = v.Id + 1;
                    }
                }
            }

            catch (Telegram.Bot.Exceptions.ApiRequestException ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Esempio n. 5
0
        public async static void Bw_DoWork(object sender, DoWorkEventArgs e)
        {
            var worker = sender as BackgroundWorker;
            var key    = "573711040:AAFTiBmtBskcWKhD9Qw03dyXS6jw4WGjwSA"; // <<< PUT REAL KEY

            try
            {
                var Bot = new Telegram.Bot.TelegramBotClient(key);
                //Bot.SetWebhook("");
                //await Bot.SetWebhookAsync("");

                int offset = 0;
                while (true)
                {
                    var updates = await Bot.GetUpdatesAsync(offset);

                    foreach (var update in updates)
                    {
                        var message = update.Message;
                        if (message.Type == Telegram.Bot.Types.Enums.MessageType.Text)
                        {
                            if (message.Text == "/start")
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "Hi! Welcome to Rechatter Bot!. With me you can send incognito messages to any user. To use me, you should have app ReChatter Bot App on your Windows Device (XBox/WindowsPhone/WindowsPC etc.). Right now you cant find any release for this app. So to get this app contact to developer @AlexBesida. Using me without special app is working in progress.", replyMarkup : new InlineKeyboardMarkup(InlineKeyboardButton.WithUrl("Alex Besida", "https://t.me/AlexBesida")));
                            }

                            if (message.Text == "/developer")
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "My developer is Alex Besida.", replyMarkup : new InlineKeyboardMarkup(InlineKeyboardButton.WithUrl("Alex Besida", "https://t.me/AlexBesida")));
                            }

                            if (message.Text == "/sendmessage")
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, comingsoon);
                            }

                            if (message.Text == "/feedback")
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, comingsoon);
                            }

                            if (message.Text == "/help")
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, comingsoon);
                            }

                            if (message.Text == "/settings")
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, comingsoon);
                            }
                        }

                        offset = update.Id + 1;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
Esempio n. 6
0
        public async static void Bw_DoWork(object sender, DoWorkEventArgs e)
        {
            var worker = sender as BackgroundWorker;
            var key    = "627466136:AAFo8004Q5Z_UvZSjMsyiDstRcizoBE6xEQ"; // <<< PUT REAL KEY

            try
            {
                var Bot = new Telegram.Bot.TelegramBotClient(key);

                int offset = 0;
                while (true)
                {
                    var updates = await Bot.GetUpdatesAsync(offset);

                    foreach (var update in updates)
                    {
                        var message = update.Message;
                        if (message.Type == Telegram.Bot.Types.Enums.MessageType.Text)
                        {
                            if (message.Text == "/start" || message.Text == "/start@" + AppSettings.FAName)
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "Good day! I'm Flux Assistant. I am always ready to help you. Right now, I am in Alpha Version. My developer is @AlexBesida", replyMarkup : new InlineKeyboardMarkup(InlineKeyboardButton.WithUrl("Alex Besida", "https://t.me/AlexBesida")));
                            }

                            else if (message.Text == "/developer" || message.Text == "/developer@" + AppSettings.FAName)
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "My developer is Alex Besida.", replyMarkup : new InlineKeyboardMarkup(InlineKeyboardButton.WithUrl("Alex Besida", "https://t.me/AlexBesida")));
                            }

                            else if (message.Text == "/feedback" || message.Text == "/@" + AppSettings.FAName)
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, comingsoon);
                            }

                            else if (message.Text == "/help" || message.Text == "/help@" + AppSettings.FAName)
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, comingsoon);
                            }

                            else if (message.Text == "/settings" || message.Text == "/settings@" + AppSettings.FAName)
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, comingsoon);
                            }

                            else if (message.Text == "/myid" || message.Text == "/myid@" + AppSettings.FAName)
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "Your ID is: " + message.From.Id + ".");
                            }

                            else if (message.Text.Contains("Hello") || message.Text.Contains("Hey") || message.Text.Contains("Hi") || message.Text.Contains("Hola") || message.Text.Contains("Hoy") || message.Text.Contains("Good day"))
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "Hello!");
                            }

                            else if (message.Text.Contains("XD") || message.Text.Contains("xd") || message.Text.Contains("Xd") || message.Text.Contains("xD"))
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "A little laugh will not prevent you", replyToMessageId : message.MessageId);
                            }

                            else if (message.Text.Contains("Okey") || message.Text.Contains("Ok") || message.Text.Contains("OK"))
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "👌 🤙", replyToMessageId : message.MessageId);
                            }
                            else if (message.Text.Contains("How are you") || message.Text.Contains("Whats up") || message.Text.Contains("What's up"))
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "All fine, thanks. And you?", replyToMessageId : message.MessageId);
                            }

                            else if (message.Text.Contains("good") || message.Text.Contains("Good") || message.Text.Contains("Nice") || message.Text.Contains("Fine"))
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "Okey 👌");
                            }



                            else
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "Sorry, but I did not understand.");
                            }
                        }

                        offset = update.Id + 1;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
Esempio n. 7
0
        private async void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            secondsElapsed += 1;
            DateTime now = DateTime.UtcNow + utcMoscowShift;

            if (secondsElapsed == 60 * 60)
            {
                foreach (ApplicationUser user in users)
                {
                    if (user.TelegramChatId > 0)
                    {
                        await sendTelegramUpdateBets(Bot, user);
                    }
                }
                allbets        = db.Bets.Where(b => b.BetSTIplus == 0 & !b.IsLocked).ToList();
                secondsElapsed = 0;
            }

            if ((secondsElapsed == 15 * 60) | (secondsElapsed == 30 * 60) | (secondsElapsed == 30 * 60))
            {
                allbets = db.Bets.Where(b => b.BetSTIplus == 0 & !b.IsLocked).ToList();
            }

            var updates = await Bot.GetUpdatesAsync(offset);

            if (updates != null)
            {
                if (updates.Count() > 0)
                {
                    foreach (var update in updates) // Перебираем все обновления
                    {
                        ApplicationUser curUser;
                        var             message = update.Message;
                        if (message != null)
                        {
                            string curUserName = message.Chat.Username;
                            curUser = db.Users.Where(u => u.TelegramUserName == curUserName).FirstOrDefault();

                            /*
                             * //Добавляем ChatId
                             * if (curUser != null)
                             * {
                             *  if (curUser.TelegramChatId == 0)
                             *  {
                             *      curUser.TelegramChatId = message.Chat.Id;
                             *      db.Entry(curUser).State = EntityState.Modified;
                             *      db.SaveChanges();
                             *  }
                             * }
                             */


                            if (message.Type == Telegram.Bot.Types.Enums.MessageType.Text)
                            {
                                if (message.Text == "/register")
                                {
                                    //Добавляем ChatId
                                    if (curUser != null)
                                    {
                                        curUser.TelegramChatId  = message.Chat.Id;
                                        db.Entry(curUser).State = EntityState.Modified;
                                        db.SaveChanges();
                                        await Bot.SendTextMessageAsync(message.Chat.Id, "Регистрация прошла успешно!", replyToMessageId : message.MessageId);
                                    }
                                }
                                else if (message.Text == "/saysomething")
                                {
                                    // в ответ на команду /saysomething выводим сообщение
                                    //ReplyKeyboardHide rkh = new ReplyKeyboardHide();

                                    //await Bot.SendTextMessageAsync(message.Chat.Id, "тест",
                                    //       replyToMessageId: message.MessageId, replyMarkup: rkh);
                                    await Bot.SendTextMessageAsync(message.Chat.Id, "something!", replyToMessageId : message.MessageId);
                                }
                                else if (message.Text == "/mybets")
                                {
                                    string   senderUserName = message.From.Username;
                                    DateTime dt             = DateTime.UtcNow.Date;
                                    Debug.Print("Sender: " + senderUserName);
                                    string reply = "";
                                    reply = "А вот твоя панама, " + senderUserName + "!";
                                    List <Bet>           bets = getBetsByTelegramUserNameAndDate(senderUserName, dt);
                                    InlineKeyboardMarkup kb   = createKeabordFromBets(bets);
                                    await Bot.SendTextMessageAsync(chatId : message.Chat.Id, text : reply, replyMarkup : kb);
                                }
                                else if (Regex.IsMatch(message.Text, "^(?=.*\\d)\\d*[\\.\\,]?\\d*$"))
                                {
                                    string betStr = message.Text.Replace(',', '.');
                                    if (curUser.TelegramBetId > 0)
                                    {
                                        Bet curBet = db.Bets.Find(curUser.TelegramBetId);
                                        if (!curBet.IsLocked)
                                        {
                                            float telegramBet = Convert.ToSingle(betStr, CultureInfo.InvariantCulture.NumberFormat);
                                            curBet.BetSTIplus      = telegramBet;
                                            db.Entry(curBet).State = EntityState.Modified;
                                            db.SaveChanges();
                                            if (curBet.BetSTIplus == telegramBet)
                                            {
                                                string reply = "Принято: \n\"" + curBet.Program.ProgTitle + "\" - " + curBet.BetSTIplus.ToString();

                                                await Bot.SendTextMessageAsync(chatId : message.Chat.Id, text : reply);
                                            }
                                            else
                                            {
                                                await Bot.SendTextMessageAsync(chatId : message.Chat.Id, text : "Что-то пошло не так. Ставка не принята.");
                                            }
                                            curUser.TelegramBetId   = 0;
                                            db.Entry(curUser).State = EntityState.Modified;
                                            db.SaveChanges();
                                        }
                                        else
                                        {
                                            string reply = "Ставка \"" + curBet.Program.ProgTitle + "\" заблокирована. Поставить не удалось.";
                                            await Bot.SendTextMessageAsync(chatId : message.Chat.Id, text : reply);
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            if (update.CallbackQuery.Data != null)
                            {
                                string curUserName = update.CallbackQuery.Message.Chat.Username;
                                curUser = db.Users.Where(u => u.TelegramUserName == curUserName).FirstOrDefault();

                                if (update.CallbackQuery.Data.Length > 5)
                                {
                                    if (update.CallbackQuery.Data.Substring(0, 5) == "betId")
                                    {
                                        string betId = update.CallbackQuery.Data.Substring(6);
                                        Bet    b     = db.Bets.Find(Convert.ToInt32(betId));
                                        if (b.ApplicationUser == curUser)
                                        {
                                            curUser.TelegramBetId   = Convert.ToInt32(betId);
                                            db.Entry(curUser).State = EntityState.Modified;
                                            db.SaveChanges();
                                            string reply = "Сколько ставим на \"" + b.Program.ProgTitle + "\"?";
                                            //await Bot.SendTextMessageAsync(update.CallbackQuery.Message.Chat.Id, reply, false, false, update.CallbackQuery.Message.MessageId, kb);
                                            //await Bot.SendTextMessageAsync(update.CallbackQuery.Message.Chat.Id, reply, false, false, update.CallbackQuery.Message.MessageId, rkh);
                                            await Bot.SendTextMessageAsync(chatId : update.CallbackQuery.Message.Chat.Id, text : reply);
                                        }
                                    }
                                }
                                else
                                {
                                    await Bot.SendTextMessageAsync(chatId : message.Chat.Id, text : "Что-то пошло не так...");
                                }
                            }
                        }
                        offset = update.Id + 1;
                    }
                }
            }
        }
Esempio n. 8
0
        private async void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            var worker = sender as BackgroundWorker;
            var key    = e.Argument as String;

            try
            {
                var Bot = new Telegram.Bot.TelegramBotClient(key);
                Bot.SetWebhookAsync("").Wait();

                int offset = 0;
                int stageM = 0;
                while (true)
                {
                    var updates = await Bot.GetUpdatesAsync(offset);

                    foreach (var update in updates)
                    {
                        var message = update.Message;
                        stageM = 0;
                        int index = -1;
                        for (int i = 0; i < persons.Count; i++)
                        {
                            if (persons[i].userid == message.From.Id)
                            {
                                index = i;
                                break;
                            }
                        }
                        if (message.Type == Telegram.Bot.Types.Enums.MessageType.TextMessage)
                        {
                            if (message.Text == "/reset" && index >= 0)
                            {
                                persons.RemoveAt(index);
                                await Bot.SendTextMessageAsync(message.Chat.Id, "Ваш профиль очищен.");
                            }
                            else if (message.Text == "/reset")
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "Профиль чист.");
                            }
                            else
                            {
                                if (index >= 0)
                                {
                                    stageM = persons[index].stage;
                                }
                                else
                                {
                                    persons.Add(new Person
                                    {
                                        FirstName   = message.From.FirstName,
                                        SecondName  = message.From.LastName,
                                        gender      = 0,
                                        temperament = "",
                                        bd          = 0,
                                        bm          = 0,
                                        by          = 0,
                                        userid      = message.From.Id,
                                        stage       = 0
                                    });
                                    index  = persons.Count - 1;
                                    stageM = 0;
                                }
                                switch (stageM)
                                {
                                case 0:
                                    Telegram.Bot.Types.FileToSend file = new Telegram.Bot.Types.FileToSend();
                                    file.Content  = File.Open("hello.jpg", FileMode.Open);
                                    file.Filename = "hello.jpg";
                                    await Bot.SendPhotoAsync(message.Chat.Id, file);

                                    await Bot.SendTextMessageAsync(message.Chat.Id, "Привет, " + message.From.FirstName + "!\nЯ Миша.\nЯ постараюсь быть тебе другом.\nРасскажи немного о себе😊");

                                    var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup
                                    {
                                        Keyboard = new[] {
                                            new[]     // row 1
                                            {
                                                new Telegram.Bot.Types.KeyboardButton("👨Мужской"),
                                                new Telegram.Bot.Types.KeyboardButton("👱‍♀Женский")
                                            },
                                        },
                                        ResizeKeyboard  = true,
                                        OneTimeKeyboard = true
                                    };

                                    await Bot.SendTextMessageAsync(message.Chat.Id, "Укажи свой пол", ParseMode.Default, false, false, 0, keyboard);

                                    stageM++;
                                    break;

                                case 1:
                                    if (message.Text == "👨Мужской")
                                    {
                                        persons[index].gender = 1;
                                    }
                                    else if (message.Text == "👱‍♀Женский")
                                    {
                                        persons[index].gender = 2;
                                    }
                                    else
                                    {
                                        stageM--;
                                        break;
                                    }
                                    var keyboard1 = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup
                                    {
                                        Keyboard = new[] {
                                            new[]     // row 1
                                            {
                                                new Telegram.Bot.Types.KeyboardButton("👍Хорошо"),
                                                new Telegram.Bot.Types.KeyboardButton("😞Плохо"),
                                                new Telegram.Bot.Types.KeyboardButton("😐Не очень")
                                            },
                                        },
                                        ResizeKeyboard  = true,
                                        OneTimeKeyboard = true
                                    };

                                    await Bot.SendTextMessageAsync(message.Chat.Id, "Как прошел твой день?", ParseMode.Default, false, false, 0, keyboard1);

                                    stageM++;
                                    break;

                                case 2:
                                    bool   inGame        = false;
                                    int    indexgame     = -1;
                                    int    indexGamer    = 0;
                                    string pathGamePhoto = "";
                                    for (int i = 0; i < gamesphoto.Count; i++)
                                    {
                                        if (gamesphoto[i].user1 == message.From.Id ||
                                            gamesphoto[i].user2 == message.From.Id ||
                                            gamesphoto[i].user3 == message.From.Id ||
                                            gamesphoto[i].user4 == message.From.Id)
                                        {
                                            inGame    = true;
                                            indexgame = i;
                                        }
                                    }
                                    if (!inGame)
                                    {
                                        await Bot.SendTextMessageAsync(message.Chat.Id, "Я понял. Давай сыграем в игру, где надо будет собрать части картинки в одну. Я отправлю картинки всем в твоей команде и ты должен найти недостающие части.");
                                    }
                                    else if (gamesphoto[indexgame].count == 4)
                                    {
                                        if (message.Text.ToLower() == "кот" || message.Text.ToLower() == "котик" || message.Text.ToLower() == "кошка")
                                        {
                                            await Bot.SendTextMessageAsync(message.Chat.Id, "Правильно!");

                                            var keyboard6 = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup
                                            {
                                                Keyboard = new[] {
                                                    new[] // row 1
                                                    {
                                                        new Telegram.Bot.Types.KeyboardButton("Учился в школе"),
                                                        new Telegram.Bot.Types.KeyboardButton("Гуляли с друзьями"),
                                                        new Telegram.Bot.Types.KeyboardButton("Справляли день рождения"),
                                                        new Telegram.Bot.Types.KeyboardButton("Ничего")
                                                    },
                                                },
                                                ResizeKeyboard  = true,
                                                OneTimeKeyboard = true
                                            };

                                            await Bot.SendTextMessageAsync(message.Chat.Id, "Что запомнилось тебе за этот день?", ParseMode.Default, false, false, 0, keyboard6);

                                            stageM++;
                                            break;
                                        }
                                        else
                                        {
                                            await Bot.SendTextMessageAsync(message.Chat.Id, "Подумай еще!😊");

                                            break;
                                        }
                                    }
                                    if (!inGame)
                                    {
                                        for (int i = 0; i < gamesphoto.Count; i++)
                                        {
                                            if (gamesphoto[i].count != 4)
                                            {
                                                if (gamesphoto[i].user1 == -1)
                                                {
                                                    gamesphoto[i].chatID1 = message.Chat.Id;
                                                    gamesphoto[i].user1   = message.From.Id;
                                                    pathGamePhoto         = gamesphoto[i].firstPath;
                                                }

                                                else if (gamesphoto[i].user2 == -1)
                                                {
                                                    indexGamer            = 1;
                                                    gamesphoto[i].chatID2 = message.Chat.Id;
                                                    gamesphoto[i].user2   = message.From.Id;
                                                    pathGamePhoto         = gamesphoto[i].secondPath;
                                                }
                                                else if (gamesphoto[i].user3 == -1)
                                                {
                                                    indexGamer            = 2;
                                                    gamesphoto[i].chatID3 = message.Chat.Id;
                                                    gamesphoto[i].user3   = message.From.Id;
                                                    pathGamePhoto         = gamesphoto[i].thirdPath;
                                                }
                                                else if (gamesphoto[i].user4 == -1)
                                                {
                                                    indexGamer            = 3;
                                                    gamesphoto[i].chatID4 = message.Chat.Id;
                                                    gamesphoto[i].user4   = message.From.Id;
                                                    pathGamePhoto         = gamesphoto[i].fourPath;
                                                }
                                                inGame    = true;
                                                indexgame = i;
                                                gamesphoto[indexgame].count++;
                                                if (gamesphoto[indexgame].count == 4)
                                                {
                                                    Telegram.Bot.Types.FileToSend file1 = new Telegram.Bot.Types.FileToSend();
                                                    file1.Content  = File.Open(gamesphoto[indexgame].firstPath, FileMode.Open);
                                                    file1.Filename = gamesphoto[indexgame].firstPath;
                                                    await Bot.SendPhotoAsync(gamesphoto[indexgame].chatID1, file1);

                                                    await Bot.SendTextMessageAsync(gamesphoto[indexgame].chatID1, "Найди другие части картинки и скажи что на картинке. Удачи!😊");

                                                    file1.Content  = File.Open(gamesphoto[indexgame].secondPath, FileMode.Open);
                                                    file1.Filename = gamesphoto[indexgame].secondPath;
                                                    await Bot.SendPhotoAsync(gamesphoto[indexgame].chatID2, file1);

                                                    await Bot.SendTextMessageAsync(gamesphoto[indexgame].chatID2, "Найди другие части картинки и скажи что на картинке. Удачи!😊");

                                                    file1.Content  = File.Open(gamesphoto[indexgame].thirdPath, FileMode.Open);
                                                    file1.Filename = gamesphoto[indexgame].thirdPath;
                                                    await Bot.SendPhotoAsync(gamesphoto[indexgame].chatID3, file1);

                                                    await Bot.SendTextMessageAsync(gamesphoto[indexgame].chatID3, "Найди другие части картинки и скажи что на картинке. Удачи!😊");

                                                    file1.Content  = File.Open(gamesphoto[indexgame].fourPath, FileMode.Open);
                                                    file1.Filename = gamesphoto[indexgame].fourPath;
                                                    await Bot.SendPhotoAsync(gamesphoto[indexgame].chatID4, file1);

                                                    await Bot.SendTextMessageAsync(gamesphoto[indexgame].chatID4, "Найди другие части картинки и скажи что на картинке. Удачи!😊");


                                                    break;
                                                }
                                            }
                                        }
                                    }
                                    if (!inGame)
                                    {
                                        await Bot.SendTextMessageAsync(message.Chat.Id, "Игр пока нет😊");
                                    }
                                    else
                                    {
                                        if (gamesphoto[indexgame].count != 4)
                                        {
                                            await Bot.SendTextMessageAsync(message.Chat.Id, "Подожди немного, я поищу тебе команду😊");
                                        }
                                    }
                                    break;

                                case 3:
                                    persons[index].answer2 = message.Text;
                                    var keyboard3 = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup
                                    {
                                        Keyboard = new[] {
                                            new[]     // row 1
                                            {
                                                new Telegram.Bot.Types.KeyboardButton("Да"),
                                                new Telegram.Bot.Types.KeyboardButton("Нет"),
                                            },
                                        },
                                        ResizeKeyboard  = true,
                                        OneTimeKeyboard = true
                                    };

                                    await Bot.SendTextMessageAsync(message.Chat.Id, "Понравилось ли тебе сегодняшнее задание?", ParseMode.Default, false, false, 0, keyboard3);

                                    stageM++;
                                    break;

                                case 4:
                                    persons[index].answer3 = message.Text;

                                    await Bot.SendTextMessageAsync(message.Chat.Id, "Какое задание ты сегодня выполнял?");

                                    stageM++;
                                    break;

                                case 5:
                                    persons[index].answer4 = message.Text;
                                    var keyboard5 = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup
                                    {
                                        Keyboard = new[] {
                                            new[]     // row 1
                                            {
                                                new Telegram.Bot.Types.KeyboardButton("Да"),
                                                new Telegram.Bot.Types.KeyboardButton("Нет"),
                                            },
                                        },
                                        ResizeKeyboard  = true,
                                        OneTimeKeyboard = true
                                    };
                                    await Bot.SendTextMessageAsync(message.Chat.Id, "У тебя есть чем поделиться со мной?", ParseMode.Default, false, false, 0, keyboard5);

                                    stageM++;
                                    break;

                                case 6:
                                    if (message.Text.ToLower() == "нет")
                                    {
                                        await Bot.SendTextMessageAsync(message.Chat.Id, "До завтра!");
                                    }
                                    else if (message.Text.ToLower() == "да")
                                    {
                                        await Bot.SendTextMessageAsync(message.Chat.Id, "Излагай свои мысли");
                                    }
                                    stageM++;
                                    break;

                                case 7:
                                    persons[index].answer5 += message.Text + Environment.NewLine;
                                    break;
                                }
                                ;
                                persons[index].stage = stageM;
                            }
                            offset = update.Id + 1;
                        }
                    }
                }
            }
            catch (Telegram.Bot.Exceptions.ApiRequestException ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Esempio n. 9
-2
        static async Task MainLoop()
        {
            // Read Configuration
            var telegramKey = ConfigurationManager.AppSettings["TelegramKey"];

            // Start Bot
            var bot = new TelegramBotClient(telegramKey);
            var me = await bot.GetMeAsync();
            Console.WriteLine(me.Username + " started at " + DateTime.Now);

            var offset = 0;
            while (true)
            {
                var updates = new Update[0];
                try
                {
                    updates = await bot.GetUpdatesAsync(offset);
                }
                catch (TaskCanceledException)
                {
                    // Don't care
                }
                catch (Exception ex)
                {
                    Console.WriteLine("ERROR WHILE GETTIGN UPDATES - " + ex);
                }
                foreach (var update in updates)
                {
                    offset = update.Id + 1;
                    ProcessUpdate(bot, update, me);
                }

                await Task.Delay(1000);
            }
        }