コード例 #1
0
ファイル: Program.cs プロジェクト: SWATOPLUS/VkBotDotaMM
        static async Task Main(string[] args)
        {
            Settings settings = null;

            if ((settings = Settings.Load()) == null)
            {
                Console.WriteLine("Файл с настройками не найден рядом с бинарником. Будет создан файл настроек по-умолчанию.");
                Console.WriteLine("Занесите в него корректные параметры для вашего бота и запустите пример снова");
                Settings.CreateDefaults();
                Console.ReadLine();
                return;
            }

            Console.WriteLine("Настройки загружены.");
            var bot = new VkBot(settings.AccessToken, settings.GroupUrl);

            bot.OnMessageReceived     += MessageReceivedTest;
            bot.OnGroupUpdateReceived += UpdateReceivedTest;
            bot.RegisterPhraseTemplate("привет", "Здарова!!!");

            foreach (var verb in DisconnectVerbs)
            {
                bot.RegisterPhraseTemplate(verb, msg => ProcessDisconnect(msg, bot.Api, verb));
            }

            bot.RegisterPhraseTemplate("!отмена", ProcessCancel);
            bot.RegisterPhraseTemplate("!cancel", ProcessCancel);

            await bot.StartAsync();

            Console.ReadLine();
        }
コード例 #2
0
        static void Main(string[] args)
        {
            ILoggerFactory  loggerFactory = new LoggerFactory().AddConsole();
            ILogger <VkBot> logger        = loggerFactory.CreateLogger <VkBot>();

            ExampleSettings settings = ExampleSettings.TryToLoad(logger);

            VkBot bot = new VkBot(settings.AccessToken, settings.GroupUrl, logger);

            /* subscribe for anon lambda in order to receive any update */
            bot.OnGroupUpdateReceived += (sender, eventArgs) =>
            {
                logger.LogInformation(eventArgs.Update.Type.ToString() + " event type triggered");
            };


            /* subscribe for static method in order to receive new comment update type */
            bot.OnGroupUpdateReceived += NewCommentHandler;


            bot.OnBotStarted += (sender, eventArgs) =>
            {
                bot.Api.Wall.CreateComment(new WallCreateCommentParams()
                {
                    OwnerId = -bot.GroupId, PostId = 1, Message = "test"
                });
            };

            bot.Start();
            //bot.Dispose();
            Console.ReadLine();
        }
コード例 #3
0
        static void Main(string[] args)
        {
            ILoggerFactory  loggerFactory = new LoggerFactory().AddConsole();
            ILogger <VkBot> logger        = loggerFactory.CreateLogger <VkBot>();

            ExampleSettings settings = ExampleSettings.TryToLoad(logger);

            VkBot bot = new VkBot(settings.AccessToken, settings.GroupUrl, logger);


            //регистрируем текстовый ответ на "+матеша"
            bot.TemplateManager.Register(new RegexToActionTemplate(MateshaSubscribeCommand,
                                                                   "ну окей, вот тебе матеша"));

            //регистрируем обработчик-функцию на "+матеша"
            bot.TemplateManager.Register(new RegexToActionTemplate(MateshaSubscribeCommand, MateshaHandler));

            //важно: отсутствие PeerId в конструкторе RegexToActionTemplate означает

            // способ удаления клавиатуры будет добавлен в следующем обновлении проекта VkNet
            //https://github.com/vknet/vk/pull/780

            bot.TemplateManager.Register(new RegexToActionTemplate(MateshaUnsubscribeCommand,
                                                                   "ну окей, теперь не будет у вас этой кнопки",
                                                                   new KeyboardBuilder().SetOneTime().AddButton("пока", "").Build()));

            bot.Start();
            bot.Dispose();
            Console.ReadLine();
        }
コード例 #4
0
        public void VkBotCtor_PutUnfilteredGroupUrl_GroupUrlShouldBeFiltered(string unfilteredGroupUrl,
                                                                             string expectedGroupUrl)
        {
            var di = MockResolveScreenNameApi();

            var bot = new VkBot("test", unfilteredGroupUrl, di);

            Assert.AreEqual(bot.FilteredGroupUrl, expectedGroupUrl);
        }
