Beispiel #1
0
 public CShaperPackager()
 {
     header   = new MessageHeader();
     keyboard = new MessageKeyboard();
     rocker   = new MessageRocker();
     gyro     = new MessageGyro();
 }
Beispiel #2
0
        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);
        }
Beispiel #4
0
        /// <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;
        }
Beispiel #5
0
        /// <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] }
            };
        }
Beispiel #6
0
        /// <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;
            }
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        public static MessageKeyboard SetInlineVoteKeyboard(this MessageKeyboard keyboardButtons)
        {
            var voteKeyboard = new InlineVoteKeyboard();

            keyboardButtons = voteKeyboard.GetInlineVoteKeyboard();
            return(keyboardButtons);
        }
Beispiel #9
0
        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("&#127881; Добро пожаловать в наш игровой паблик!\nМы разработали собственную программу для синхронизации игрового чата с ВК!\nПосле привязки аккаунта, ты сможешь читать и отправлять сообщения в игровой чат! Круто же!!!", userID, keyboard, null);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorLogging(ex);
                ReadError();
            }
        }
Beispiel #10
0
        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("&#128521; Спасибо за подписку!", userID, keyboard, null);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorLogging(ex);
                ReadError();
            }
        }
Beispiel #11
0
 /// <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);
 }
Beispiel #12
0
 /// <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
     });
 }
Beispiel #14
0
 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);
 }
Beispiel #17
0
 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);
        }
Beispiel #19
0
 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 },
Beispiel #20
0
        //键盘消息
        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
            });
        }
Beispiel #25
0
        /// <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));
            }
Beispiel #27
0
        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);
        }
Beispiel #29
0
        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);
     }
 }