public CShaperPackager() { header = new MessageHeader(); keyboard = new MessageKeyboard(); rocker = new MessageRocker(); gyro = new MessageGyro(); }
public override void Calculate(Request request, Response response) { response.ResponseText = $"команды"; var manager = new CommandsManager(); manager.Init(); var keyboard = new MessageKeyboard(); var keyboardButtons = new List <List <MessageKeyboardButton> >(); var commands = manager.CommandsList.Where(_ => _.ShowInKeyboard); foreach (var command in commands) { var buttons = new List <MessageKeyboardButton>(); buttons.Add(new MessageKeyboardButton() { Action = new MessageKeyboardButtonAction() { Label = command.ButtonLabel, Type = KeyboardButtonActionType.Text, Payload = new Payload() { Command = command.KeyWord }.Serialize(), }, Color = (command.AdminCommand) ? KeyboardButtonColor.Negative :KeyboardButtonColor.Default }); keyboardButtons.Add(buttons); } keyboard.Buttons = keyboardButtons; response.Keyboard = keyboard; }
// Клавиатуры выбора жанра в категории public static MessageKeyboard GetGenreSelectionKeyboard(Category category) { MessageKeyboard result = null; switch (category) { case Category.None: break; case Category.Movie: result = MovieGenres; break; case Category.Series: result = SeriesGenres; break; case Category.Book: result = BooksGenres; break; case Category.Game: result = GamesGenres; break; default: break; } return(result); }
/// <summary> /// Отправить администратору сообщение о поступлении нового заказа /// </summary> /// <param name="adminId">Id администратору, которому нужно отправить сообщение</param> /// <param name="customerId">Id пользователя, который сделал заказ</param> /// <param name="message">Сообщение</param> /// <param name="keyboard">Клавиатура бота</param> public void WriteToAdminWithDeliveryInfo(long adminId, long customerId, string message, MessageKeyboard keyboard = null) { if (keyboard == null) { keyboard = MessageKeyboardSchemes.SetEmptyKeyboard; } var messageSendParams = new MessagesSendParams { UserId = adminId, Message = message, RandomId = new Random().Next(999999), Keyboard = keyboard, Lat = AllUserSessions[customerId].OrderData.DeliveryAddress.Coordinates.Latitude, Longitude = AllUserSessions[customerId].OrderData.DeliveryAddress.Coordinates.Longitude }; vk.Messages.Send(messageSendParams); if (!AllUserSessions.ContainsKey(adminId)) { AllUserSessions.Add(adminId, new UserSession(adminId, this)); } AllUserSessions[adminId].PrevKeyboard = keyboard; AllUserSessions[adminId].LastBotMessage = messageSendParams; }
/// <summary> /// Создает пустую клавиатуру для поля /// </summary> public void CreateFieldKeyboard() { Keyboard = new MessageKeyboard { OneTime = false }; Buttons = new MessageKeyboardButton[3, 3]; for (int i = 0; i < 3; ++i) { for (int j = 0; j < 3; ++j) { MessageKeyboardButton button = new MessageKeyboardButton { Action = new MessageKeyboardButtonAction() }; button.Action.Label = "[ ]"; button.Action.Payload = "{\"button\":\"C" + i + "_" + j + "\"}"; button.Color = KeyboardButtonColor.Default; Buttons[i, j] = button; } } Keyboard.Buttons = new[] { new[] { Buttons[0, 0], Buttons[0, 1], Buttons[0, 2] }, new[] { Buttons[1, 0], Buttons[1, 1], Buttons[1, 2] }, new[] { Buttons[2, 0], Buttons[2, 1], Buttons[2, 2] } }; }
/// <summary> /// 输入手柄消息 /// </summary> /// <param name="msg">消息</param> private void OnGamepadMessage(GamepadEventArgs args) { switch (args.Msg.GetMessageType()) { case MessageType.Keyboard: MessageKeyboard kb = args.Msg as MessageKeyboard; //Debug.Log($"Keyboard Hid:{kb.Hid} KeyCode:{kb.KeyCode} State:{kb.State}"); singlePool.Cache(kb.KeyCode, kb.State); multiPool.Cache(kb.KeyCode, kb.State); break; case MessageType.Rocker: MessageRocker r = args.Msg as MessageRocker; if (Rockers.TryGetValue(r.Hid, out IRocker rocker)) { rocker.SetMessage(args.Msg); } //Debug.Log($"Rocker Hid:{r.Hid} KeyCode:{r.KeyCode} State:{r.State}"); singlePool.Cache(r.KeyCode, r.State); multiPool.Cache(r.KeyCode, r.State); break; case MessageType.Gyro: MessageGyro g = args.Msg as MessageGyro; if (Gyros.TryGetValue(g.Hid, out IGyro gyro)) { gyro.SetMessage(args.Msg); } break; } }
private MessageKeyboard ConvertToVkKeyboard(INucleusKeyboard keyboard) { var keyboardVkButtons = new List <List <MessageKeyboardButton> >(); foreach (var buttonsLine in keyboard.Buttons) { var line = new List <MessageKeyboardButton>(); foreach (var button in buttonsLine) { var vkButton = new MessageKeyboardButton(); vkButton.Action = new MessageKeyboardButtonAction() { AppId = button.AppID == 0? null: button?.AppID, Hash = button.Hash, Label = button.Caption, OwnerId = button.OwnerID == 0? null: button?.OwnerID, Payload = new PayloadBuilder().BuildToStringFromModel(button.Payload), Type = button.Type, }; vkButton.Color = button.Color; line.Add(vkButton); } keyboardVkButtons.Add(line); } var vkKeyboard = new MessageKeyboard(); vkKeyboard.Buttons = keyboardVkButtons; vkKeyboard.OneTime = keyboard.OneTimeKeyboard; return(vkKeyboard); }
public static MessageKeyboard SetInlineVoteKeyboard(this MessageKeyboard keyboardButtons) { var voteKeyboard = new InlineVoteKeyboard(); keyboardButtons = voteKeyboard.GetInlineVoteKeyboard(); return(keyboardButtons); }
private void GroupJoinHandler() { //Default menu KeyboardBuilder key = new KeyboardBuilder(); key.AddButton("Привязать аккаунт", null, agree); key.AddButton("Удалить привязку", null, decine); MessageKeyboard keyboard = key.Build(); try { while (true) // Бесконечный цикл, получение обновлений { api.Authorize(new ApiAuthParams() { AccessToken = userToken, }); longPoolServerResponse = new LongPollServerResponse(); longPoolServerResponse = api.Groups.GetLongPollServer(groupID); //id группы BotsLongPollHistoryResponse poll = null; try { poll = api.Groups.GetBotsLongPollHistory( new BotsLongPollHistoryParams() { Server = longPoolServerResponse.Server, Ts = longPoolServerResponse.Ts, Key = longPoolServerResponse.Key, Wait = 25 }); pts = longPoolServerResponse.Pts; if (poll?.Updates == null) { continue; // Проверка на новые события } } catch (Exception ex) { ErrorLogging(ex); ReadError(); } foreach (var a in poll.Updates) { if (a.Type == GroupUpdateType.GroupJoin) //Вступление юзера в группу { long?userID = a.GroupJoin.UserId; SendMessage("🎉 Добро пожаловать в наш игровой паблик!\nМы разработали собственную программу для синхронизации игрового чата с ВК!\nПосле привязки аккаунта, ты сможешь читать и отправлять сообщения в игровой чат! Круто же!!!", userID, keyboard, null); } } } } catch (Exception ex) { ErrorLogging(ex); ReadError(); } }
private void MessageAllowHandler() { //Default menu KeyboardBuilder key = new KeyboardBuilder(); key.AddButton("Привязать аккаунт", null, agree); key.AddButton("Удалить привязку", null, decine); MessageKeyboard keyboard = key.Build(); try { while (true) // Бесконечный цикл, получение обновлений { api.Authorize(new ApiAuthParams() { AccessToken = userToken, }); longPoolServerResponse = new LongPollServerResponse(); longPoolServerResponse = api.Groups.GetLongPollServer(groupID); BotsLongPollHistoryResponse poll = null; try { poll = api.Groups.GetBotsLongPollHistory( new BotsLongPollHistoryParams() { Server = longPoolServerResponse.Server, Ts = longPoolServerResponse.Ts, Key = longPoolServerResponse.Key, Wait = 25 }); pts = longPoolServerResponse.Pts; if (poll?.Updates == null) { continue; // Проверка на новые события } } catch (Exception ex) { ErrorLogging(ex); ReadError(); } foreach (var a in poll.Updates) { if (a.Type == GroupUpdateType.MessageAllow) //Подписка на сообщения сообщества { long?userID = a.MessageAllow.UserId; SendMessage("😉 Спасибо за подписку!", userID, keyboard, null); } } } } catch (Exception ex) { ErrorLogging(ex); ReadError(); } }
/// <summary> /// Initializes a new instance of the <see cref="RemoteWindow" /> class. /// </summary> /// <param name="processPlus">The reference of the <see cref="IProcess" /> object.</param> /// <param name="handle">The handle of a window.</param> public RemoteWindow(IProcess processPlus, IntPtr handle) { // Save the parameters ProcessPlus = processPlus; Handle = handle; // Create the tools Keyboard = new MessageKeyboard(this); Mouse = new SendInputMouse(this); }
/// <summary> /// Initializes a new instance of the <see cref="RemoteWindow"/> class. /// </summary> /// <param name="memorySharp">The reference of the <see cref="Library.MemorySharp.MemorySharp"/> object.</param> /// <param name="handle">The handle of a window.</param> internal RemoteWindow(MemorySharp memorySharp, IntPtr handle) { // Save the parameters MemorySharp = memorySharp; Handle = handle; // Create the tools Keyboard = new MessageKeyboard(this); Mouse = new SendInputMouse(this); }
public void SendKeyboard(long id, string message, MessageKeyboard keyboard) { VkApi.Messages.Send(new MessagesSendParams { RandomId = (int)DateTime.Now.Ticks, UserId = id, Message = message, Keyboard = keyboard }); }
public static async Task SendMsg(long?peer, string message, MessageKeyboard keyboard) { await Api.Messages.SendAsync(new MessagesSendParams { PeerId = peer, RandomId = DateTime.Now.Millisecond, Message = message, Keyboard = keyboard }); }
private static void MessageMonitoring_OnCommandNotFound(object sender, CommandEventArgs args) { var Sender = (MessageMonitoring)sender; KeyboardBuilder key = new KeyboardBuilder(); key.AddButton("/info", "", KeyboardButtonColor.Primary); MessageKeyboard keyboard = key.Build(); Sender.Helper.SendMessage("Такой команды не существует напишите /info для помощи", args.Message.FromId.Value, keyboard); }
private async Task SendMessage(long?peerId, string messageText, MessageKeyboard keyboard = null) { var messageParams = new MessagesSendParams { RandomId = DateTime.Now.Millisecond, PeerId = peerId, Message = messageText, Keyboard = keyboard }; await vkApi.Messages.SendAsync(messageParams); }
public void Send(string text, MessageKeyboard keyboard, long?peerId, long?chatId) { _vkApi.Messages.Send(new MessagesSendParams { RandomId = new DateTime().Millisecond, PeerId = peerId, Message = text, Keyboard = keyboard, ChatId = chatId }); Sended(this, null); }
private void SendMessage(long?peerId, string messageText, MessageKeyboard messageKeyboard = null) { var messagesSendParams = new MessagesSendParams { RandomId = new DateTime().Millisecond, PeerId = peerId, Message = messageText, Keyboard = messageKeyboard }; vkApi.Messages.Send(messagesSendParams); }
private void EnqueueMessage( bool sendAsNewMessage, bool editingEnabled, long?userId = null, List <long> userIds = null, string message = null, List <MediaAttachment> attachments = null, int?keyboardId = null, MessageKeyboard customKeyboard = null) { VkParameters vkParameters = new VkParameters { { "message", message is null ? Constants.defaultMessage : message },
//键盘消息 public static IMessage Keyboard(byte hid, string keyName, KeyboardState state) { int keycode = KeyMap[hid][keyName]; MessageKeyboard msg = new MessageKeyboard(); msg.Clear(); msg.TimeStamp = SystemTime.LowClientNow(); msg.Hid = hid; msg.KeyCode = (KeyCode2)keycode; msg.State = state; return(msg); }
public async Task <bool> SendMessageAsync(string message, long?fromId, MessageKeyboard keyboard) { var response = await _api.Messages.SendAsync(new MessagesSendParams { UserId = fromId, Message = message, Keyboard = keyboard, RandomId = 0, DontParseLinks = true }); return(response == 20); }
public TicTacToeKeyboards() { var builder = new KeyboardBuilder(); builder.SetOneTime(); Empty = builder.Build(); builder = new KeyboardBuilder(); builder.AddButton("Новая комната", "NewRoom", KeyboardButtonColor.Positive); builder.AddButton("Подключиться", "ConnectToRoom", KeyboardButtonColor.Positive); builder.SetOneTime(); Main = builder.Build(); }
public void SendNotification(BotUser user, string message, MessageKeyboard keyboard) { if (user.Domain != "vk") { return; } api.Messages.Send(new MessagesSendParams { UserId = long.Parse(user.UserId), Message = message, RandomId = rnd.Next(), Keyboard = keyboard }); }
private void SendMessage(long?userId, string msgText, MessageKeyboard keyboard = null) { if (keyboard == null) { keyboard = new KeyboardBuilder().Clear().Build(); } _vkApi.Messages.Send(new MessagesSendParams { RandomId = new DateTime().Millisecond, PeerId = userId, Message = msgText, Keyboard = keyboard }); }
/// <summary> /// Отправить сообщение пользователю /// </summary> /// <param name="userId">Id получателя</param> /// <param name="message">Текст сообщения. Сообщение не может быть пустым!</param> /// <param name="keyboard">Клавиатура бота. По-умолчанию клавиатура отключена</param> /// <param name="attachments">Вложения для сообщения. Этот метод принимает только вложения из класса <see cref="MediaAttachment"/></param> private Task SendMessageToUser(long userId, string message, MessageKeyboard keyboard = null, IEnumerable <MediaAttachment> attachments = null) { var messageSendParams = new MessagesSendParams { UserId = userId, Message = message, Keyboard = keyboard, Attachments = attachments, RandomId = DateTime.Now.Millisecond }; VK.Messages.Send(messageSendParams); return(Task.CompletedTask); }
public static string FullInfo(User user, int TVID, out MessageKeyboard keyboard, out List <MediaAttachment> attachments) { Video trailer = null; var t = new Task(() => GetTrailer(TVID, ref trailer)); t.Start(); var client = new RestClient("https://kinopoiskapiunofficial.tech/api/v2.1/films/" + TVID.ToString()); var request = new RestRequest(Method.GET); request.AddHeader("X-API-KEY", Bot._kp_key); request.AddQueryParameter("append_to_response", "RATING"); IRestResponse response = client.Execute(request); TVObject film; try { film = JsonConvert.DeserializeObject <TVObject>(response.Content); } catch (Exception) { keyboard = null; attachments = null; return("При загрузке информации о сериале что-то произошло... 😔 Попробуй повторно выполнить запрос"); } if (film.data.nameEn != null) { user.AddTVSoundtrackAsync(film.data.nameEn, "series"); } else { user.AddTVSoundtrackAsync(film.data.nameRu, "сериал"); } var poster = Attachments.PosterObject(user, film.data.posterUrl, film.data.filmId.ToString()); t.Wait(); attachments = new List <MediaAttachment> { poster }; if (trailer != null) { attachments.Add(trailer); } if (film.data.nameEn != null && film.data.nameEn != string.Empty) { user.AddTVSoundtrackAsync(film.data.nameEn, "ost"); } else { user.AddTVSoundtrackAsync(film.data.nameRu, "саундтрек"); } keyboard = Keyboards.TVSearch(film.data.nameRu, film.data.nameEn, film.data.filmId.ToString(), string.Join("*", film.data.genres.Select(g => g.genre)), film.data.premiereRu); return(FullInfo(film)); }
public MessageKeyboard ToMessageKeyboard() { if (buttons == null) { return(null); } MessageKeyboard kb = new MessageKeyboard(); kb.OneTime = one_time; MessageKeyboardButton[][] buts = new MessageKeyboardButton[buttons.Length][]; for (int i = 0; i < buttons.Length; i++) { buts[i] = new MessageKeyboardButton[buttons[i].Length]; for (int j = 0; j < buttons[i].Length; j++) { buts[i][j] = new MessageKeyboardButton(); buts[i][j].Action = new MessageKeyboardButtonAction(); buts[i][j].Action.Label = buttons[i][j].action.label; buts[i][j].Action.Payload = buttons[i][j].action.payload; buts[i][j].Action.Type = KeyboardButtonActionType.Text; switch (buttons[i][j].color) { case "primary": buts[i][j].Color = KeyboardButtonColor.Primary; break; case "negative": buts[i][j].Color = KeyboardButtonColor.Negative; break; case "positive": buts[i][j].Color = KeyboardButtonColor.Positive; break; default: buts[i][j].Color = KeyboardButtonColor.Default; break; } } } kb.Buttons = buts; return(kb); }
public override void Execute(Message message, VkApi client) { var buttons = new List <List <MessageKeyboardButton> > { }; // пустой массив кнопок. Без массива не отправляется клавиатура!! var keyboard = new MessageKeyboard { Inline = false, OneTime = false, Buttons = buttons }; @params.Keyboard = keyboard; @params.Message = "Это сообщение должно убрать кнопки"; @params.PeerId = message.PeerId.Value; @params.RandomId = new Random().Next(); Send(@params, client); }
public static void SendMessage(string message, long?userID) { Random rnd = new Random(); KeyboardBuilder key = new KeyboardBuilder(); key.AddButton("Температура", "456"); key.AddButton("Свет включить", "456"); key.AddButton("Свет выключить", "456"); MessageKeyboard mess = key.Build(); api.Messages.Send(new MessagesSendParams { Keyboard = mess, RandomId = rnd.Next(), UserId = userID, Message = message }); }
public bool SendMessage(string Message, long userId, MessageKeyboard keyboard) { try { Api.Messages.Send(new MessagesSendParams() { UserId = userId, Message = Message, RandomId = Random.Next(), Keyboard = keyboard }); return(true); } catch (Exception ex) { Reporter.ReportError(ex); return(false); } }