Example #1
0
            public string purgenow(BotFunctionData BotInput)
            {
                StringBuilder responsebuilder = new StringBuilder();

                string[] splittedinput = BotInput.input.Split(' ');
                if (splittedinput.Length == 2)
                {
                    int purgecount = 0;
                    try { int.TryParse(splittedinput[1], out purgecount); }
                    catch (Exception ex) { responsebuilder.Append(ex.Message); }
                    int i = 0;
                    System.Diagnostics.Stopwatch swatch = new System.Diagnostics.Stopwatch();
                    swatch.Start();
                    if (purgecount > 0)
                    {
                        long nodesbefore = BotInput.nstruct.totalnodespurged;
                        while (i < purgecount)
                        {
                            BotInput.nstruct.purgebadnodes();
                            i++;
                        }
                        long nodespurged = BotInput.nstruct.totalnodespurged - nodesbefore;
                        swatch.Stop();
                        responsebuilder.Append(string.Format("Done. Nodes purged: {0}. Operation took {1}ms.", nodespurged, swatch.ElapsedMilliseconds));
                    }
                }
                else
                {
                    responsebuilder.Append(BotInput.nstruct.purgebadnodes());
                }
                return(responsebuilder.ToString());
            }
Example #2
0
        public string addurl(BotFunctionData BotInput)
        {
            StringBuilder responsebuilder = new StringBuilder();

            if (BotInput.input.Split(' ').Length < 2)
            {
                return("You have to provide an url, silly.");
            }
            if (!persistence.ContainsKey("urls"))
            {
                persistence.Add(new savenode("urls", "urls!"));
            }
            System.Uri url;
            if (System.Uri.TryCreate(BotInput.input.Split(' ')[1], UriKind.Absolute, out url))
            {
                if (!persistence["urls"].childnodes.ContainsValue(BotInput.input.Split(' ')[1]))
                {
                    System.Net.WebClient x = new System.Net.WebClient();
                    string source          = x.DownloadString(url);
                    string title           = System.Text.RegularExpressions.Regex.Match(source, @"\<title\b[^>]*\>\s*(?<Title>[\s\S]*?)\</title\>", System.Text.RegularExpressions.RegexOptions.IgnoreCase).Groups["Title"].Value;
                    persistence["urls"].childnodes.Add(new savenode(title, url.ToString()));
                    responsebuilder.Append("Added!");
                }
                else
                {
                    responsebuilder.Append("That was already in the list!");
                }
            }
            else
            {
                responsebuilder.Append("That's not a valid url, silly.");
            }
            return(responsebuilder.ToString());
        }
Example #3
0
 public string addurl(BotFunctionData BotInput)
 {
     StringBuilder responsebuilder = new StringBuilder();
     if (BotInput.input.Split(' ').Length < 2)
         return "You have to provide an url, silly.";
     if (!persistence.ContainsKey("urls"))
         persistence.Add(new savenode("urls", "urls!"));
     System.Uri url;
     if (System.Uri.TryCreate(BotInput.input.Split(' ')[1], UriKind.Absolute, out url))
     {
         if (!persistence["urls"].childnodes.ContainsValue(BotInput.input.Split(' ')[1]))
         {
             System.Net.WebClient x = new System.Net.WebClient();
             string source = x.DownloadString(url);
             string title = System.Text.RegularExpressions.Regex.Match(source, @"\<title\b[^>]*\>\s*(?<Title>[\s\S]*?)\</title\>", System.Text.RegularExpressions.RegexOptions.IgnoreCase).Groups["Title"].Value;
             persistence["urls"].childnodes.Add(new savenode(title, url.ToString()));
             responsebuilder.Append("Added!");
         }
         else
         {
             responsebuilder.Append("That was already in the list!");
         }
     }
     else { responsebuilder.Append("That's not a valid url, silly."); }
     return responsebuilder.ToString();
 }
Example #4
0
        public string roll(BotFunctionData BotInput)
        {
            StringBuilder responsebuilder = new StringBuilder();

            try
            {
                string[] vars  = BotInput.input.Split(' ')[1].Split('d');
                int      dices = Convert.ToInt32(vars[0]);
                int      sides = Convert.ToInt32(vars[1]);
                Random   rnd   = new Random();
                int      total = 0;

                for (int i = 0; i < dices; i++)
                {
                    int rand = rnd.Next(1, sides);
                    responsebuilder.AppendFormat("{0} ", rand);
                    total += rand;
                }
                int average = total / dices;
                responsebuilder.AppendFormat("(avg:{0}, total:{1})", average, total);
            }
            catch (Exception ex)
            {
                responsebuilder.Append(ex.Message);
                logger.logerror(ex);
            }

            return(responsebuilder.ToString());
        }
