public Response OnMessage(string _message) { WorkCompleteEventHandler?.Invoke(m_userId); return(new Response("/register - чтобы зарегистрироваться \n" + "/manage - для управления аккаунтом \n" + "исходники бота можно найти тут https://github.com/mrGoner/VkToTelegramGrabber")); }
public Response OnMessage(string _message) { try { var user = m_userManager.GetUser(m_userId.ToString()); if (user == null) { return(new Response("Ты еще не зарегистрирован!")); } if (_message == Command) { return(new Response("Выбирай команду:", m_generalMarkup)); } if (_message == "Добавить группу") { var builder = new StringBuilder(); builder.AppendLine("Пришли мне ID группы для добавления из списка ниже"); m_rawGroups = m_vkApi.GetGroups(user.Token, 100); foreach (var userGroup in user.Groups) { var existed = m_rawGroups.FirstOrDefault(_rawGroup => _rawGroup.Id == userGroup.GroupId); if (existed != null) { m_rawGroups.Remove(existed); } } for (int i = 0; i < m_rawGroups.Count; i++) { var group = m_rawGroups[i]; builder.AppendLine($"ID: {i}. Имя: {group.Name}"); } m_waitingGroupNum = true; m_waitingGroupPeriod = false; m_waitingGroupRemove = false; return(new Response(builder.ToString())); } if (_message == "Удалить группу") { var builder = new StringBuilder(); builder.AppendLine("Пришли мне ID группы для удаления из списка ниже"); if (user.Groups.Any()) { for (int i = 0; i < user.Groups.Length; i++) { var group = user.Groups[i]; builder.AppendLine($"ID: {i}. Имя: {group.Name}"); } m_waitingGroupNum = false; m_waitingGroupPeriod = false; m_waitingGroupRemove = true; return(new Response(builder.ToString())); } return(new Response("Список групп пуст!", m_generalMarkup)); } if (m_waitingGroupRemove) { m_waitingGroupRemove = false; if (int.TryParse(_message, out var removeIndex) && removeIndex >= 0 && user.Groups.Length - 1 >= removeIndex) { m_userManager.RemoveGroupFromUser(user.Key, user.Groups[removeIndex]); return(new Response("Удалено!", m_generalMarkup)); } return(new Response("Некорректный ID", m_generalMarkup)); } if (m_waitingGroupNum) { m_waitingGroupNum = false; if (int.TryParse(_message, out var groupNum) && groupNum >= 0 && m_rawGroups.Count - 1 >= groupNum) { m_selectedGroup = m_rawGroups[groupNum]; m_waitingGroupPeriod = true; return(new Response("Почти все! Выбери период обновления", KeyBoardBuilder.BuildMarkupKeyboard(new string[] { "00:15:00", "00:30:00", "01:00:00", "01:30:00", "02:00:00" }))); } return(new Response("Некорректный ID", m_generalMarkup)); } if (m_waitingGroupPeriod) { m_waitingGroupPeriod = false; if (TimeSpan.TryParse(_message, out var span) && span >= TimeSpan.FromMinutes(15)) { m_userManager.AddGroupToUser(user.Key, new VkGrabber.Group(m_selectedGroup.Id, span, m_selectedGroup.Name)); return(new Response("Добавлено!", m_generalMarkup)); } return(new Response("Некорректный период обновления!", m_generalMarkup)); } return(null); } catch { WorkCompleteEventHandler?.Invoke(m_userId); return(new Response("Что-то пошло не так")); } }
public Response OnMessage(string _message) { if (_message == Command) { if (m_userManager.GetUser(m_userId.ToString()) == null) { m_waitingForId = true; return(new Response("Для регистрации необходимо выполнить следующие шаги: \n" + "1) Перейти по ссылке https://vk.com/apps?act=manage и создать новое standalone приложение \n" + "2) Прислать id приложения (находится в настройках созданного приложения) \n" + "3) В ответ я сгенерирую ссылку, перейдя по которой необходимо будет прислать мне access token \n \n" + "Кажется сложным? Исходники бота можно найти по ссылке https://github.com/mrGoner/VkToTelegramGrabber и развернуть своего собственного! \n" + "Если же готов продолжить - присылай id созданного приложения")); } WorkCompleteEventHandler?.Invoke(m_userId); return(new Response("Ты уже зарегистрирован, если хочешь ввести другой токен - необходимо удалить текущую учетную запись")); } if (m_waitingForId) { m_waitingForId = false; if (int.TryParse(_message, out var id)) { m_waitingForToken = true; var url = m_vkApi.GetAuthUrl(id, VkApi.Requests.Permissions.Offline | VkApi.Requests.Permissions.Wall | VkApi.Requests.Permissions.Groups | VkApi.Requests.Permissions.Friends | VkApi.Requests.Permissions.Video); return(new Response($"Перейди по данной ссылке {url}, после чего пришли мне access_token из строки браузера")); } return(new Response("Id не распознан")); } if (m_waitingForToken) { m_waitingForToken = false; if (!string.IsNullOrWhiteSpace(_message) && _message.Length > 60) { m_waitingForToken = false; m_userManager.AddUser(m_userId.ToString(), _message); WorkCompleteEventHandler?.Invoke(m_userId); return(new Response("Успешно зарегистрировано!")); } return(new Response("Токен не распознан как действительный")); } WorkCompleteEventHandler?.Invoke(m_userId); return(null); }