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); }
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(); } } } }