Example #5
0
            public string changexml(BotFunctionData BotInput)
            {
                //command format: changexml add|del|delchild|change %dictitem% %itemtoadd|del|change% %change|addargument%
                StringBuilder responsebuilder = new StringBuilder();

                string[] splittedinput = BotInput.input.Split(' ');
                if (splittedinput.Length < 3)
                {
                    return("You didn't specify enough parameters");
                }
                if (!persistence.ContainsKey(splittedinput[2]))
                {
                    return("Specified item wasn't found in the xml file");
                }
                switch (splittedinput[1])
                {
                case "add":
                    if (splittedinput.Length < 5)
                    {
                        return("You didn't specify enough parameters for this command.");
                    }
                    persistence[splittedinput[2]].childnodes.Add(new  savenode(splittedinput[3], splittedinput[4]));
                    responsebuilder.AppendFormat("Succesfully added {0}({1}) to {2}", splittedinput[3], splittedinput[4], splittedinput[2]);
                    break;

                case "delchild":
                    if (splittedinput.Length < 4)
                    {
                        return("You didn't specify enough parameters for this command.");
                    }
                    persistence[splittedinput[2]].childnodes.Remove(persistence[splittedinput[2]].childnodes[splittedinput[3]]);
                    responsebuilder.AppendFormat("Succesfully removed {0}({1}) from {2}", splittedinput[3], splittedinput[4], splittedinput[2]);
                    break;

                case "del":
                    persistence.Remove(splittedinput[2]);
                    responsebuilder.AppendFormat("Succesfully removed {0}", splittedinput[2]);
                    break;

                case "change":
                    if (splittedinput.Length < 5)
                    {
                        return("You didn't specify enough parameters for this command.");
                    }
                    try
                    {
                        return("Command not supported yet..");
                    }
                    catch (Exception ex)
                    {
                        logger.logerror(ex); return(ex.Message);
                    }
                    break;

                default:
                    return("Command not recognized. Try manual for help on using changexml");
                }
                return(responsebuilder.ToString());
            }
Example #6
0
            public string toggledebug(BotFunctionData BotInput)
            {
                StringBuilder responsebuilder = new StringBuilder();

                BotInput.nstruct.toggledebug();
                responsebuilder.Append("Toggled debug.");
                return(responsebuilder.ToString());
            }
Example #7
0
            public string toggleratelimit(BotFunctionData BotInput)
            {
                StringBuilder responsebuilder = new StringBuilder();

                BotInput.nstruct.toggleratelimit();
                responsebuilder.Append("Set ratelimit to " + BotInput.nstruct.ratelimit.ToString() + ".");
                return(responsebuilder.ToString());
            }
Example #8
0
            public string loadnow(BotFunctionData BotInput)
            {
                StringBuilder responsebuilder = new StringBuilder();

                System.Diagnostics.Stopwatch swatch = new System.Diagnostics.Stopwatch();
                swatch.Start();
                persistence.load(persistence.filename);
                swatch.Stop();
                responsebuilder.AppendFormat("Loaded from {0} in {1}ms!", persistence.filename, swatch.ElapsedMilliseconds);
                return(responsebuilder.ToString());
            }
Example #9
0
            public string ToggleAntiOnySpam(BotFunctionData BotInput)
            {
                // Using this command will toggle Anti ony spam
                StringBuilder responsebuilder = new StringBuilder();

                string[] splittedstring = BotInput.input.Split(' ');

                RunVars.OnySpamProtection = !RunVars.OnySpamProtection;

                responsebuilder.Append("Done! Set spam protection to " + RunVars.OnySpamProtection.ToString());

                return(responsebuilder.ToString());
            }
Example #10
0
            public string ShutdownGracefully(BotFunctionData BotInput)
            {
                StringBuilder responsebuilder = new StringBuilder();

                responsebuilder.Append("Shutting down bot..\nSaving playback..\n");
                BotInput.nstruct.saveplayback();
                responsebuilder.Append("Saved playback, saving XML persistence..(");
                responsebuilder.Append(savenow(new BotFunctionData(BotInput.nstruct)));
                responsebuilder.Append(")\nDone! Onymity will now go down.");
                RunVars.run = false;
                RunVars.Donify.Set();
                return(responsebuilder.ToString());
            }
Example #11
0
            public string savenow(BotFunctionData BotInput)
            {
                StringBuilder responsebuilder = new StringBuilder();

                System.Diagnostics.Stopwatch swatch = new System.Diagnostics.Stopwatch();
                swatch.Start();
                lock (persistence)
                {
                    persistence.save(persistence.filename);
                }
                swatch.Stop();
                responsebuilder.AppendFormat("Saved to {0} in {1}ms!", persistence.filename, swatch.ElapsedMilliseconds);
                return(responsebuilder.ToString());
            }
