Example #1
0
        protected override void AcceptCallbackQuery(CallbackQuery callbackQuerry)
        {
            int telegramId = callbackQuerry.From.Id;

            //На случай запуска через long polling
            StatisticsContainer.UpdateStatistics(telegramId);



            //Шпионское логгирование
            LoggerSingelton.GetLogger().Log(
                LogLevel.INFO,
                Source.OTHER,
                $"CallbackQuery, BotUsername={BotUsername}, senderId={callbackQuerry.Message.From.Id}, text={callbackQuerry.Data}"
                );


            bool isBlocked = stupidBotAntispam.UserIsBlockedForThisBot(telegramId);

            if (isBlocked)
            {
                //TODO ответить, что заблокирован
                BotClient.SendTextMessageAsync(callbackQuerry.Message.Chat.Id, "это же бан");
                return;
            }

            var session = GetSessionByTelegramId(telegramId);

            session.TakeControl(callbackQuerry);
        }
Example #2
0
        public override void Stop()
        {
            LoggerSingelton.GetLogger().Log(
                LogLevel.IMPORTANT_INFO,
                Source.FOREST,
                $"Остановка бота. BotUsername={BotUsername}");

            base.Stop();
        }
Example #3
0
        protected override void AcceptMessage(Message message)
        {
            int telegramId = message.From.Id;

            //На случай запуска через long polling
            StatisticsContainer.UpdateStatistics(telegramId);



            //Шпионское логгирование
            LoggerSingelton.GetLogger().Log(
                LogLevel.INFO,
                Source.OTHER,
                $"Message, BotUsername={BotUsername}, senderId={message.From.Id}, type ={message.Type}, text={message.Text}"
                );

            bool isBlocked = stupidBotAntispam.UserIsBlockedForThisBot(telegramId);

            if (isBlocked)
            {
                //TODO ответить, что заблокирован
                BotClient.SendTextMessageAsync(message.Chat.Id, "это же бан");
                return;
            }

            try
            {
                var session = GetSessionByTelegramId(telegramId);
                session.TakeControl(message);
            }
            catch (Exception exception)
            {
                LoggerSingelton.GetLogger().Log(
                    LogLevel.ERROR,
                    Source.FOREST,
                    $"При обработке сообщения для бота BotUsername= {BotUsername} через long polling было брошено исключение",
                    ex: exception
                    );
            }
        }