Esempio n. 1
0
 public async Task Run(ITeleCommands cmd, TelegramUser user, MessageEventArgs e)
 {
     if (cmd == null)
     {
     }
     await cmd.Run(user, e.Message);
 }
Esempio n. 2
0
        private async void ReceivedMessageReminderTime(TelegramUser user, Reminder reminder, string messageReceived)
        {
            try
            {
                TimeSpan sendTime = new TimeSpan();
                if (TimeSpan.TryParse(messageReceived, out sendTime))
                {
                    if (reminder == null)
                    {
                        await sendMessageAsync(user.TelegramChatId, $"Cadastro falhou. Inicie novamente.");

                        return;
                    }
                    reminder.SetTimeToRemind(sendTime);
                    await sendMessageAsync(user.TelegramChatId, $"Cadastro criado com sucesso!!!{Environment.NewLine}{Environment.NewLine}Você receberá a mensagem: {reminder.TextMessage}{Environment.NewLine}Todos os dias as {reminder.RemindTimeToSend.ToString()}");

                    _unitOfWork.Reminders.Update(reminder);
                    _unitOfWork.TelegramUsers.Update(user);
                }
                else
                {
                    await sendMessageAsync(user.TelegramChatId, "Não reconheço este formato de horário. O horário precisa estar no formato HH:MM");
                }
            }
            catch (Exception ex)
            {
                _logger.LogError($"{DateTime.Now} : {ex.ToString()}");
            }
        }
Esempio n. 3
0
        private async void ReceivedMessageReminder(TelegramUser user)
        {
            try
            {
                var keyboard = new ReplyKeyboardMarkup
                {
                    Keyboard = new[]
                    {
                        new[]
                        {
                            new KeyboardButton("Iniciar")
                        },
                        new [] {
                            new KeyboardButton("Consultar")
                        }
                    }
                };

                string texto = $"Selecione uma das opções no teclado que apareceu para você ou digite:{Environment.NewLine}" +
                               $"*Iniciar* - para iniciar o cadastro de um lembrete{Environment.NewLine}" +
                               $"*Consultar* - para consultar os lembretes ativos{Environment.NewLine}";

                await sendMessageAsync(user.TelegramChatId, texto, keyboard);
            }
            catch (Exception ex)
            {
                _logger.LogError($"{DateTime.Now} : {ex.ToString()}");
            }
        }
        private async Task <TelegramUser> GetOrCreateTelegramUser(TelegramUserDto dto)
        {
            var user = await hookrRepository
                       .ReadAsync((context, token) => context.TelegramUsers
                                  .AsNoTracking()
                                  .FirstOrDefaultAsync(x => x.Id == dto.Id, token),
                                  Token);

            if (user != null)
            {
                await UpdateTelegramUserAsync(hookrRepository.Context.Update(user).Entity, dto);

                return(user);
            }

            var createdUser = new TelegramUser
            {
                Id    = dto.Id,
                State = TelegramUserStates.Default
            };

            await UpdateTelegramUserAsync(hookrRepository.Context.Add(createdUser).Entity,
                                          dto);

            return(createdUser);
        }