Example #12
0
        public string recommendporn(BotFunctionData BotInput)
        {
            updateporn();
            StringBuilder responsebuilder = new StringBuilder();

            responsebuilder.Append("People apparently like: ");

            if (e621Posts <= 0)
            {
                responsebuilder.Append("Nothing? That's strange...");
            }
            else
            {
                Random postNumber           = new Random();
                System.Net.WebClient client = new System.Net.WebClient();
                string imageURL             = "Wrong somehow :|";
                string rating = "None :|";

                do
                {
                    int    post = postNumber.Next(1, e621Posts);
                    string page = client.DownloadString("http://e621.net/post/show/" + post.ToString());

                    System.Text.RegularExpressions.Regex image = new System.Text.RegularExpressions.Regex("Size:.*href=\"([^\"]+)");
                    System.Text.RegularExpressions.Regex ratex = new System.Text.RegularExpressions.Regex("Rating:.*(Safe|Explicit|Questionable)");
                    var match = image.Match(page);

                    if (match.Success)
                    {
                        imageURL = "http://e621.net" + match.Groups[1].Value;

                        match = ratex.Match(page);

                        if (match.Success)
                        {
                            rating = match.Groups[1].Value;
                        }
                    }
                    else
                    {
                        logger.log("Unable to find image in post " + post.ToString() + ", skipping", CedLib.Logging.Priority.Notice);
                    }
                }while (imageURL == "Wrong somehow :|");

                responsebuilder.Append(imageURL);
                responsebuilder.Append(" [" + rating + "]");
            }

            return(responsebuilder.ToString());
        }
Example #13
0
            public string loadmemfile(BotFunctionData BotInput)
            {
                StringBuilder responsebuilder = new StringBuilder();

                try
                {
                    responsebuilder.Append(BotInput.nstruct.loadplayback(BotInput.input.Split(' ')[1]));
                }
                catch (Exception ex)
                {
                    logger.logerror(ex);
                    responsebuilder.Append(ex.Message);
                }
                return(responsebuilder.ToString());
            }
Example #14
0
            public string printxml(BotFunctionData BotInput)
            {
                //syntax: printxml _dictionarypart_
                StringBuilder responsebuilder = new StringBuilder();

                string[] splittedinput = BotInput.input.Split(' ');
                if (splittedinput.Length < 2)
                {
                    return("Not enough commands specified");
                }
                foreach (var node in persistence[splittedinput[1]].childnodes)
                {
                    responsebuilder.AppendFormat("{0}({1}),", node.name, node.obj);
                }
                return(responsebuilder.ToString());
            }
Example #15
0
 public string statusreport(BotFunctionData BotInput)
 {
     StringBuilder responsebuilder = new StringBuilder();
     responsebuilder.AppendFormat("Report about me:\nI know {0} words, i've ignored {1} words so far, and purged {2} uncommon nodes so far.\nDebugging is {3} and rate limiting is {4}. The rate limit is set to 1 message every {5} seconds.", new object[]
                 {
                     BotInput.nstruct.translatenodes.Count,
                     BotInput.nstruct.wordsignored,
                     BotInput.nstruct.totalnodespurged,
                     BotInput.nstruct.debug,
                     BotInput.nstruct.ratelimit,
                     BotInput.nstruct.secondsbetweenresponse
                 });
     if (StatusReportEvent != null)
         StatusReportEvent(responsebuilder);
     return responsebuilder.ToString();
 }
Example #16
0
        public string geturl(BotFunctionData BotInput)
        {
            StringBuilder responsebuilder = new StringBuilder();
            Random        rnd             = new Random();
            savenode      url             = persistence["urls"].childnodes[rnd.Next(0, persistence["urls"].childnodes.Count - 1)];

            if (url.name == "")
            {
                System.Net.WebClient x = new System.Net.WebClient();
                string source          = x.DownloadString(url.obj);
                string title           = System.Text.RegularExpressions.Regex.Match(source, @"\<title\b[^>]*\>\s*(?<Title>[\s\S]*?)\</title\>", System.Text.RegularExpressions.RegexOptions.IgnoreCase).Groups["Title"].Value;
                url.name = title;
            }
            responsebuilder.AppendFormat("Here is something that I heard other people like: {0} ({1})", url.obj, url.name);
            return(responsebuilder.ToString());
        }
Example #17
0
            public string OnyAntiSpamMaxReturnLength(BotFunctionData BotInput)
            {
                // OnyAntiSpamMaxReturnLength %Length%
                string[] splittedstring    = BotInput.input.Split(' ');
                int      _OnySpamThreshold = 0;

                if (splittedstring.Length < 2)
                {
                    return("Currently, the max response length in characters is set to: " + RunVars.OnySpamThreshold.ToString());
                }
                if (!int.TryParse(splittedstring[1], out _OnySpamThreshold))
                {
                    return("I sense a disturbance in the integer.");
                }
                RunVars.OnySpamThreshold = _OnySpamThreshold;
                return("Succesfully set spam threshold to: " + RunVars.OnySpamThreshold);
            }
Example #18
0
            public string setratelimit(BotFunctionData BotInput)
            {
                StringBuilder responsebuilder = new StringBuilder();

                try
                {
                    int ratetime = 30;
                    int.TryParse(BotInput.input.Split(' ')[1], out ratetime);
                    BotInput.nstruct.secondsbetweenresponse = ratetime;
                    responsebuilder.AppendFormat("Set rate limit to {0} seconds.", BotInput.nstruct.secondsbetweenresponse);
                }
                catch (Exception ex)
                {
                    logger.logerror(ex);
                    responsebuilder.Append(ex.Message);
                }
                return(responsebuilder.ToString());
            }
