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()); }
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()); }
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(); }
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()); }
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()); }
public string toggledebug(BotFunctionData BotInput) { StringBuilder responsebuilder = new StringBuilder(); BotInput.nstruct.toggledebug(); responsebuilder.Append("Toggled debug."); return(responsebuilder.ToString()); }
public string toggleratelimit(BotFunctionData BotInput) { StringBuilder responsebuilder = new StringBuilder(); BotInput.nstruct.toggleratelimit(); responsebuilder.Append("Set ratelimit to " + BotInput.nstruct.ratelimit.ToString() + "."); return(responsebuilder.ToString()); }
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()); }
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()); }
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()); }
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()); }
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()); }
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()); }
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()); }
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(); }
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()); }
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); }
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()); }
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()); }
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(); }
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()); }
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()); }
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()); }
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(); }
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()); }
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()); }
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()); }
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(); }
public string toggledebug(BotFunctionData BotInput) { StringBuilder responsebuilder = new StringBuilder(); BotInput.nstruct.toggledebug(); responsebuilder.Append("Toggled debug."); return responsebuilder.ToString(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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; }
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(); }
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(); }
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(); }
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(); }
public string toggleratelimit(BotFunctionData BotInput) { StringBuilder responsebuilder = new StringBuilder(); BotInput.nstruct.toggleratelimit(); responsebuilder.Append("Set ratelimit to " + BotInput.nstruct.ratelimit.ToString() + "."); return responsebuilder.ToString(); }
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(); }
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(); }
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(); }