Esempio n. 5
0
        public MainWindow()
        {
            InitializeComponent();

            Users = new ObservableCollection <TelegramUser>();
            usersList.ItemsSource = Users;
            MsgsId = new List <int>();

            string token = "1379182133:AAEK55Lcz8yTQZzkcQGvHBHIEL-Jyl5FN0k";

            bot = new TelegramBotClient(token);

            bot.OnMessage += delegate(object sender, Telegram.Bot.Args.MessageEventArgs e)
            {
                string msg = $"{DateTime.Now}: {e.Message.From.FirstName} {e.Message.From.Id} {e.Message.Text}";

                File.AppendAllText("data.log", $"{msg}\n");

                Debug.WriteLine(msg);

                this.Dispatcher.Invoke(() =>
                {
                    bool isTimerOn = false;
                    var person     = new TelegramUser(e.Message.From.FirstName, e.Message.From.Id);
                    if (!Users.Contains(person))
                    {
                        Users.Add(person);
                    }
                    string mes = (e.Message.Type == Telegram.Bot.Types.Enums.MessageType.Text) ? e.Message.Text : e.Message.Type.ToString();
                    Users[Users.IndexOf(person)].AddMessage($"{e.Message.Chat.Id} {person.Nick}: {e.Message.MessageId} {mes}");

                    if ((e.Message.Type == Telegram.Bot.Types.Enums.MessageType.Text) && (e.Message.EntityValues == null))
                    {
                        if (!isTimerOn)
                        {
                            isTimerOn = true;
                            SendWarning(e.Message.Chat.Id);
                            TimerCallback tm = new TimerCallback(DeleteMsgs);
                            Timer timer      = new Timer(tm, e.Message.Chat.Id, 0, 60000);
                        }

                        if (isTimerOn)
                        {
                            MsgsId.Add(e.Message.MessageId);
                        }
                    }
                });
            };

            bot.StartReceiving();

            btnSendMsg.Click     += delegate { SendMsg(); };
            txtBxSendMsg.KeyDown += (s, e) => { if (e.Key == Key.Return)
                                                {
                                                    SendMsg();
                                                }
            };
            txtBxSendMsg.MouseMove  += delegate { ClearText(); };
            txtBxSendMsg.MouseLeave += delegate { DisplayText(); };
        }
Esempio n. 6
0
    public static TelegramUser SetGuns(this TelegramUser user)
    {
        IEnumerable <uint> readUints() => Console.ReadLine().Split(":").Select(new Func <string, uint>(Convert.ToUInt32));

        Console.Write("Restrict power [days:hours:minutes]: ");
        TimeSpan span;

        try
        {
            var arr = readUints().ToList();
            span = new TimeSpan((int)arr[0], (int)arr[1], (int)arr[2], 0);
        }
        catch
        {
            Console.WriteLine("Error: It was necessary to enter days:hours:mnutes, like 1:23:59");
            return(user);
        }
        Console.Write("Number of bullets and guns [guns:bullets]: ");
        uint guns, bullets;

        try
        {
            var GunsAndBullets = readUints();
            guns    = GunsAndBullets.First();
            bullets = GunsAndBullets.Last();
        }
        catch
        {
            Console.WriteLine("Error: It was necessary to enter guns:bullets, like 1:5");
            return(user);
        }
        user.Property[span] = (guns, bullets);
        return(user);
    }
Esempio n. 7
0
        private TelegramUser CreateNewTelegramUser()
        {
            var user = new TelegramUser();

            _telegramUserRepository.Add(user);
            return(user);
        }
 public UserModel GetUser(long tuserId, string fromUsername, string fromFirstName, string fromLastName)
 {
     using (var dataModel = new Mibarim_plusEntities())
     {
         var res  = new UserModel();
         var user = dataModel.TelegramUsers.FirstOrDefault(x => x.TelegramUserId == tuserId);
         if (user == null)
         {
             var tuser = new TelegramUser();
             tuser.TmsgUserName   = fromUsername;
             tuser.TmsgName       = fromFirstName;
             tuser.TelegramUserId = tuserId;
             tuser.TmsgFamily     = fromLastName;
             tuser.TcreateTime    = DateTime.Now;
             dataModel.TelegramUsers.Add(tuser);
             dataModel.SaveChanges();
             user = tuser;
         }
         res.TuserId        = user.TuserId;
         res.UserName       = user.TmsgUserName;
         res.Name           = user.TmsgName;
         res.TelegramUserId = tuserId;
         res.Family         = user.TmsgFamily;
         res.CreateTime     = user.TcreateTime;
         res.UserId         = user.UserId == null ? 0 : (long)user.UserId;
         return(res);
     }
 }