コード例 #5
0
        public void VkBotCtor_PutFilteredGroupUrl_GroupUrlShouldBeAsFiltered()
        {
            var    di = MockResolveScreenNameApi();
            string expectedGroupUrl = "someGroupUrl";

            var bot = new VkBot("test", expectedGroupUrl, di);

            Assert.AreEqual(bot.FilteredGroupUrl, expectedGroupUrl);
        }
コード例 #6
0
 static void NewCommentHandler(object sender, GroupUpdateReceivedEventArgs eventArgs)
 {
     if (eventArgs.Update.Type == GroupUpdateType.WallReplyNew)
     {
         VkBot instanse = sender as VkBot;
         var   postId   = eventArgs.Update.WallReply.PostId;
         var   postTest = eventArgs.Update.WallReply.Text;
         instanse.Logger.LogInformation($"new comment under post. id:{postId}, text:{postTest}");
     }
 }
コード例 #7
0
        static void MateshaHandler(VkBot sender, MessageReceivedEventArgs args)
        {
            //правильный ответ уже установлен в диалоге, значит бот ожидает ответа в диалоге
            if (args.PeerContext.Vars.ContainsKey("validAnswer"))
            {
                return;
            }

            var message     = args.Message;
            var rand        = new Random();
            var firstNum    = rand.Next(1, 100);
            var secondNum   = rand.Next(1, 100);
            var validAnswer = firstNum + secondNum;

            //устанавливаем правильный ответ в контекст диалога
            args.PeerContext.Vars["validAnswer"] = validAnswer;

            //регистрируем новый обработчик для этого диалога, который будет чувствителен к числам
            sender.TemplateManager.Register(
                new RegexToActionTemplate(MateshaNumberCommand, MateshaNumberHandler, peerId: message.PeerId.Value)
                );

            //рисуем кнопочки
            int buttonsCount          = 10;
            int maxButtonsCountInLine = 4;
            int validButtonIndex      = rand.Next(buttonsCount);
            var keyboard = new KeyboardBuilder();

            for (int i = 0; i < buttonsCount; i++)
            {
                if (i == validButtonIndex)
                {
                    keyboard.AddButton((validAnswer).ToString(), "", KeyboardButtonColor.Primary);
                }
                else
                {
                    keyboard.AddButton(rand.Next(200).ToString(), "", KeyboardButtonColor.Primary);
                }

                if ((i + 1) % maxButtonsCountInLine == 0)
                {
                    keyboard.AddLine();
                }
            }

            sender.Api.Messages.Send(new MessagesSendParams()
            {
                RandomId = Math.Abs(Environment.TickCount),
                PeerId   = args.Message.PeerId,
                Message  = $"сколько будет {firstNum} + {secondNum}?",
                Keyboard = keyboard.Build()
            });
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: truecooler/VkBotFramework
        static void Main(string[] args)
        {
            ILoggerFactory  loggerFactory = new LoggerFactory().AddConsole();
            ILogger <VkBot> logger        = loggerFactory.CreateLogger <VkBot>();

            ExampleSettings settings = ExampleSettings.TryToLoad(logger);

            VkBot bot = new VkBot(settings.AccessToken, settings.GroupUrl, logger);

            bot.TemplateManager.Register(new RegexToActionTemplate("привет", "на привет всегда отвечаю кусь"));

            bot.TemplateManager.Register(
                new RegexToActionTemplate("ты кто",
                                          new List <string>()
            {
                "меня зовут мишутка", "вы о ком", "не говори так", "а ты кто?"
            }));

            bot.TemplateManager.Register(
                new RegexToActionTemplate("^[0-9]+$", "ого, я определил, что вы прислали мне число!"));

            bot.TemplateManager.Register(new RegexToActionTemplate("колобок",
                                                                   (sender, eventArgs) =>
            {
                logger.LogInformation(
                    $"кто-то написал {eventArgs.Message.Text}, я могу регировать на эту фразу так, как я хочу! system(\"reboot\")");
            }));

            bot.TemplateManager.Register(new RegexToActionTemplate("квадр.*[0-9]+", (sender, eventArgs) =>
            {
                logger.LogInformation(
                    $"кто-то написал '{eventArgs.Message.Text}', пора вычислить квадрат числа в сообщении!");

                int num = int.Parse(Regex.Match(eventArgs.Message.Text, "[0-9]+").Value);

                sender.Api.Messages.Send(new MessagesSendParams()
                {
                    RandomId = Environment.TickCount,
                    PeerId   = eventArgs.Message.PeerId,
                    Message  = $"квадрат числа {num} равен {num * num}"
                });
            }));


            var keyboard = new KeyboardBuilder().SetOneTime()
                           .AddButton("лол", "кек", KeyboardButtonColor.Positive, "type").Build();

            bot.TemplateManager.Register(new RegexToActionTemplate("кнопка", "лови кнопку", keyboard));
            bot.Start();
            bot.Dispose();
            Console.ReadLine();
        }
コード例 #9
0
        public void VkBotCtor_PutFakeGroupId_ResolvedGroupIdShouldBeAsFake()
        {
            long expectedGroupId = 111222;
            var  resolveScreenNameFakeResponse = new VkObject()
            {
                Type = VkNet.Enums.VkObjectType.Group, Id = expectedGroupId
            };
            var di = MockResolveScreenNameApi(resolveScreenNameFakeResponse);

            var bot = new VkBot("test", "test", di);

            Assert.AreEqual(bot.GroupId, expectedGroupId);
        }
コード例 #10
0
        static void Main(string[] args)
        {
            bot = new VkBot(Bot.Config.Settings.Bot.Token, new Random(), Bot.Config.Settings.Bot.GroupId, new ErrorReporter((ex) => { Console.WriteLine(ex.Message); }));
            bot.MessageMonitoring.NewMessage        += MessageMonitoring_NewMessage;
            bot.MessageMonitoring.OnCommand         += MessageMonitoring_OnCommand;
            bot.MessageMonitoring.OnCommandNotFound += MessageMonitoring_OnCommandNotFound;
            bot.Run();

            var monitoring = new DateTimeActionTimer(new DateTime(2019, 12, 9, Bot.Config.Settings.Path.DistTime[0], Bot.Config.Settings.Path.DistTime[1], 00), 30 * 1000, true);

            monitoring.Tick += Monitoring_Tick;
            monitoring.Start();
        }
コード例 #11
0
        static void Main(string[] args)
        {
            ILoggerFactory  loggerFactory = new LoggerFactory().AddConsole();
            ILogger <VkBot> logger        = loggerFactory.CreateLogger <VkBot>();

            ExampleSettings settings = ExampleSettings.TryToLoad(logger);

            VkBot bot = new VkBot(settings.AccessToken, settings.GroupUrl, logger);

            var keyboard = new KeyboardBuilder().SetOneTime().AddButton("тык", "").AddButton("тыдыщ", "").Build();

            bot.TemplateManager.Register(new RegexToActionTemplate("тык", (sender, eventArgs) =>
            {
                PeerContext context = eventArgs.PeerContext;
                long peerId         = eventArgs.Message.PeerId.Value;

                if (!context.Vars.ContainsKey("тыки"))
                {
                    context.Vars["тыки"] = 0;
                }

                sender.Api.Messages.Send(new MessagesSendParams()
                {
                    Keyboard = keyboard,
                    PeerId   = peerId,
                    Message  = $"тык номер {context.Vars["тыки"]++}",
                    RandomId = Math.Abs(Environment.TickCount)
                });
            }
                                                                   ));


            bot.TemplateManager.Register(new RegexToActionTemplate("тыдыщ", (sender, eventArgs) =>
            {
                if (!eventArgs.PeerContext.GlobalVars.ContainsKey("тыдыщи"))
                {
                    eventArgs.PeerContext.GlobalVars["тыдыщи"] = 0;
                }

                sender.Api.Messages.Send(new MessagesSendParams()
                {
                    Keyboard = keyboard,
                    PeerId   = eventArgs.Message.PeerId,
                    Message  = $"глобальный, междиалоговый тыдыщ номер {eventArgs.PeerContext.GlobalVars["тыдыщи"]++}",
                    RandomId = Math.Abs(Environment.TickCount)
                });
            }));

            bot.Start();
            bot.Dispose();
        }
コード例 #12
0
        static void Main(string[] args)
        {
            ILoggerFactory  loggerFactory = new LoggerFactory().AddConsole();
            ILogger <VkBot> logger        = loggerFactory.CreateLogger <VkBot>();

            ExampleSettings settings = ExampleSettings.TryToLoad(logger);

            VkBot bot = new VkBot(settings.AccessToken, settings.GroupUrl, logger);

            bot.OnMessageReceived += NewMessageHandler;

            bot.Start();

            Console.ReadLine();
        }
コード例 #13
0
        static void Main(string[] args)
        {
            //ILoggerFactory loggerFactory = new LoggerFactory().AddConsole();
            //ILogger<VkBot> logger = loggerFactory.CreateLogger<VkBot>();

            //ExampleSettings settings = ExampleSettings.TryToLoad(logger);

            VkBot bot = new VkBot(Resources.AccessToken, Resources.groupUrl);

            bot.OnMessageReceived += NewMessageHandler;

            bot.Start();

            WriteLine("Bot started!");
            ReadLine();
        }
コード例 #14
0
        static void NewMessageHandler(object sender, MessageReceivedEventArgs eventArgs)
        {
            VkBot instanse = sender as VkBot;
            var   peerId   = eventArgs.Message.PeerId;
            var   fromId   = eventArgs.Message.FromId;
            var   text     = eventArgs.Message.Text;

            instanse.Logger.LogInformation($"new message captured. peerId: {peerId},userId: {fromId}, text: {text}");
            instanse.Api.Messages.Send(new MessagesSendParams()
            {
                RandomId = Environment.TickCount,
                PeerId   = eventArgs.Message.PeerId,
                Message  =
                    $"{fromId.Value}, i have captured your message: '{text}'. its length is {text.Length}. number of spaces: {text.Count(x => x == ' ')}"
            });
        }
コード例 #15
0
ファイル: Program.cs プロジェクト: haqoff/VkBotHelper
        static void Main(string[] args)
        {
            var config = new ConfigurationBuilder()
                         .AddJsonFile("test-settings.json", false, false)
                         .Build();

            var groupAccessToken   = config["accessToken"];
            var botGroupId         = ulong.Parse(config["botGroupId"]);
            var dbConnectionString = config["dbConnection"];

            VkBot.StartNewCommandBot(groupAccessToken, botGroupId, builder =>
            {
                builder.Register <HelloCommand>();
                builder.Register <TimePatternTestCommand>();
            },
                                     container => { });
        }
コード例 #16
0
ファイル: Program.cs プロジェクト: haqoff/StudentVkBot
        private static void Main()
        {
            var config = new ConfigurationBuilder()
                         .AddJsonFile("appsettings.json", false, false)
                         .Build();

            var groupAccessToken   = config["accessToken"];
            var botGroupId         = ulong.Parse(config["botGroupId"]);
            var dbConnectionString = config["dbConnection"];

            using (var context = new StuDbContext(dbConnectionString))
            {
                context.Database.Migrate();
            }

            VkBot.StartNewCommandBot(groupAccessToken, botGroupId, builder =>
            {
                builder
                .Register <StartCommand>()
                .Register <ScheduleCreateCommands>()
                .Register <ScheduleShowCommands>();
            },
                                     container =>
            {
                container
                //сервисы
                .RegisterType <IScheduleGenerateService, ScheduleGenerateService>()
                .RegisterType <IScheduleFormatService, ScheduleFormatService>()
                .RegisterType <INetworkService, NetworkService>()

                //репозитории
                .RegisterType <IChatRepository, ChatRepository>(new TransientLifetimeManager())
                .RegisterType <IEventRepository, EventRepository>(new TransientLifetimeManager())
                .RegisterType <IRegularScheduleRepository, RegularScheduleRepository>(new TransientLifetimeManager())

                //бд
                .RegisterFactory <Func <StuDbContext> >(
                    (_) => new Func <StuDbContext>(() => new StuDbContext(dbConnectionString)),
                    new TransientLifetimeManager());
            });
        }
コード例 #17
0
        static void MateshaNumberHandler(VkBot sender, MessageReceivedEventArgs args)
        {
            int userAnswer  = int.Parse(Regex.Match(args.Message.Text, MateshaNumberCommand).Value);
            int validAnswer = args.PeerContext.Vars["validAnswer"];

            var keyboard = new KeyboardBuilder()
                           .AddButton("+матеша", "", KeyboardButtonColor.Positive)
                           .AddButton("-матеша", "", KeyboardButtonColor.Negative);

            sender.TemplateManager.Unregister(MateshaNumberCommand, args.Message.PeerId.Value);
            args.PeerContext.Vars.Remove("validAnswer");
            sender.Api.Messages.Send(new MessagesSendParams()
            {
                RandomId = Math.Abs(Environment.TickCount),
                PeerId   = args.Message.PeerId,
                Message  = (userAnswer == validAnswer)
                                        ? "верный ответ! держи печенюху"
                                        : $"ответ {userAnswer} невернен! верный ответ был: {validAnswer}, попробуйте еще раз",
                Keyboard = keyboard.Build()
            });
        }
コード例 #18
0
ファイル: Program.cs プロジェクト: AleksVanyukov/VkInformer
 public static void Bot(ref VkBot infoBot, String user, String Msg)
 {
     try
     {
         infoBot.Api.Messages.Send(new VkNet.Model.RequestParams.MessagesSendParams
         {
             RandomId = Math.Abs(Environment.TickCount),
             Message  = Msg,
             Domain   = user
         });
     }
     catch (Exception ex)
     {
         Console.WriteLine("         Error!");
         Console.WriteLine("################################");
         Console.WriteLine();
         Console.WriteLine(ex.ToString());
         Console.WriteLine();
         Console.WriteLine("################################");
     }
 }
コード例 #19
0
ファイル: Program.cs プロジェクト: MihaxXx/MMCS_Schedule_Bot
        /// <summary>
        /// "-nopreload" - prevents loading shedules on start
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            JsonData.ReadData();


            KeyboardInit();
            WeekInitPlanned();
            TeachersInit();
            GradeInit();
            if (!(Environment.GetCommandLineArgs().Length > 1 && Environment.GetCommandLineArgs()[1] == "-nopreload"))
            {
                TeachersShedInit();
                GroupShedListInit();
            }
            GetElectives();


            Scheduler.RunNotifier().GetAwaiter().GetResult();


            BOT = new Telegram.Bot.TelegramBotClient(ReadToken());
            logger.Info("Подключен бот Telegram.");
            BOT.OnMessage += BotOnMessageReceived;
            BOT.StartReceiving(new UpdateType[] { UpdateType.Message });
            logger.Info("Ожидает сообщений...");


            vkBot = new VkBot(ReadTokenVK(), GetGroupUrl());
            vkBot.OnMessageReceived += BotOnMessageReceived;
            logger.Info("Подключен бот VK.");
            vkBot.StartAsync();
            logger.Info("Ожидает сообщений...");


            Console.CancelKeyPress += OnExit;
            _closing.WaitOne();
        }