Example #19
0
        public string eightball(BotFunctionData BotInput)
        {
            StringBuilder responsebuilder = new StringBuilder();

            if (!persistence.ContainsKey("eightballanswers"))
            {
                persistence.Add(new savenode("eightballanswers", "Eightballs mang!"));
                persistence["eightballanswers"].childnodes.AddRange(new savenode[]
                {
                    new savenode("Yes", ""),
                    new savenode("No", ""),
                    new savenode("Ask a fennec. Fennecs know shit man. I don't know how, they just do D:", ""),
                    new savenode("Is that really a question you'd ask someone like me?", ""),
                    new savenode("Sure, why not?", ""),
                    new savenode("Do it carefully.", ""),
                    new savenode("Make the best of it!", ""),
                    new savenode("Why the F**K would you do that Dx", "")
                });
            }
            else if (persistence["eightballanswers"].childnodes.Count < 1)
            {
                persistence["eightballanswers"].childnodes.AddRange(new savenode[]
                {
                    new savenode("Yes", ""),
                    new savenode("No", ""),
                    new savenode("Ask a fennec. Fennecs know shit man. I don't know how, they just do D:", ""),
                    new savenode("Is that really a question you'd ask someone like me?", ""),
                    new savenode("Sure, why not?", ""),
                    new savenode("Do it carefully.", ""),
                    new savenode("Make the best of it!", ""),
                    new savenode("Why the F**K would you do that Dx", "")
                });
            }
            savenode eightballanswers = persistence["eightballanswers"];
            Random   rnd = new Random();
            int      x   = rnd.Next(0, eightballanswers.childnodes.Count);

            responsebuilder.Append(eightballanswers.childnodes[x].name);
            if (BotInput.nstruct.debug)
            {
                responsebuilder.AppendFormat("({0}/{1})", x, eightballanswers.childnodes.Count);
            }
            return(responsebuilder.ToString());
        }
Example #20
0
 public string uptime(BotFunctionData BotInput)
 {
     StringBuilder responsebuilder = new StringBuilder();
     try
     {
         System.Diagnostics.PerformanceCounter pc = new System.Diagnostics.PerformanceCounter("System", "System Up Time");
         pc.NextValue();
         TimeSpan ts = TimeSpan.FromSeconds(pc.NextValue());
         responsebuilder.AppendFormat("The PC i'm running on has been up for {0} days, and {1}:{2} hours.", new object[] { ts.Days, ts.Hours, ts.Minutes });
     }
     catch (Exception ex)
     {
         logger.logerror(ex);
         responsebuilder.Append("Couldn't fetch system uptime (Are you admin?).");
     }
     TimeSpan myts = (DateTime.Now - RunVars.starttime);
     responsebuilder.AppendFormat(" My current session has been running for {0}:{1}:{2} ({3} days)", new object[] { myts.Hours, myts.Minutes, myts.Seconds, myts.TotalDays });
     return responsebuilder.ToString();
 }
Example #21
0
            public string statusreport(BotFunctionData BotInput)
            {
                StringBuilder responsebuilder = new StringBuilder();

                responsebuilder.AppendFormat("Report about me:\nI know {0} words, i've ignored {1} words so far, and purged {2} uncommon nodes so far.\nDebugging is {3} and rate limiting is {4}. The rate limit is set to 1 message every {5} seconds.", new object[]
                {
                    BotInput.nstruct.translatenodes.Count,
                    BotInput.nstruct.wordsignored,
                    BotInput.nstruct.totalnodespurged,
                    BotInput.nstruct.debug,
                    BotInput.nstruct.ratelimit,
                    BotInput.nstruct.secondsbetweenresponse
                });
                if (StatusReportEvent != null)
                {
                    StatusReportEvent(responsebuilder);
                }
                return(responsebuilder.ToString());
            }
Example #22
0
            public string uptime(BotFunctionData BotInput)
            {
                StringBuilder responsebuilder = new StringBuilder();

                try
                {
                    System.Diagnostics.PerformanceCounter pc = new System.Diagnostics.PerformanceCounter("System", "System Up Time");
                    pc.NextValue();
                    TimeSpan ts = TimeSpan.FromSeconds(pc.NextValue());
                    responsebuilder.AppendFormat("The PC i'm running on has been up for {0} days, and {1}:{2} hours.", new object[] { ts.Days, ts.Hours, ts.Minutes });
                }
                catch (Exception ex)
                {
                    logger.logerror(ex);
                    responsebuilder.Append("Couldn't fetch system uptime (Are you admin?).");
                }
                TimeSpan myts = (DateTime.Now - RunVars.starttime);

                responsebuilder.AppendFormat(" My current session has been running for {0}:{1}:{2} ({3} days)", new object[] { myts.Hours, myts.Minutes, myts.Seconds, myts.TotalDays });
                return(responsebuilder.ToString());
            }
