public void startExecuteUpdateTask(ChatTask task) { if (ch.debug) { Task.Factory.StartNew(() => { Thread.Sleep(500); Render.DoAction(() => { ch.Title = "123123"; }); }); return; } Task.Factory.StartNew(() => { List <string[]> messages = ChatCoreHelper.GetMessagesFromUser(task.vkId); Task.Factory.StartNew(() => { Render.DoAction(() => { PersonChat pchat = ch.getPersonChat(task.personChatId); pchat.updateMessage(messages); }); }); }); }
public void writeAnswers() { //пишем мои сообщения также в чат if (ch.bot.loaded == false) { return; } foreach (KeyValuePair <string, PersonChat> kvp in ch.personWindows) { PersonChat pc = kvp.Value; List <ChatMessage> messages = pc.chatMessages; if (messages.Count < 2) { continue; } ChatMessage last = messages.Last(); ChatMessage previous = messages[messages.Count - 2]; //записываем только когда последняя моя, а предыдущая бабья if (last.isBot && !previous.isBot) { string mess1 = previous.message; mess1 = BotHelper.prepareString(mess1); string mess2 = last.message; //теперь проверяем что такой хрени еще нету if (!ch.bot.exist(mess1, mess2)) { addAnswerToHistory(mess1, mess2); } } } }
private void executeTasks(List <ChatTask> rt) { //типа выполняем foreach (ChatTask task in rt) { if (task.type == TaskEnum.MESSAGE) { PersonChat pchat = ch.getPersonChat(task.personChatId); string fullname = pchat.Person.name; string[] words = fullname.Split(new string[] { " " }, StringSplitOptions.None); string name = words[0]; task.message = task.message.Replace("$name", name); task.message = task.message.Replace("$fullname", fullname); startExecuteMessageTask(task.vkId, task.message); //шлем непроверенное сообщение pchat.sendVirtualMessage(task); addUpdateTask(task.personChatId, 30); } if (task.type == TaskEnum.UPDATE) { startExecuteUpdateTask(task); } } }
public void writeLog() { #region пишем сообщения string log_path = FileParser.getLogPath() + log_file_name; List <ChatMessage> messagesAll = new List <ChatMessage>(); foreach (KeyValuePair <string, PersonChat> kvp in ch.personWindows) { PersonChat pc = kvp.Value; List <ChatMessage> messages = pc.chatMessages; foreach (ChatMessage mess in messages) { if (mess.isVirtual) { continue; } messagesAll.Add(mess); } } messagesAll = messagesAll.OrderBy(o => o.time).ToList(); int delta = messagesAll.Count - last_count; if (delta == 0) { return; } FileStream fs = new FileStream(log_path, FileMode.Create, FileAccess.Write); StreamWriter sw = new StreamWriter(fs); foreach (ChatMessage m in messagesAll) { sw.WriteLine("[" + m.timeToString + "]" + " " + m.personName); sw.WriteLine(m.message); sw.WriteLine(" "); } last_count = messagesAll.Count; ch.addConsoleMsg("Log: +" + delta + " messages"); sw.Close(); #endregion #region пишем ошибки string err_path = FileParser.getLogPath() + err_file_name; errMess = errMess.OrderBy(o => o.time).ToList(); if (errMess.Count == 0) { return; } FileStream fs1 = new FileStream(err_path, FileMode.Create, FileAccess.Write); StreamWriter sw1 = new StreamWriter(fs1); foreach (ErrorMessage er in errMess) { sw1.WriteLine("[" + er.TimeString + "]"); sw1.WriteLine(er.reason); sw1.WriteLine(er.message); sw1.WriteLine(" "); } #endregion }
public void change() { foreach (KeyValuePair <string, PersonChat> kvp in cw.personWindows) { PersonChat chat = kvp.Value; if (chat.Person != null) { changeStat(chat, "status"); changeStat(chat, "follower"); changeStat(chat, "startup"); changeStat(chat, "age"); } } }
public void addUpdateTask(string personChatId, int dsek) { PersonChat pchat = ch.getPersonChat(personChatId); long vkId = pchat.personId; ChatTask t = new ChatTask(); t.type = Chat.Core.TaskEnum.UPDATE; t.message = "UPDATE"; t.vkId = vkId; t.timeExpared = setTime(dsek); t.personChatId = personChatId; t.isStopped = false; t.personName = ch.CurrentUser.Value; ch.tasks.Add(t); ch.updateTaskList(); }
private void executeTasks(List <ChatTask> rt) { //типа выполняем foreach (ChatTask task in rt) { if (task.type == TaskEnum.MESSAGE) { startExecuteMessageTask(task.vkId, task.message); //шлем непроверенное сообщение PersonChat pchat = ch.getPersonChat(task.personChatId); pchat.sendVirtualMessage(task); addUpdateTask(task.personChatId, 30); } if (task.type == TaskEnum.UPDATE) { startExecuteUpdateTask(task); } } }
private void changeStat(PersonChat ch, string _type) { List <StatisticItem> mlist = info[_type]; int increment = ch._goodTalk == true ? 1 : 0; string mess = ""; if (_type == "status") { mess = ch.Person.Relation; } if (_type == "follower") { mess = ch.Person.followerStr; } if (_type == "startup") { mess = ch.startUpFraze; } if (_type == "age") { mess = ch.Person.AgeStr; } StatisticItem st = mlist.FirstOrDefault(o => o.m == mess); if (st == null) { StatisticItem st_new = new StatisticItem(); st_new.m = mess; st_new.current = increment; st_new.all = 1; st_new.percent = increment * 100 / 1; info[_type].Add(st_new); } else { st.current = st.current + increment; st.all = st.all + 1; st.percent = st.current * 100 / st.all; } }
public SmartBot(PersonChat pc) { this.pc = pc; setThemes(); }