コード例 #20
0
ファイル: MsgHandle.cs プロジェクト: barakuda211/English-Bot
        static void NewMessageHandler(object sender, MessageReceivedEventArgs eventArgs)
        {
            VkBot instanse = sender as VkBot;
            var   peerId   = eventArgs.Message.PeerId.Value;
            var   fromId   = eventArgs.Message.FromId.Value;
            var   text     = GetFormatedWord(eventArgs.Message.Text);
            var   answer   = "Извини, я понимаю только текстовые сообщения 🤔";

            if (!users.HasUser(fromId) || users[fromId].regId != 1)
            {
                Registration(eventArgs.Message);
                return;
            }

            if (eventArgs.Message.Attachments != null && eventArgs.Message.Attachments.Count != 0 && eventArgs.Message.Attachments[0].Instance is VkNet.Model.Attachments.AudioMessage) // x.Type.IsInstanceOfType(VkNet.Enums.SafetyEnums.DocMessageType.AudioMessage)))
            {
                HandleAudioMessage(fromId, eventArgs.Message.Attachments[0]);
                return;
            }

            if (text == null && text.Length == 0)
            {
                SendMessage(fromId, answer, null, true);
                return;
            }

            users[fromId].lastMsg = (text, false, eventArgs.Message.ConversationMessageId.Value);

            if (users[fromId].on_Test)
            {
                return;
            }

            var ss = text.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

            if (ss.Length == 2)
            {
                if (ss[0] == "/examples")
                {
                    var lst = GetSentenceExemples(ss[1]);
                    if (lst == null || lst.Count != 0)
                    {
                        foreach (var s in lst)
                        {
                            SendMessage(fromId, s);
                        }
                    }
                    else
                    {
                        SendMessage(fromId, "Не могу привести пример с таким словом.");
                    }
                    return;
                }
                else if (ss[0] == "/sound")
                {
                    if (dictionary.eng_ids.ContainsKey(ss[1]))
                    {
                        SendExample(fromId, dictionary.eng_ids[ss[1]]);
                        return;
                    }
                    else
                    {
                        answer = "Я не знаю такого слова";
                        goto Answer;
                    }
                }
                else if (ss[0] == "/description")
                {
                    if (dictionary.eng_ids.ContainsKey(ss[1]))
                    {
                        SendFullWordDescription(fromId, dictionary.eng_ids[ss[1]]);
                        return;
                    }
                    else
                    {
                        answer = "Описание слова отсутствует";
                    }

                    SendMessage(fromId, answer, null, true);
                    return;
                }
            }
            // ----------------------------------------------------------------------------
            switch (text)
            {
            case "команды бота":
            case "/help":
                users[fromId].keyb = User.Help_Keyboard;
                answer             =
                    "/examples \'слово\'- примеры использования слова\n" +
                    "/description \'слово\' - описание слова\n" +
                    "/sound \'слово\' - пример с озвучиванием\n" +
                    "\'слово на русском\' - перевод на английский\n" +
                    "\'слово на английском\' - перевод на русский\n" +
                    "\'аудиосообщение на английском\' - распознавание речи\n" +
                    "\'текст на английском\' - перевод всех известных боту слов на русский\n";
                break;

            case "моя статистика":
            case "/my_level":
                answer = GetStatics(fromId);
                break;

            case "сменить уровень":
            case "/change_level":
                ChangingLevel_Start(fromId);
                return;

            case "сменить сложность":
            case "/change_complexity":
                ChangingComplexity_Start(fromId);
                return;

            case "игра кроссворд":
            case "/crossword":
                Games.Crossvord_start(fromId);
                return;

            case "игра виселица":
            case "/gallows":
                Games.Gallows_Start(fromId);
                return;

            case "/examples":
                answer = "А к чему пример то?)";
                break;

            case "/description":
                answer = "Нужно написать и само слово";
                break;

            case "хватит меня учить":
            case "/mute":
                users[fromId].bot_muted = true;
                answer = "Бот перешел в режим ожидания\nОн не будет присылать слова и тесты, но по прежнему будет выполнять команды";
                break;

            case "нет, учи меня":
            case "/unmute":
                users[fromId].bot_muted = false;
                answer = "Боты вернулся к стандартному режиму работы";
                break;

            case "добавить слова":
            case "/my_list":
                AddingWords_Start(fromId);
                return;

            case "/repeat":
            case "повторить слова":
                if (users[fromId].learnedWords.Count < users[fromId].day_words)
                {
                    answer = "Вы изучили недостаточно слов для проверки";
                    break;
                }
                else
                {
                    Testing_Start(fromId, true);
                    return;
                }

            case "вернуться назад":
            case "/back":
                users[fromId].keyb = User.Main_Keyboard;
                answer             = "Теперь ты в главном меню";
                break;

            case "/daywords":
            case "кол-во слов в день":
                DayWords_Start(fromId);
                return;

            case "admin::getpicture":
                if (adminIDs.Contains(fromId))
                {
                    foreach (var x in users[fromId].unLearnedWords)
                    {
                        SendPicture(fromId, x);
                    }
                }
                else
                {
                    answer = ACCESS_IS_DENIED;
                }
                return;

            case "admin::getсommands":
                if (adminIDs.Contains(fromId))
                {
                    answer = "getId, wantTest, getCommands, usersCount, forget_me, getpicture";
                }
                else
                {
                    answer = ACCESS_IS_DENIED;
                }
                break;

            case "admin::forget_me":
                if (adminIDs.Contains(fromId))
                {
                    SendMessage(fromId, "Я тебя забыл.");
                    users.DeleteUser(fromId);
                }
                else
                {
                    answer = ACCESS_IS_DENIED;
                }
                return;

            case "admin::getid":
                if (adminIDs.Contains(fromId))
                {
                    answer = fromId.ToString();
                }
                else
                {
                    answer = ACCESS_IS_DENIED;
                }
                break;

            case "admin::userscount":
                if (adminIDs.Contains(fromId))
                {
                    answer = "" + users.Dbase.Count;
                }
                else
                {
                    answer = ACCESS_IS_DENIED;
                }
                break;

            case "admin::wanttest":
                if (adminIDs.Contains(fromId))
                {
                    users[fromId].on_Test = true;
                    Testing_Start(fromId, false);
                    return;
                }
                else
                {
                    answer = ACCESS_IS_DENIED;
                }
                break;

            default:
                if (ss.Length == 1)
                {
                    answer = Translation(text);
                }
                else
                {
                    answer = MultipleTranslation(ss, users[fromId].userLevel);
                }
                break;
            }
Answer:
            SendMessage(fromId, answer, null, true);
        }
