public static async Task <string> BotThinkAsync(string input, string botName) { //Remove bot name from message input if (input.StartsWith(botName, StringComparison.OrdinalIgnoreCase)) { input = input.Substring(input.IndexOf(',', StringComparison.OrdinalIgnoreCase) + 1).Trim(); } else if (input.TrimEnd().EndsWith(botName, StringComparison.OrdinalIgnoreCase)) { input = input.Substring(0, input.LastIndexOf(botName, StringComparison.OrdinalIgnoreCase)).Trim(); } try { if (cleverbotSession == null) { cleverbotSession = new CleverbotSession(Settings.Default.CleverbotAPI); } CleverbotResponse answer = await cleverbotSession.GetResponseAsync(input).ConfigureAwait(false); return(answer.Response); } catch { cleverbotSession = new CleverbotSession(Settings.Default.CleverbotAPI); return("Sorry, but i can't think right now"); } }
public async Task CleverbotLoop() { CleverbotSession cleverbot = new CleverbotSession("your-api-key"); Console.WriteLine("Hello in the Cleverbot.Net test app, please type your message.\n"); string msg = Console.ReadLine(); Console.Write("..."); CleverbotResponse r = await cleverbot.GetResponseAsync(msg); Console.CursorLeft = 0; Console.WriteLine(r.Response); while (true) { Console.ForegroundColor = ConsoleColor.Gray; msg = Console.ReadLine(); Console.Write("..."); r = await r.RespondAsync(msg); Console.CursorLeft = 0; Console.WriteLine(r.Response); } }
public void messageReceived() { var session = CleverbotSession.NewSession("oWBfq3FGSQA8Xo50", "PyQAXcJswt7DsPply9lSq2e1pN0bd1wK"); myBot.discord.MessageReceived += async(s, e) => { if (!e.Message.IsAuthor && e.Message.IsMentioningMe()) { string msg = e.Message.Text.Replace("@" + myBot.discord.CurrentUser.Name + " ", "").Replace("!", ""); foreach (BotCommand cmd in myBot.commands) { if (msg == cmd.getCommand()) { return; } } try { await e.Channel.SendIsTyping(); await e.Channel.SendMessage(session.Send(msg)); }catch (ArgumentException exc) { await e.Channel.SendMessage("Something went wrong with the bot :("); } } }; }
public ChatSession(string apiKey, IGuildUser user, IChannel channel) { Guild = user.Guild.Id; Channel = channel.Id; User = user.Id; Session = new CleverbotSession(apiKey); }
private void sendBotMessage(BotUser user, string message) { CleverbotSession botSession = user.BotSession; if (botSession != null) { Clients.Caller.onMessageReceived(message, true); string response = botSession.GetResponse(message).Response; string processedResponse = ProcessBotResponse(response); Clients.Caller.onMessageReceived(processedResponse, false); } }
static void Main() { string message; var session = CleverbotSession.NewSession("apiUser", "apiKey"); do { Console.Write("Type your message: "); message = Console.ReadLine(); Console.Write("Bot: "); Console.WriteLine(session.Send(message)); } while (message.ToLower().Trim() != "exit"); }
public string CallCleverbot() { string question, answer = ""; //API User and Pass Keys var session = CleverbotSession.NewSession("0VrnWzbEZNTu267C", "SQ6OtXq07kede794AByhwee7pMA6aewT"); Console.Write("Ask Cleverbot Something:"); question = Console.ReadLine(); answer = session.Send(question); Console.WriteLine(answer); return(answer); }
private CleverbotSession GetSession(IUser user) { while (true) { if (_sessions.TryGetValue(user, out var session)) { return(session); } var newSession = new CleverbotSession(_apiKey, false); if (_sessions.TryAdd(user, newSession)) { return(newSession); } } }
public SpeechHandler() { session = Cleverbot.createSession(); recognizer = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US")); synth = new SpeechSynthesizer(); recognizer.SetInputToDefaultAudioDevice(); synth.SetOutputToDefaultAudioDevice(); DictationGrammar defaultDictationGrammar = new DictationGrammar(); defaultDictationGrammar.Name = "default dictation"; defaultDictationGrammar.Enabled = true; recognizer.LoadGrammar(defaultDictationGrammar); recognizer.SpeechRecognized += new EventHandler <SpeechRecognizedEventArgs>(sre_SpeechRecognized); }
public static void Init() { if (Bot.Config.CleverbotEnabled) { IsServiceAvailable = CreateCleverBotSession(Bot.Config.CleverbotNick); if (!IsServiceAvailable) { try { cleverBotSession = CleverbotSession.NewSession(Bot.Config.CleverbotAPIUser, Bot.Config.CleverbotAPIKey); } catch (Exception e) { Console.WriteLine("Error while setting up Cleverbot-API...\r\nExceptionMsg: " + e.Message); } } } }
public Session(Settings settings) { _settings = settings; Console.WriteLine("Setting up endpoint urls..."); ApiEndpoint.ServerStatsUrl = _settings.ServerEndpointStats; Console.WriteLine("Setting up translation..."); _translate = new Translate(_log, settings.AzureToken, settings.TranslateTo); Console.WriteLine("Setting up github webhook..."); GithubWebhookDelivery callback = GithubDelivery; _wcfServer = new WCFServer(callback); _wcfServer.Start(); Console.WriteLine("Getting stats history..."); if (File.Exists(Const.SERVICE_HOOKAPP_HISTORY)) { _serviceHookappStats = JsonConvert.DeserializeObject <List <ServerStats> >(File.ReadAllText(Const.SERVICE_HOOKAPP_HISTORY)); } else { _serviceHookappStats = new List <ServerStats>(); } Console.WriteLine("Setting up github access..."); var credentials = new InMemoryCredentialStore(new Credentials(_settings.GithubToken)); _githubClient = new GitHubClient(new ProductHeaderValue("HookApp")); _githubClient.Credentials = new Credentials(_settings.GithubToken); Console.WriteLine("Setting up cleverbot..."); _cleverbot = new CleverbotSession(_settings.CleverbotToken); Console.WriteLine("Setting up discord..."); _client = new DiscordSocketClient(); _client.Log += _client_Log; _client.Ready += _client_Ready; _client.MessageReceived += _client_MessageReceived; InstallDiscordCommands(); }
protected override void OnConfigChanged(string arg, string value) { if (string.IsNullOrWhiteSpace(value)) { return; } switch (arg) { case "add": var session = CleverbotSession.NewSession(ApiUser, ApiKey); Sessions.Add(value, session); this[arg] = null; this[value] = session.BotNick; break; case "remove": Sessions.Remove(value); this[arg] = null; break; } }
public void Start() { _client = new DiscordClient(); _client.Log.Message += (s, e) => Console.WriteLine($"[{e.Severity} - {DateTime.UtcNow.Hour}:{DateTime.UtcNow.Minute}:{DateTime.UtcNow.Second}] {e.Source}: {e.Message}"); CleverbotSession session = null; _client.UsingCommands(x => { x.PrefixChar = '+'; x.AllowMentionPrefix = true; x.HelpMode = HelpMode.Public; }); char p = '+'; // var sepchar = Path.DirectorySeparatorChar; string topic = "Ready to play a Mini TWOW!"; _client.GetService <CommandService>().CreateCommand("botok") //create command .Alias("ping", "status") // add some aliases .Description("Checks if the bot is online.") //add description, it will be shown when +help is used .Do(async e => { if (IsMTWOWChannel(e.Server.Id, e.Channel.Id)) { await e.Channel.SendMessage($"bot is online \ud83d\udc4c"); } }); _client.GetService <CommandService>().CreateCommand("kill") //killswitch .Alias("shutdown") .Description("Shuts down the bot if correct parameter is given") .Parameter("keyword", ParameterType.Multiple) .Do(e => { string keyhash = "0a7a27bedd1f822ac176d55217c0cdc9e8573f173d2b1a525e3607a7614a29b7"; try { if (e.Channel.IsPrivate && sha256_hash(e.GetArg("keyword")) == keyhash) { System.Environment.Exit(1); } } catch { } }); _client.GetService <CommandService>().CreateCommand("prepare") .Alias("setup") .Description("Prepares the current channel for a Mini TWOW.") .Do(async e => { User bot = e.Server.GetUser(_client.CurrentUser.Id); if (bot.GetPermissions(e.Channel).ManageChannel) { if (e.User.GetPermissions(e.Channel).ManageChannel) { Clear("data", e.Server.Id); SaveLine("data", e.Channel.Id.ToString(), e.Server.Id, 1); SaveLine("data", "0", e.Server.Id, 2); SaveLine("data", "null", e.Server.Id, 3); Clear("users", e.Server.Id); //see wiki for dev notes/file layout await e.Channel.Edit(e.Channel.Name, $"{topic}\n{e.Channel.Topic.Replace($"{topic}", "")}", e.Channel.Position); await e.Channel.SendMessage($"This channel is now ready to play Mini TWOWs!"); } else { await e.Channel.SendMessage($"You must have the `MANAGE_CHANNELS` permission to use this command!"); } } else { await e.Channel.SendMessage($"Please give the bot permissions to manage the channel!"); } }); _client.GetService <CommandService>().CreateCommand("create") .Alias("make") .Description("Creates a Mini TWOW game.") .Do(async e => { ulong mtChannel = 000000000000000000; string data = LoadLine("data", e.Server.Id, 1); bool parseResult = ulong.TryParse(data, out mtChannel); if (parseResult) { if (e.Channel.Id == mtChannel && e.Server.GetUser(_client.CurrentUser.Id).GetPermissions(e.Channel).SendMessages) { int gamestatus = 100; data = LoadLine("data", e.Server.Id, 2); bool newParseResult = int.TryParse(data, out gamestatus); if (newParseResult) { if (gamestatus == 0) { SaveLine("data", "1", e.Server.Id, 2); SaveLine("data", e.User.Id.ToString(), e.Server.Id, 3); Clear("users", e.Server.Id); await e.Channel.SendMessage($"You have successfully created a Mini TWOW game! Run `{p}join` to join the game, and run `{p}start` when you're ready to start the game."); } else { await e.Channel.SendMessage($"A game is already running. Please wait for it to finish!"); } } else { await e.Channel.SendMessage($"The data file has been corrupted. Please ask a user with `MANAGE_CHANNELS` perms to do `{p}prepare`."); } } else { // await e.Channel.SendMessage($"Please go to <#{mtChannel}> to start a Mini TWOW!"); } } else { await e.Channel.SendMessage($"Please get a user with `MANAGE_CHANNELS` permissions to run the `{p}prepare` command before starting a Mini TWOW."); } }); _client.GetService <CommandService>().CreateCommand("join") .Description("Joins an active Mini TWOW game.") .Do(async e => { try { if (IsMTWOWChannel(e.Server.Id, e.Channel.Id)) { int gamestatus = 100; string data = LoadLine("data", e.Server.Id, 2); bool parseResult = int.TryParse(data, out gamestatus); if (parseResult) { if (gamestatus == 1) { string[] users = LoadFile("users", e.Server.Id); if (users == null) { string newUsers = $"{e.User.Id.ToString()}\n"; SaveFile("users", newUsers, e.Server.Id); await e.Channel.SendMessage($"You have successfully joined the game."); } bool inGame = false; foreach (string user in users) { ulong userID = 000000000000000000; bool parse = ulong.TryParse(user, out userID); if (parse) { inGame |= userID == e.User.Id; } } if (inGame) { await e.Channel.SendMessage($"You are already in the game!"); } else { string newUsers = users.ToString(); newUsers += $"{e.User.Id.ToString()}\n"; SaveFile("users", newUsers, e.Server.Id); await e.Channel.SendMessage($"You have successfully joined the game."); } } else if (gamestatus == 0) { await e.Channel.SendMessage($"No game is currently running. Type `{p}create` to create a game!"); } else { await e.Channel.SendMessage($"It is too late to join the game!"); } } else { await e.Channel.SendMessage($"The data file has been corrupted. Please ask a user with `MANAGE_CHANNELS` permissions to do `{p}prepare`."); } } } catch (Exception error) { Console.WriteLine($"[ERROR] somethin borked during {p}join: {error.ToString()}"); } }); _client.GetService <CommandService>().CreateCommand("chat") .Description("Talk with the bot") .Parameter("sentence", ParameterType.Unparsed) .Do(async e => { try { if (session == null) { string ChatUser = File.ReadAllLines("logins.txt")[1]; string ChatKey = File.ReadAllLines("logins.txt")[2]; session = await CleverbotSession.NewSessionAsync(ChatUser, ChatKey); } string response = await session.SendAsync(e.GetArg("sentence")); await e.Channel.SendMessage(response); } catch (Exception error) { Console.WriteLine($"[ERROR] An issue occured while trying to +chat: {error.ToString()}"); } }); _client.GetService <CommandService>().CreateGroup("test", cgb => { cgb.CreateCommand("save") .Description("Multi-server data test") .Parameter("data", ParameterType.Unparsed) .Do(async e => { //Save("data", e.GetArg("data"), e.Server.Id, 1); //await e.Channel.SendMessage($"data saved"); await e.Channel.SendMessage($"no"); }); cgb.CreateCommand("load") .Description("Multi-server data test") .Parameter("line", ParameterType.Required) .Do(async e => { try { /* int i = 0; // line number * bool success = int.TryParse(e.GetArg("line"), out i); // output line number to line number * if (success) // check if line number was parsed successfully * { * string data = Load("data", e.Server.Id, i); // run Load with required data * if (data != null) // check if operation was successful * await e.Channel.SendMessage(data); // output line * else if it failed... * await e.Channel.SendMessage("file/line didnt exist"); // ...then say it failed * } * else * { * await e.Channel.SendMessage($"failed to parse input ({e.GetArg("line")})"); // input wasn't an int * }*/ await e.Channel.SendMessage($"no"); } catch (Exception error) { await e.Channel.SendMessage($"error: {error.ToString()}"); } }); }); _client.Ready += (s, e) => { Console.WriteLine($"[{DateTime.UtcNow.Hour}:{DateTime.UtcNow.Minute}:{DateTime.UtcNow.Second}] Connected as {_client.CurrentUser.Name}#{_client.CurrentUser.Discriminator}"); }; _client.ExecuteAndWait(async() => { string token = File.ReadAllLines("logins.txt")[0]; await _client.Connect(token, TokenType.Bot); }); }
public async Task RunBotAsync() { string botToken = ""; // Get bot token if (File.Exists("botToken.txt")) { botToken = File.ReadAllText("botToken.txt"); } if (string.IsNullOrEmpty(botToken)) { Console.WriteLine("Bot Token does not exist, make sure its correct in the botToken.txt file"); return; } if (File.Exists("emailPassword.txt")) { emailPassword = File.ReadAllText("emailPassword.txt"); } if (File.Exists("cleverbotToken.txt")) { cleverBotApiKey = File.ReadAllText("cleverbotToken.txt"); } random = new Random(); _client = new DiscordSocketClient(); _commands = new CommandService(); _services = new ServiceCollection() .AddSingleton(_client) .AddSingleton(_commands) .AddPaginator(_client) .BuildServiceProvider(); cleverbot = new CleverbotSession(cleverBotApiKey); _client.Log += Log; _client.Ready += OnReady; _client.LeftGuild += OnLeftGuild; _client.JoinedGuild += OnJoinedGuild; _client.UserJoined += OnUserJoined; _client.MessageReceived += async(arg) => { if (globalUsers == null) { return; } if (arg is null || arg.Author.IsBot) { return; } if (arg.Content.Contains("https://discord.gg/")) { await arg.DeleteAsync(); } GlobalUser user = globalUsers.FirstOrDefault(x => x.UserID == arg.Author.Id); if (user == default(GlobalUser)) { globalUsers.Add(new GlobalUser(arg.Author)); } if (arg.Content.ToLower().Contains("i love you")) { await Responses.ILoveYou(user, arg); return; } }; _client.MessageUpdated += OnMessageUpdated; _client.LatencyUpdated += OnUpdate; _client.UserVoiceStateUpdated += Modules.VoiceChannelManager.OnUserJoinedVC; _client.ChannelDestroyed += Modules.VoiceChannelManager.CheckVoiceChannelOnDelete; await RegisterCommandsAsync(); await _client.LoginAsync(TokenType.Bot, botToken); await _client.StartAsync(); await Task.Delay(-1); }
public static string getChatResponse(CleverbotSession session, string message) { string response = session.Send(message); return(response); }
public static CleverbotSession createSession() { var session = CleverbotSession.NewSession(apiUser, apiKey); return(session); }