Esempio n. 1
0
        public static string GetNextMessageForDialog_Ad(DialogSettings dialog, bool isMessageForIntervalDispatching)
        {
            string result = null;

            if (AdTextSettings.IsNeedAd(dialog))
            {
                result = AdTextSettings.GetNextStringAndCommit();
            }
            if (string.IsNullOrEmpty(result))
            {
                result = isMessageForIntervalDispatching ? RandomMessages.GetNext_Interval() : RandomMessages.GetNext();
            }

            return(result);
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            //authorization
            var vk = new VkApi(new VkCaptchaSolver.VkCaptchaSolver());

            vk.Authorize(VkUtils.GetCredentials());

            //dialogs loading
            DialogSettings.NeedApi     = () => vk;
            DialogSettings.NeedMessage = (id) => VkUtils.GetLastMessage(vk, id);

            //reloader
            EroRepository.Reload();
            RandomMessages.Reload();
            AdTextSettings.Reload(vk);
            AdPicturesSettings.Reload(vk);
            var reloaderThread = new Thread(() =>
            {
                while (true)
                {
                    lock (vk)
                    {
                        EroRepository.Reload();
                        RandomMessages.Reload();
                        AdTextSettings.Reload(vk);
                        AdPicturesSettings.Reload(vk);
                    }

                    //Thread.Sleep(10000);
                    Thread.Sleep(1000 * 60 * 60);
                }
            });

            reloaderThread.Start();

            //initialize dialogs settings
            DialogSettings.LoadSessions();

            //main actions
            while (true)
            {
                try
                {
                    lock (vk)
                    {
                        var newMessages = vk.Messages.GetDialogs(new MessagesDialogsGetParams()
                        {
                            Offset = 0,
                            Count  = 200,
                            Unread = true
                        });

                        foreach (var message in newMessages.Messages)
                        {
                            if (!VkNet.VkUtils.IsChat(message) || CommandUtils.StartCommand.IsIt(message.Body))
                            {
                                CommandUtils.StartCommand.Execute(vk, message, message.Body);
                            }
                        }
                    }
                    VkNet.VkUtils.TechnicalSleepForVk();
                }
                catch (Exception e)
                {
                    if (!e.Message.Contains("Flood"))
                    {
                        Log.Write(e);
                        Console.WriteLine(e.Message);
                    }
                    else if (VkUtils.IsAccessTokenError(e))
                    {
                        vk.RefreshToken();
                    }
                }
            }
        }