コード例 #21
0
ファイル: Program.cs プロジェクト: AleksVanyukov/VkInformer
        static void Main(string[] args)
        {
            Console.WriteLine("Запуск");
            VkBot  infoBot;
            String Token = "";
            String Group = "";

            if (args.Length != 0)
            {
                if (args[0] == "-t")
                {
                    Console.WriteLine("-t использовано");
                    try
                    {
                        Token = args[1];
                    }
                    catch
                    {
                        Console.WriteLine("Не задан токен!");
                    }
                }
                if (args[2] == "-g")
                {
                    Console.WriteLine("-g использовано");
                    try
                    {
                        Group = args[3];
                    }
                    catch
                    {
                        Console.WriteLine("Не задана группа!");
                    }
                }
                if (args[0] == "-h")
                {
                    Console.WriteLine("-h  -  Вызов справки");
                    Console.WriteLine("-t  -  Задать токен");
                    Console.WriteLine("-g  -  Задать группу");
                }
            }
            if (File.Exists("Token"))
            {
                Console.WriteLine(File.ReadAllText("Token"));
                infoBot = new VkBot(File.ReadAllText("Token").Replace("\n", ""), "https://vk.com/club189537036");
            }
            else
            {
                if (Token != "" && Group != "")
                {
                    infoBot = new VkBot(Token, Group);
                }
                else
                {
                    Console.WriteLine("Введите токен и группу");
                    infoBot = new VkBot(Console.ReadLine(), Console.ReadLine());
                }
            }

            String Msg = "Температура за окном: " + GetTemperature() + "°C";

            Bot(ref infoBot, "jek_ouwl", Msg);
            infoBot.Dispose();
            Console.WriteLine("Закрытие");
            return;
        }
コード例 #22
0
 static void botCallback(VkBot bot, PollServerResponse r)
 {
     Console.WriteLine(r.ToString());
 }