Esempio n. 9
0
 private string RecivePassword(Update update)
 {
     try
     {
         using (botEntities3 bd = new botEntities3())
         {
             TelegramUser tg = bd.TelegramUser.Where(x => x.Username == update.callback_query.from.id.ToString()).FirstOrDefault();
             if (tg == null)
             {
                 return("Вы еще не зареистрированы");
             }
             Users users = bd.Users.Where(x => x.Id == tg.UserId).FirstOrDefault();
             if (users != null)
             {
                 return("Ваш пароль " + users.Passwords + "     Ваш логин   " + " " + users.Email);
             }
             else
             {
                 return("Вы еще не зарегистрированы");
             }
         }
     }
     catch
     {
         return("Вы еще не зареистрированы");
     }
 }
Esempio n. 10
0
        /// <summary>
        ///		Запись в файл-конфигурацию нового пользователя
        /// </summary>
        /// <param name="user"></param>
        public void SetNewUser(TelegramUser user)
        {
            var xFile = new XmlDocument();

            xFile.Load("Config.config");
            var xElement = xFile.DocumentElement;
            var xRoot    = xElement?.SelectSingleNode("UsersAccessList");

            var userNode    = xFile.CreateElement("User");
            var userId      = xFile.CreateElement("TelegramId");
            var userAllowed = xFile.CreateElement("Allowed");

            var userIdValue      = xFile.CreateTextNode(user.TelegramId.ToString());
            var userAllowedValue = xFile.CreateTextNode(user.Allowed.ToString());

            userId.AppendChild(userIdValue);
            userAllowed.AppendChild(userAllowedValue);

            userNode.AppendChild(userId);
            userNode.AppendChild(userAllowed);

            xRoot?.AppendChild(userNode);

            xFile.Save("Config.config");
        }
Esempio n. 11
0
        protected override Task CustomOrderAsyncValidator(Order order, TelegramUser user)
        {
            if (order.State != AllowedState)
            {
                throw new InvalidOperationException("Order has insufficient state to perform this action.");
            }

            return(Task.CompletedTask);
        }
 private async Task UpdateTelegramUserAsync(TelegramUser user,
                                            TelegramUserDto dto)
 {
     user.Username      = dto.Username;
     user.FirstName     = dto.FirstName;
     user.PhotoUrl      = dto.PhotoUrl;
     user.LastUpdatedAt = DateTime.UtcNow;
     await hookrRepository.SaveChangesAsync();
 }
        protected override Task CustomOrderAsyncValidator(Order order, TelegramUser user)
        {
            if (order.State != OrderStates.Constructing)
            {
                throw new InvalidOperationException("Order is already confirmed.");
            }

            return(Task.CompletedTask);
        }
Esempio n. 14
0
 public TelegramMember()
 {
     //   PortAdmins=new HashSet<PortAdmin>();
     //   TelegramBotMessages=new List<TelegramBotMessage>();
     TelegramMemberGuid = Guid.NewGuid();
     //  TelegramMemberBotSettings=new List<TelegramMemberBotSetting>();
     TelegramUser = new TelegramUser();
     Gender       = true;
 }
        public void SetUp()
        {
            telegramUser = new TelegramUser(1337);

            botLogic                   = new BotLogic(new MockDataBase());
            telegramHandler            = new TelegramHandler(null);
            telegramHandler.OnMessage += botLogic.ExecuteUserRequest;
            botLogic.OnReply          += Nothing;
        }
 private static Session SessionFactory(TelegramUser user)
 => new Session
 {
     Key       = Guid.NewGuid(),
     Id        = user.Id,
     State     = user.State,
     Username  = user.Username,
     PhotoUrl  = user.PhotoUrl,
     FirstName = user.FirstName
 };
Esempio n. 17
0
        public static bool FasAnswer(string msgText, ApplicationContext db, TelegramUser @from, TelegramBotClient client,
                                     Update update)
        {
            var message     = update.Message;
            var textForSend = GetAnswer(db, msgText);

            Thread.Sleep(3000);
            client.SendTextMessageAsync(message.Chat.Id, textForSend);
            return(true);
        }