Example #23
0
            public string removeconjunction(BotFunctionData BotInput)
            {
                StringBuilder responsebuilder = new StringBuilder();

                if (BotInput.input.Split(' ').Length > 2)
                {
                    try
                    {
                        string[] splittedstring = BotInput.input.Split(' ');
                        BotInput.nstruct.translatenodes[splittedstring[1]].childnodes.Remove(BotInput.nstruct.translatenodes[splittedstring[2]]);
                        responsebuilder.AppendFormat("Succesfully removed {0} from {1}", splittedstring[2], splittedstring[1]);
                    }
                    catch (Exception ex)
                    { responsebuilder.Append(ex.Message); logger.logerror(ex); }
                }
                else
                {
                    responsebuilder.Append("Not enough arguments specified.");
                }
                return(responsebuilder.ToString());
            }
Example #24
0
            public string statusword(BotFunctionData BotInput)
            {
                //if (BotInput.Ctype == Data.ChatType.GROUPCHAT)
                //    return "Due to the spamminess of this command it has been made PM-only. Open a new private chat with me and ask it there.";
                StringBuilder responsebuilder = new StringBuilder();
                try
                {
                    StringBuilder sbuildernodes = new StringBuilder();
                    foreach (var childnode in BotInput.nstruct.translatenodes[BotInput.input.Split(' ')[1]].childnodes)
                    {
                        sbuildernodes.Append(childnode.Key.text + "(" + childnode.Value + "),");
                    }
                    responsebuilder.AppendFormat("Node \"{0}\" has {1} childnodes: {2}", new object[]{
                                    BotInput.nstruct.translatenodes[BotInput.input.Split(' ')[1]].text,
                                    BotInput.nstruct.translatenodes[BotInput.input.Split(' ')[1]].childnodes.Count,
                                    sbuildernodes.ToString()

                                });
                }
                catch (Exception ex) { logger.logerror(ex); responsebuilder.Append(ex.Message); }
                return responsebuilder.ToString();
            }
Example #25
0
            public string statusword(BotFunctionData BotInput)
            {
                //if (BotInput.Ctype == Data.ChatType.GROUPCHAT)
                //    return "Due to the spamminess of this command it has been made PM-only. Open a new private chat with me and ask it there.";
                StringBuilder responsebuilder = new StringBuilder();

                try
                {
                    StringBuilder sbuildernodes = new StringBuilder();
                    foreach (var childnode in BotInput.nstruct.translatenodes[BotInput.input.Split(' ')[1]].childnodes)
                    {
                        sbuildernodes.Append(childnode.Key.text + "(" + childnode.Value + "),");
                    }
                    responsebuilder.AppendFormat("Node \"{0}\" has {1} childnodes: {2}", new object[] {
                        BotInput.nstruct.translatenodes[BotInput.input.Split(' ')[1]].text,
                        BotInput.nstruct.translatenodes[BotInput.input.Split(' ')[1]].childnodes.Count,
                        sbuildernodes.ToString()
                    });
                }
                catch (Exception ex) { logger.logerror(ex); responsebuilder.Append(ex.Message); }
                return(responsebuilder.ToString());
            }
Example #26
0
        public string GetQuote(BotFunctionData BotInput)
        {
            StringBuilder responsebuilder = new StringBuilder();

            string[] splittedstring = BotInput.input.Split(' ');
            if (Quotes.Count < 1)
            {
                try
                {
                    Quotes.AddRange(System.Text.RegularExpressions.Regex.Split(System.IO.File.ReadAllText(QuotesFile), "\r\n.\r\n"));
                }
                catch (System.Exception ex)
                {
                    logger.logerror(ex); return(ex.Message);
                }
            }
            Random rnd = new Random();

            responsebuilder.Append(Quotes[rnd.Next(0, Quotes.Count)]);

            return(responsebuilder.ToString());
        }
Example #27
0
            public string SetMaxSentenceLength(BotFunctionData BotInput)
            {
                StringBuilder responsebuilder = new StringBuilder();

                string[] splittedinput = BotInput.input.Split(' ');
                if (splittedinput.Length < 2)
                {
                    return("Not enough arguments supplied. Use manual to see how this command works!");
                }
                int length = 0;

                if (!int.TryParse(splittedinput[1], out length))
                {
                    return("Supplied length is not a valid integer!");
                }
                if (length < 2)
                {
                    return("Length must be equal or longer than 2!");
                }
                BotInput.nstruct.maxresponselength = length;
                responsebuilder.Append("Set max response length to " + length.ToString());

                return(responsebuilder.ToString());
            }
