Ejemplo n.º 1
0
        private void start_survey(string nick, int nick_access, int survey_num, bot ircbot, IRCConfig conf)
        {
            bool survey_found = false;
            if (Directory.Exists(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "surveys" + Path.DirectorySeparatorChar + ""))
            {
                FileInfo fi = new FileInfo(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "surveys" + Path.DirectorySeparatorChar + "");
                DirectoryInfo di = fi.Directory;
                FileSystemInfo[] fsi = di.GetFiles();
                if (fsi.GetUpperBound(0) >= 0 && fsi.GetUpperBound(0) >= survey_num)
                {
                    foreach (survey_info survey in active_surveys)
                    {
                        if (nick.Equals(survey.nick))
                        {
                            survey_found = true;
                            break;
                        }
                    }
                    if (survey_found == false)
                    {
                        string[] questions = File.ReadAllLines(fsi[survey_num].FullName);
                        if (questions.GetUpperBound(0) > 2)
                        {
                            if (Convert.ToInt32(questions[0]) <= nick_access)
                            {
                                survey_found = true;
                                survey_info tmp_info = new survey_info();
                                tmp_info.user_submission = true;
                                tmp_info.name = fsi[survey_num].Name.Substring(0, fsi[survey_num].Name.Length - 4);
                                tmp_info.nick = nick;
                                tmp_info.survey_number = survey_num;
                                tmp_info.current_question = 1;
                                tmp_info.survey_id = survey_num;

                                active_surveys.Add(tmp_info);

                                if (!Directory.Exists(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "answers" + Path.DirectorySeparatorChar + tmp_info.name + Path.DirectorySeparatorChar + tmp_info.nick + Path.DirectorySeparatorChar + ""))
                                {
                                    Directory.CreateDirectory(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "answers" + Path.DirectorySeparatorChar + tmp_info.name + Path.DirectorySeparatorChar + tmp_info.nick + Path.DirectorySeparatorChar + "");
                                }

                                if (File.Exists(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "answers" + Path.DirectorySeparatorChar + tmp_info.name + Path.DirectorySeparatorChar + tmp_info.nick + Path.DirectorySeparatorChar + tmp_info.current_question + ".txt"))
                                {
                                    File.Delete(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "answers" + Path.DirectorySeparatorChar + tmp_info.name + Path.DirectorySeparatorChar + tmp_info.nick + Path.DirectorySeparatorChar + tmp_info.current_question + ".txt");
                                    File.Create(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "answers" + Path.DirectorySeparatorChar + tmp_info.name + Path.DirectorySeparatorChar + tmp_info.nick + Path.DirectorySeparatorChar + tmp_info.current_question + ".txt");
                                }
                                else
                                {
                                    File.Create(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "answers" + Path.DirectorySeparatorChar + "survey_" + tmp_info.survey_number + Path.DirectorySeparatorChar + tmp_info.nick + Path.DirectorySeparatorChar + tmp_info.current_question + ".txt");
                                }

                                ircbot.sendData("PRIVMSG", nick + " :You have chosen to take the following survey: " + questions[1]);
                                ircbot.sendData("PRIVMSG", nick + " :You will be presented with a series of questions.  After you write the answer, type " + conf.command + "nextquestion to submit your answer and view the next question.");
                                ircbot.sendData("PRIVMSG", nick + " :If at any time during the survey you wish to cancel, type " + conf.command + "cancelsurvey to cancel your current survey and any answers you may have submitted.");
                                string[] owners = questions[2].Split(',');
                                foreach (string owner in owners)
                                {
                                    ircbot.sendData("NOTICE", owner + " :" + nick + " has started your survey, \"" + questions[1] + "\"");
                                }
                                ircbot.sendData("PRIVMSG", nick + " :" + questions[3]);
                            }
                        }
                    }
                    else
                    {
                        ircbot.sendData("NOTICE", nick + " :You are already taking a survey.  Please finish the current survey or cancel it to choose a new survey.");
                    }
                }
            }
            if (survey_found == false)
            {
                ircbot.sendData("NOTICE", nick + " :Sorry, but that survey is not available to you.  To view all surveys available to you, please type " + conf.command + "surveys");
            }
        }
Ejemplo n.º 2
0
        private void add_survey(string nick, int survey_access, string survey_name, bot ircbot, IRCConfig conf)
        {
            bool survey_found = false;

            foreach (survey_info survey in active_surveys)
            {
                if (nick.Equals(survey.nick))
                {
                    survey_found = true;
                    break;
                }
            }
            if (survey_found == false)
            {
                if (!Directory.Exists(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "surveys" + Path.DirectorySeparatorChar + ""))
                {
                    Directory.CreateDirectory(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "surveys" + Path.DirectorySeparatorChar + "");
                }

                FileInfo fi = new FileInfo(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "surveys" + Path.DirectorySeparatorChar + "");
                DirectoryInfo di = fi.Directory;
                FileSystemInfo[] fsi = di.GetFiles();
                File.AppendAllText(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "surveys" + Path.DirectorySeparatorChar + "survey_" + (fsi.GetUpperBound(0) + 1).ToString() + ".txt", survey_access.ToString() + Environment.NewLine);
                File.AppendAllText(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "surveys" + Path.DirectorySeparatorChar + "survey_" + (fsi.GetUpperBound(0) + 1).ToString() + ".txt", survey_name + Environment.NewLine);
                File.AppendAllText(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "surveys" + Path.DirectorySeparatorChar + "survey_" + (fsi.GetUpperBound(0) + 1).ToString() + ".txt", nick + Environment.NewLine);

                survey_info tmp_info = new survey_info();
                tmp_info.name = "survey_" + (fsi.GetUpperBound(0) + 1).ToString();
                tmp_info.nick = nick;
                tmp_info.survey_number = (fsi.GetUpperBound(0) + 1);
                tmp_info.current_question = 1;
                tmp_info.user_submission = false;

                active_surveys.Add(tmp_info);

                ircbot.sendData("PRIVMSG", nick + " :Please type out a question per line.  Once you are finished adding all the questions you want, type " + conf.command + "finishsurvey to submit the finished survey.");
                ircbot.sendData("PRIVMSG", nick + " :If at any time during the survey you wish to cancel, type " + conf.command + "cancelsurvey to cancel your current survey submission.");
            }
            else
            {
                ircbot.sendData("PRIVMSG", nick + " :You already have a survey active.  Please finish the current survey or cancel it to create a new survey.");
            }
        }