Esempio n. 18
0
        //First
        public ITeleCommands ByInline(TelegramUser user, MessageEventArgs e, ITeleCommands cmd)
        {
            var inline = _inline.GetInline(e.Message.Text);

            if (inline == null)
            {
                return(ByProject(user, e, cmd));
            }
            cmd = _commands.FirstOrDefault(m => m.Name.ToLower() == inline.CommandName);
            return(cmd ?? ByProject(user, e, cmd));
        }
Esempio n. 19
0
        public ITeleCommands ByProject(TelegramUser user, MessageEventArgs e, ITeleCommands cmd)
        {
            var project = _project.GetFirst(m => m.Name.ToLower() == e.Message.Text.ToLower());

            if (project != null)
            {
                cmd = _commands.FirstOrDefault(m => m.Name == "/project");
                cmd.SetData <Project>(project);
            }
            return(cmd ?? ByLastCommand(user, e, cmd));
        }
        public string RegisterTelegram(string telegramID)
        {
            var user = new TelegramUser {
                TelegramID = telegramID
            };
            var result = context.TelegramUsers.Add(user);

            context.SaveChanges();

            return("true");
        }
Esempio n. 21
0
        public void DeleteSubreddit(string subreddit, TelegramUser user)
        {
            var users = SettingsController.SettingsStore.TelegramUsers
                        .Where(u => u.Subreddits.Contains(subreddit)).ToList();

            if (users.Count == 1 && users.Contains(user))
            {
                WatchedSubreddits.Remove(subreddit);
                LastSubredditsNews.Remove(subreddit);
            }
        }
Esempio n. 22
0
        public void Parse(Message message, TelegramUser user)
        {
            User = user;

            var command = message.Text;

            if (CommandRegex.IsMatch(command))
            {
                Do(CommandArgs(command));
            }
        }
Esempio n. 23
0
        /// <summary>
        /// Получить модель пользователя.
        /// </summary>
        /// <param name="chatId">Идентификтаор чата с пользователем.</param>
        /// <param name="firstName">Имя пользователя</param>
        /// <param name="nickName">Ник пользователя.</param>
        public static TelegramUser GetUser(long chatId, string firstName, string nickName)
        {
            TelegramUser user;

            if (UsersMapper.TryGetValue(chatId, out user))
            {
                return(user);
            }
            user = new TelegramUser(chatId, firstName, nickName);
            UsersMapper.Add(chatId, user);
            return(user);
        }
Esempio n. 24
0
        public Response Execute(TelegramUser user, List <string> args, UpdateModel update)
        {
            var keyboard = new InlineKeyboardMarkup();

            keyboard.AddButton("Test", "/heas");

            return(new Response()
            {
                KeyboardMarkup = keyboard,
                Text = "Hello world"
            });
        }
Esempio n. 25
0
        public async Task ProcessNewChatMember(Update update)
        {
            var message   = update.Message;
            var freshness = DateTime.UtcNow - message.Date.ToUniversalTime();

            if (freshness > _settings.ProcessEventTimeout)
            {
                _logger.LogInformation($"Сообщение о {message.NewChatMembers.Length} получено {freshness} назад и проигнорировано");
                return;
            }

            foreach (var unauthorizedUser in message.NewChatMembers)
            {
                await _telegramBot.RestrictChatMemberAsync(
                    message.Chat.Id,
                    unauthorizedUser.Id,
                    new ChatPermissions
                {
                    CanAddWebPagePreviews = false,
                    CanChangeInfo         = false,
                    CanInviteUsers        = false,
                    CanPinMessages        = false,
                    CanSendMediaMessages  = false,
                    CanSendMessages       = false,
                    CanSendOtherMessages  = false,
                    CanSendPolls          = false
                },
                    DateTime.Now.AddDays(1));

                var answer         = new Random().Next(1, ButtonsCount + 1);
                var prettyUserName = GetPrettyName(unauthorizedUser);

                var sendTextMessage = await _telegramBot.SendTextMessageAsync(
                    message.Chat.Id,
                    $"Привет, {prettyUserName}, нажми кнопку {answer}, чтобы тебя не забанили!",
                    replyToMessageId : message.MessageId,
                    replyMarkup : new InlineKeyboardMarkup(GetKeyboardButtons()));

                var telegramUser = new TelegramUser(
                    message.Chat.Id,
                    message.From.Id,
                    sendTextMessage.MessageId,
                    message.MessageId,
                    GetPrettyName(message.From),
                    answer);

                _userService.Add(telegramUser);
                _logger.LogInformation(
                    $"Новый пользователь {unauthorizedUser.Id} с именем {prettyUserName} Обнаружен и испытан. " +
                    $"У него есть {_settings.ProcessEventTimeout.ToString()}, чтобы ответить.");
            }
        }