Example #28
0
 public string purgenow(BotFunctionData BotInput)
 {
     StringBuilder responsebuilder = new StringBuilder();
     string[] splittedinput = BotInput.input.Split(' ');
     if (splittedinput.Length == 2)
     {
         int purgecount = 0;
         try { int.TryParse(splittedinput[1], out purgecount); }
         catch (Exception ex) { responsebuilder.Append(ex.Message); }
         int i = 0;
         System.Diagnostics.Stopwatch swatch = new System.Diagnostics.Stopwatch();
         swatch.Start();
         if (purgecount > 0)
         {
             long nodesbefore = BotInput.nstruct.totalnodespurged;
             while (i < purgecount)
             {
                 BotInput.nstruct.purgebadnodes();
                 i++;
             }
             long nodespurged = BotInput.nstruct.totalnodespurged - nodesbefore;
             swatch.Stop();
             responsebuilder.Append(string.Format("Done. Nodes purged: {0}. Operation took {1}ms.", nodespurged, swatch.ElapsedMilliseconds));
         }
     }
     else
         responsebuilder.Append(BotInput.nstruct.purgebadnodes());
     return responsebuilder.ToString();
 }
Example #29
0
 public string toggledebug(BotFunctionData BotInput)
 {
     StringBuilder responsebuilder = new StringBuilder();
     BotInput.nstruct.toggledebug();
     responsebuilder.Append("Toggled debug.");
     return responsebuilder.ToString();
 }
Example #30
0
 public string setratelimit(BotFunctionData BotInput)
 {
     StringBuilder responsebuilder = new StringBuilder();
     try
     {
         int ratetime = 30;
         int.TryParse(BotInput.input.Split(' ')[1], out ratetime);
         BotInput.nstruct.secondsbetweenresponse = ratetime;
         responsebuilder.AppendFormat("Set rate limit to {0} seconds.", BotInput.nstruct.secondsbetweenresponse);
     }
     catch (Exception ex)
     {
         logger.logerror(ex);
         responsebuilder.Append(ex.Message);
     }
     return responsebuilder.ToString();
 }
Example #31
0
        public string eightball(BotFunctionData BotInput)
        {
            StringBuilder responsebuilder = new StringBuilder();

            if (!persistence.ContainsKey("eightballanswers"))
            {
                persistence.Add(new savenode("eightballanswers", "Eightballs mang!"));
                persistence["eightballanswers"].childnodes.AddRange(new savenode[]
                {
                    new savenode("Yes", ""),
                    new savenode("No", ""),
                    new savenode("Ask a fennec. Fennecs know shit man. I don't know how, they just do D:", ""),
                    new savenode("Is that really a question you'd ask someone like me?", ""),
                    new savenode("Sure, why not?", ""),
                    new savenode("Do it carefully.", ""),
                    new savenode("Make the best of it!", ""),
                    new savenode("Why the F**K would you do that Dx","")

                });
            }
            else if (persistence["eightballanswers"].childnodes.Count < 1)
            {
                persistence["eightballanswers"].childnodes.AddRange(new savenode[]
                {
                    new savenode("Yes", ""),
                    new savenode("No", ""),
                    new savenode("Ask a fennec. Fennecs know shit man. I don't know how, they just do D:", ""),
                    new savenode("Is that really a question you'd ask someone like me?", ""),
                    new savenode("Sure, why not?", ""),
                    new savenode("Do it carefully.", ""),
                    new savenode("Make the best of it!", ""),
                    new savenode("Why the F**K would you do that Dx","")

                });
            }
            savenode eightballanswers = persistence["eightballanswers"];
            Random rnd = new Random();
            int x = rnd.Next(0, eightballanswers.childnodes.Count);
            responsebuilder.Append(eightballanswers.childnodes[x].name);
            if (BotInput.nstruct.debug)
                responsebuilder.AppendFormat("({0}/{1})", x, eightballanswers.childnodes.Count);
            return responsebuilder.ToString();
        }
Example #32
0
        public string recommendporn(BotFunctionData BotInput)
        {
            updateporn();
            StringBuilder responsebuilder = new StringBuilder();
            responsebuilder.Append("People apparently like: ");

            if (e621Posts <= 0)
                responsebuilder.Append("Nothing? That's strange...");
            else
            {
                Random postNumber = new Random();
                System.Net.WebClient client = new System.Net.WebClient();
                string imageURL = "Wrong somehow :|";
                string rating = "None :|";

                do
                {
                    int post = postNumber.Next(1, e621Posts);
                    string page = client.DownloadString("http://e621.net/post/show/" + post.ToString());

                    System.Text.RegularExpressions.Regex image = new System.Text.RegularExpressions.Regex("Size:.*href=\"([^\"]+)");
                    System.Text.RegularExpressions.Regex ratex = new System.Text.RegularExpressions.Regex("Rating:.*(Safe|Explicit|Questionable)");
                    var match = image.Match(page);

                    if (match.Success)
                    {
                        imageURL = match.Groups[1].Value;

                        match = ratex.Match(page);

                        if (match.Success)
                            rating = match.Groups[1].Value;
                    }
                    else
                        logger.log("Unable to find image in post " + post.ToString() + ", skipping", CedLib.Logging.Priority.Notice);
                }
                while (imageURL == "Wrong somehow :|");

                responsebuilder.Append(imageURL);
                responsebuilder.Append(" [" + rating + "]");
            }

            return responsebuilder.ToString();
        }
