public override TelegramUserMessage GetResponseTo(Message inputMessage, Core.Models.Database.User user) { try { return(new TelegramUserMessage() { ChatId = inputMessage.Chat.Id, Text = @$ "Данный бот поможет вам следить за группами вк без лишних телодвижений.🦾" + "\r\n\r\nНапример, вы занимаетесь ремонтом в Москве и ищете клиентов. Пусть бот это делает за вас! Подпишитесь на группы \"Подслушано\" вашего района, " + "укажите слова \"_ремонт, сантехника, специалист, электрика_\".Как только в группах появятся новые посты с ключевыми словами," + "вы уже будете об этом знать и клиент будет ваш!" + "\r\n\r\nДругой сценарий - вы хотите подешевле снять хорошую однушку на севере Москвы.🏡 Но как назло все самые вкусные объявления уже сданы. Не время опускать руки! Скажите боту мониторить слова \"_однушка, однокомнатная_\" в группах недвижимости САО. И всё! Следующее объявление о сдаче нужной квартиры точно не пройдёт мимо." + "\r\n\r\nВы всегда будете в курсе нужных вам групп, а бот сэкономит вам кучу времени. Это ли не счастье? ", // File = tgFile, ReplyMarkup = MessageMarkupUtilities.GetDefaultMarkup() }); } catch (Exception ex) { return(new TelegramUserMessage() { ChatId = inputMessage.Chat.Id, Text = $"Произошла ошибка: {ex.Message}, Ошибка: {ex}", ReplyMarkup = MessageMarkupUtilities.GetDefaultMarkup() }); } }
public static OutputUserMessage GetDefaultResponse(long chatId, string additionalText = "") { return(new OutputUserMessage() { ChatId = chatId, Text = $"{additionalText}\nВыбери что тебе нужно сделать:", ReplyMarkup = MessageMarkupUtilities.GetDefaultMarkup() }); }
public override TelegramUserMessage GetResponseTo(Message inputMessage, User user) { if (string.IsNullOrEmpty(inputMessage.Text)) { return(FailWithText(inputMessage.Chat.Id, user, "Пустой текст не является ключевым словом")); } if (inputMessage.Text.Length > _settings.Vkontakte.KeywordCharacterLimit) { return(FailWithText(inputMessage.Chat.Id, user, $"Введён слишком длинный текст. Текущий лимит {_settings.Vkontakte.KeywordCharacterLimit} символов.")); } if (user.CurrentTargetId == null) { user.CurrentTargetId = null; user.CurrentTargetName = null; return(FailWithText(inputMessage.Chat.Id, user, @"Что-то пошло не так\. Попробуйте ещё раз или позже")); } var userPrefs = _db.Preferences.Where(pref => pref.User.Id == user.Id && pref.TargetId == user.CurrentTargetId).FirstOrDefault(); if (userPrefs == null) { userPrefs = new UserPreference() { User = user, TargetId = user.CurrentTargetId.Value, TargetName = user.CurrentTargetName, Keyword = inputMessage.Text, LastNotifiedPostTime = DateTime.MinValue, TargetType = user.CurrentTargetType.Value }; _db.Preferences.Add(userPrefs); } else { userPrefs.Keyword = inputMessage.Text; } user.CurrentTargetId = null; user.CurrentTargetName = null; user.CurrentTargetType = null; user.State = ChatState.Standrard; _db.SaveChanges(); return(new TelegramUserMessage() { ChatId = inputMessage.Chat.Id, Text = @$ "Отлично. Слова записаны. Когда в группе *{userPrefs.TargetName}* (id:_{userPrefs.TargetId}_) появятся новые посты со следюующими словами: _{inputMessage.Text}_ Вы получите уведомление сюда", ReplyMarkup = MessageMarkupUtilities.GetDefaultMarkup() }); }
public override TelegramUserMessage GetResponseTo(Message inputMessage, Wbcl.Core.Models.Database.User user) { var sb = new StringBuilder(); foreach (var dbUser in _db.Users) { sb.AppendLine(FormatExtensions.ToShortString(dbUser)); } return(new TelegramUserMessage() { ChatId = inputMessage.Chat.Id, Text = $"Список пользователей: {Environment.NewLine} {sb}", ReplyMarkup = MessageMarkupUtilities.GetDefaultMarkup() }); }
public override OutputUserMessage GetResponseTo(Message inputMessage, User user) { if (string.IsNullOrEmpty(inputMessage.Text)) { return(GetDefaultResponse(inputMessage.Chat.Id, "Пустой текст не является ключевым словом")); } if (user.CurrentGroupId == null) { user.CurrentGroupId = null; user.CurrentGroupName = null; user.State = ChatState.Standrard; _db.SaveChanges(); return(GetDefaultResponse(inputMessage.Chat.Id, @"Что-то пошло не так\. Попробуйте ещё раз")); } var userPrefs = _db.Preferences.Where(pref => pref.User.Id == user.Id && pref.GroupId == user.CurrentGroupId).FirstOrDefault(); if (userPrefs == null) { userPrefs = new UserPreference() { User = user, GroupId = user.CurrentGroupId.Value, GroupName = user.CurrentGroupName, Keyword = inputMessage.Text }; _db.Preferences.Add(userPrefs); } else { userPrefs.Keyword = inputMessage.Text; } user.CurrentGroupId = null; user.CurrentGroupName = null; user.State = ChatState.Standrard; _db.SaveChanges(); return(new OutputUserMessage() { ChatId = inputMessage.Chat.Id, Text = @$ "Отлично. Слова записаны. Когда в группе *{userPrefs.GroupName}* (id:_{userPrefs.GroupId}_) появятся новые посты со следюующими словами: _{inputMessage.Text}_ Вы получите уведомление сюда", ReplyMarkup = MessageMarkupUtilities.GetDefaultMarkup() }); }
public override TelegramUserMessage GetResponseTo(Message inputMessage, Wbcl.Core.Models.Database.User user) { var result = string.Empty; var commandLine = inputMessage.Text.Replace(UsedUserInput, string.Empty); var commandParams = commandLine.Split(" ", StringSplitOptions.RemoveEmptyEntries); if (commandParams.Length != 4) { return(GetDefaultResponse(inputMessage.Chat.Id, "Incorect input provided. Expected 3 parameters after command")); } if (!int.TryParse(commandParams[1], out int userID)) { return(GetDefaultResponse(inputMessage.Chat.Id, $"Incorect input provided. Cannot convert 1st parameter {commandParams[1]}")); } if (!int.TryParse(commandParams[2], out int userStatus)) { return(GetDefaultResponse(inputMessage.Chat.Id, $"Incorect input provided. Cannot convert 2nd parameter {commandParams[2]}")); } if (!DateTime.TryParse(commandParams[3], out DateTime endDate)) { return(GetDefaultResponse(inputMessage.Chat.Id, $"Incorect input provided. Cannot convert 3rd parameter {commandParams[3]}")); } var neededUser = _db.Users.FirstOrDefault(usr => usr.Id == userID); if (neededUser == null) { return(GetDefaultResponse(inputMessage.Chat.Id, $"Canot find a user with id {userID}")); } neededUser.SubscriptionStatus = (UserType)userStatus; neededUser.EndOfAdvancedSubscription = endDate; _db.SaveChanges(); return(new TelegramUserMessage() { ChatId = inputMessage.Chat.Id, Text = $"New user info: {neededUser.ToShortString()}", ReplyMarkup = MessageMarkupUtilities.GetDefaultMarkup() }); }
public override TelegramUserMessage GetResponseTo(Message inputMessage, Wbcl.Core.Models.Database.User user) { try { //var dbFilePath = IUsersContext.GetDbFilePath(); //string dbCopyFileName = "users-copy.db"; //string currentPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); //var tempFile = Path.Combine(currentPath, dbCopyFileName); //if (System.IO.File.Exists(dbCopyFileName)) //{ // System.IO.File.Delete(dbCopyFileName); //} //System.IO.File.Copy(dbFilePath, dbCopyFileName); //var file = System.IO.File.OpenRead(dbCopyFileName); //var tgFile = new InputOnlineFile(file, "users.db"); return(new TelegramUserMessage() { ChatId = inputMessage.Chat.Id, Text = $"Функци не реализована!", // File = tgFile, ReplyMarkup = MessageMarkupUtilities.GetDefaultMarkup() }); } catch (Exception ex) { return(new TelegramUserMessage() { ChatId = inputMessage.Chat.Id, Text = $"Произошла ошибка: {ex.Message}, Ошибка: {ex}", ReplyMarkup = MessageMarkupUtilities.GetDefaultMarkup() }); } }
public override TelegramUserMessage GetResponseTo(Message inputMessage, User user) { if (inputMessage.Text == TgBotText.Cancel) { return(FailWithText(inputMessage.Chat.Id, user, "Ну передумал и передумал.")); } if (!inputMessage.Text.Contains("(id: ")) { return(FailWithText(inputMessage.Chat.Id, user, "Не удалось получить id группы")); } var idStr = inputMessage.Text.Split("(id: ", StringSplitOptions.RemoveEmptyEntries).Last(); idStr = idStr.Split(")", StringSplitOptions.RemoveEmptyEntries).First(); idStr = new string(idStr.Where(char.IsDigit).ToArray()); if (!long.TryParse(idStr, out long groupId)) { return(FailWithText(inputMessage.Chat.Id, user, "Не удалось получить id группы")); } var groupsToRemove = _db.Preferences.Where(pref => pref.User.Id == user.Id && pref.TargetId == groupId); if (groupsToRemove == null || !groupsToRemove.Any()) { return(FailWithText(inputMessage.Chat.Id, user, $"Группа с указанным id:{groupId} не найдена в подписках")); } var groupName = groupsToRemove.First().TargetName; _db.Preferences.RemoveRange(groupsToRemove); user.State = ChatState.Standrard; _db.SaveChanges(); return(new TelegramUserMessage() { ChatId = inputMessage.Chat.Id, Text = $"Подписки на ключевые слова группы *{groupName}* успешно удалены", ReplyMarkup = MessageMarkupUtilities.GetDefaultMarkup() }); }