コード例 #1
0
 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);
             });
         });
     });
 }
コード例 #2
0
ファイル: Logger.cs プロジェクト: sergeypyrkin/borat2
 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);
             }
         }
     }
 }
コード例 #3
0
ファイル: TaskExecuter.cs プロジェクト: sergeypyrkin/borat2
        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);
                }
            }
        }
コード例 #4
0
ファイル: Logger.cs プロジェクト: KamikyIT/GrillMagnetto
        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
        }
コード例 #5
0
ファイル: Statistic.cs プロジェクト: sergeypyrkin/borat2
 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");
         }
     }
 }
コード例 #6
0
        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();
        }
コード例 #7
0
 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);
         }
     }
 }
コード例 #8
0
ファイル: Statistic.cs プロジェクト: sergeypyrkin/borat2
        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;
            }
        }
コード例 #9
0
 public SmartBot(PersonChat pc)
 {
     this.pc = pc;
     setThemes();
 }