Example #33
0
        public string roll(BotFunctionData BotInput)
        {
            StringBuilder responsebuilder = new StringBuilder();
            try
            {
                string[] vars = BotInput.input.Split(' ')[1].Split('d');
                int dices = Convert.ToInt32(vars[0]);
                int sides = Convert.ToInt32(vars[1]);
                Random rnd = new Random();
                int total = 0;

                for (int i = 0; i < dices; i++)
                {
                    int rand = rnd.Next(1, sides);
                    responsebuilder.AppendFormat("{0} ", rand);
                    total += rand;
                }
                int average = total / dices;
                responsebuilder.AppendFormat("(avg:{0}, total:{1})", average, total);
            }
            catch (Exception ex)
            {
                responsebuilder.Append(ex.Message);
                logger.logerror(ex);
            }

            return responsebuilder.ToString();
        }
Example #34
0
 public string loadnow(BotFunctionData BotInput)
 {
     StringBuilder responsebuilder = new StringBuilder();
     System.Diagnostics.Stopwatch swatch = new System.Diagnostics.Stopwatch();
     swatch.Start();
     persistence.load(persistence.filename);
     swatch.Stop();
     responsebuilder.AppendFormat("Loaded from {0} in {1}ms!", persistence.filename, swatch.ElapsedMilliseconds);
     return responsebuilder.ToString();
 }
Example #35
0
 public string geturl(BotFunctionData BotInput)
 {
     StringBuilder responsebuilder = new StringBuilder();
     Random rnd = new Random();
     savenode url = persistence["urls"].childnodes[rnd.Next(0, persistence["urls"].childnodes.Count - 1)];
     if (url.name == "")
     {
         System.Net.WebClient x = new System.Net.WebClient();
         string source = x.DownloadString(url.obj);
         string title = System.Text.RegularExpressions.Regex.Match(source, @"\<title\b[^>]*\>\s*(?<Title>[\s\S]*?)\</title\>", System.Text.RegularExpressions.RegexOptions.IgnoreCase).Groups["Title"].Value;
         url.name = title;
     }
     responsebuilder.AppendFormat("Here is something that I heard other people like: {0} ({1})", url.obj, url.name);
     return responsebuilder.ToString();
 }
Example #36
0
 public string removeconjunction(BotFunctionData BotInput)
 {
     StringBuilder responsebuilder = new StringBuilder();
     if (BotInput.input.Split(' ').Length > 2)
     {
         try
         {
             string[] splittedstring = BotInput.input.Split(' ');
             BotInput.nstruct.translatenodes[splittedstring[1]].childnodes.Remove(BotInput.nstruct.translatenodes[splittedstring[2]]);
             responsebuilder.AppendFormat("Succesfully removed {0} from {1}", splittedstring[2], splittedstring[1]);
         }
         catch (Exception ex)
         { responsebuilder.Append(ex.Message); logger.logerror(ex); }
     }
     else
         responsebuilder.Append("Not enough arguments specified.");
     return responsebuilder.ToString();
 }
Example #37
0
 public string changexml(BotFunctionData BotInput)
 {
     //command format: changexml add|del|delchild|change %dictitem% %itemtoadd|del|change% %change|addargument%
     StringBuilder responsebuilder = new StringBuilder();
     string[] splittedinput = BotInput.input.Split(' ');
     if (splittedinput.Length < 3)
         return "You didn't specify enough parameters";
     if (!persistence.ContainsKey(splittedinput[2]))
         return "Specified item wasn't found in the xml file";
     switch (splittedinput[1])
     {
         case "add":
             if (splittedinput.Length < 5)
                 return "You didn't specify enough parameters for this command.";
             persistence[splittedinput[2]].childnodes.Add(new  savenode(splittedinput[3], splittedinput[4]));
             responsebuilder.AppendFormat("Succesfully added {0}({1}) to {2}", splittedinput[3], splittedinput[4], splittedinput[2]);
             break;
         case "delchild":
             if (splittedinput.Length < 4)
                 return "You didn't specify enough parameters for this command.";
             persistence[splittedinput[2]].childnodes.Remove(persistence[splittedinput[2]].childnodes[splittedinput[3]]);
             responsebuilder.AppendFormat("Succesfully removed {0}({1}) from {2}", splittedinput[3], splittedinput[4], splittedinput[2]);
             break;
         case "del":
             persistence.Remove(splittedinput[2]);
             responsebuilder.AppendFormat("Succesfully removed {0}", splittedinput[2]);
             break;
         case "change":
             if (splittedinput.Length < 5)
                 return "You didn't specify enough parameters for this command.";
             try
             {
                 return "Command not supported yet..";
             }
             catch (Exception ex)
             {
                 logger.logerror(ex); return ex.Message;
             }
             break;
         default:
             return "Command not recognized. Try manual for help on using changexml";
     }
     return responsebuilder.ToString();
 }