Esempio n. 26
0
        public void Remember([Description("День")] int Day,
                             [Description("Номер пары")] int Num,
                             [Description("Название пары")] string LessonName,
                             [Description("Кабинет")] int Cabinet)
        {
            var user = Db.Users.FirstOrDefault(x => x.Id == Update.Message.FromUser.UserId);

            if (user == null)
            {
                user = new TelegramUser()
                {
                    Id   = Update.Message.FromUser.UserId,
                    Name = Update.Message.FromUser.FirstName
                };
                Db.Users.Add(user);
            }

            var schedule = user.Schedule;

            if (schedule == null)
            {
                schedule      = new Schedule();
                user.Schedule = schedule;
                Db.Schedules.Add(schedule);
            }

            if (Day < 1 || Day > 7)
            {
                var msg = string.Format("В неделе 1 дней!!");
                API.SendMessage(Update.Message.Chat, msg);
            }

            var day    = schedule.Days[Day - 1];
            var lesson = new Lesson()
            {
                Name    = LessonName,
                Cabinet = Cabinet
            };

            if (day.Lessons.ContainsKey(Num))
            {
                day.Lessons[Num] = lesson;
            }
            else
            {
                day.Lessons.Add(Num, lesson);
            }

            Db.Save();

            API.SendMessage(Update.Message.Chat, "Запомнил");
        }
 public static AppUser ToEntity(this TelegramUser user, UserRole role)
 {
     return(new AppUser
     {
         FirstName = user.FirstName,
         LastName = user.LastName,
         IsBot = user.IsBot,
         LanguageCode = user.LanguageCode,
         TelegramId = user.Id,
         UserRole = role,
         UserName = user.Username
     });
 }
Esempio n. 28
0
 public static TelegramUser SetMoney(this TelegramUser user)
 {
     Console.Write("Money: ");
     if (UInt32.TryParse(Console.ReadLine(), out var m))
     {
         user.Money = m;
     }
     else
     {
         Console.WriteLine("Error: It was necessary to enter number of money.");
     }
     return(user);
 }
Esempio n. 29
0
 private void InitializeUser(TelegramUser user)
 {
     TelegramUser = new TelegramUserWrapper(user);
     TelegramUser.PropertyChanged += (s, e) =>
     {
         if (!HasChanges)
         {
             HasChanges = _telegramUserRepository.HasChanges();
         }
         //TODO: add raiseCanExecuteChanged() if has errors
     };
     ((DelegateCommand)SaveCommand).RaiseCanExecuteChanged();
 }
Esempio n. 30
0
 private TelegramUserModel ConvertEntityToTelegramUserModel(TelegramUser entity)
 {
     return(new TelegramUserModel
     {
         Id = entity.Id,
         FirstName = entity.FirstName,
         LastName = entity.LastName,
         LanguageCode = entity.LanguageCode,
         Username = entity.Username,
         ChatId = entity.ChatId,
         UserId = entity.UserId
     });
 }