Example #38
0
 public string OnyAntiSpamMaxReturnLength(BotFunctionData BotInput)
 {
     // OnyAntiSpamMaxReturnLength %Length%
     string[] splittedstring = BotInput.input.Split(' ');
     int _OnySpamThreshold = 0;
     if (splittedstring.Length < 2)
         return "Currently, the max response length in characters is set to: " + RunVars.OnySpamThreshold.ToString();
     if (!int.TryParse(splittedstring[1], out _OnySpamThreshold))
         return "I sense a disturbance in the integer.";
     RunVars.OnySpamThreshold = _OnySpamThreshold;
     return "Succesfully set spam threshold to: " + RunVars.OnySpamThreshold;
 }
Example #39
0
            public string ToggleAntiOnySpam(BotFunctionData BotInput)
            {
                // Using this command will toggle Anti ony spam
                StringBuilder responsebuilder = new StringBuilder();
                string[] splittedstring = BotInput.input.Split(' ');

                RunVars.OnySpamProtection = !RunVars.OnySpamProtection;

                responsebuilder.Append("Done! Set spam protection to " + RunVars.OnySpamProtection.ToString());

                return responsebuilder.ToString();
            }
Example #40
0
 public string ShutdownGracefully(BotFunctionData BotInput)
 {
     StringBuilder responsebuilder = new StringBuilder();
     responsebuilder.Append("Shutting down bot..\nSaving playback..\n");
     BotInput.nstruct.saveplayback();
     responsebuilder.Append("Saved playback, saving XML persistence..(");
     responsebuilder.Append(savenow(new BotFunctionData(BotInput.nstruct)));
     responsebuilder.Append(")\nDone! Onymity will now go down.");
     RunVars.run = false;
     RunVars.Donify.Set();
     return responsebuilder.ToString();
 }
Example #41
0
            public string SetMaxSentenceLength(BotFunctionData BotInput)
            {
                StringBuilder responsebuilder = new StringBuilder();
                string[] splittedinput = BotInput.input.Split(' ');
                if (splittedinput.Length < 2)
                    return "Not enough arguments supplied. Use manual to see how this command works!";
                int length = 0;
                if (!int.TryParse(splittedinput[1], out length))
                    return "Supplied length is not a valid integer!";
                if (length < 2)
                    return "Length must be equal or longer than 2!";
                BotInput.nstruct.maxresponselength = length;
                responsebuilder.Append("Set max response length to " + length.ToString());

                return responsebuilder.ToString();
            }
Example #42
0
 public string printxml(BotFunctionData BotInput)
 {
     //syntax: printxml _dictionarypart_
     StringBuilder responsebuilder = new StringBuilder();
     string[] splittedinput = BotInput.input.Split(' ');
     if (splittedinput.Length < 2)
         return "Not enough commands specified";
     foreach (var node in persistence[splittedinput[1]].childnodes)
     {
         responsebuilder.AppendFormat("{0}({1}),", node.name, node.obj);
     }
     return responsebuilder.ToString();
 }
Example #43
0
 public string toggleratelimit(BotFunctionData BotInput)
 {
     StringBuilder responsebuilder = new StringBuilder();
     BotInput.nstruct.toggleratelimit();
     responsebuilder.Append("Set ratelimit to " + BotInput.nstruct.ratelimit.ToString() + ".");
     return responsebuilder.ToString();
 }
Example #44
0
        public string GetQuote(BotFunctionData BotInput)
        {
            StringBuilder responsebuilder = new StringBuilder();
            string[] splittedstring = BotInput.input.Split(' ');
            if (Quotes.Count < 1)
            {
                try
                {
                    Quotes.AddRange(System.Text.RegularExpressions.Regex.Split(System.IO.File.ReadAllText(QuotesFile), "\r\n.\r\n"));
                }
                catch (System.Exception ex)
                {
                    logger.logerror(ex); return ex.Message;
                }
            }
            Random rnd = new Random();
            responsebuilder.Append(Quotes[rnd.Next(0, Quotes.Count)]);

            return responsebuilder.ToString();
        }
Example #45
0
 public string savenow(BotFunctionData BotInput)
 {
     StringBuilder responsebuilder = new StringBuilder();
     System.Diagnostics.Stopwatch swatch = new System.Diagnostics.Stopwatch();
     swatch.Start();
     lock (persistence)
     {
         persistence.save(persistence.filename);
     }
     swatch.Stop();
     responsebuilder.AppendFormat("Saved to {0} in {1}ms!", persistence.filename, swatch.ElapsedMilliseconds);
     return responsebuilder.ToString();
 }
Example #46
0
 public string loadmemfile(BotFunctionData BotInput)
 {
     StringBuilder responsebuilder = new StringBuilder();
     try
     {
         responsebuilder.Append(BotInput.nstruct.loadplayback(BotInput.input.Split(' ')[1]));
     }
     catch (Exception ex)
     {
         logger.logerror(ex);
         responsebuilder.Append(ex.Message);
     }
     return responsebuilder.ToString();
 }