public async Task AddEducation(string word, string reply) { var serverId = Context.Guild.Id; var sql = string.Format("SELECT * FROM 自動応答 WHERE サーバーID = '{0}' AND 言葉 = '{1}'", serverId, word); var table = DBAccesser.RunSQLGetResult(sql); sql = string.Format("INSERT INTO 自動応答 VALUES ('{0}', '{1}', '{2}')", serverId, word, reply); if (DBAccesser.RunSQL(sql)) { await ReplyAsync(string.Format("言葉:「{0}」 返事:「{1}」を覚えました", word, reply)); } else { await ReplyAsync("うまく覚えられませんでした・・・"); } }
public async Task ListEducation() { var serverId = Context.Guild.Id; var sql = string.Format("SELECT * FROM 自動応答 WHERE サーバーID = '{0}'", serverId); var table = DBAccesser.RunSQLGetResult(sql); foreach (DataRow row in table.Rows) { var word = row["言葉"].ToString(); var reply = row["返事"].ToString(); await ReplyAsync("言葉:" + word); await ReplyAsync("返事:" + reply); } }
public async Task Reply(SocketUserMessage message) { var channel = message.Channel as SocketGuildChannel; var serverId = channel.Guild.Id; var word = message.Content; var sql = string.Format("SELECT * FROM 自動応答 WHERE サーバーID = '{0}' AND 言葉 = '{1}'", serverId, word); var table = DBAccesser.RunSQLGetResult(sql); foreach (DataRow row in table.Rows) { var reply = row["返事"].ToString(); await message.Channel.SendMessageAsync(reply); } }
/// <summary> /// ユーザーが会議から抜けたときの処理 /// </summary> /// <param name="user"></param> /// <returns></returns> private async Task UserLeft(SocketGuildUser user) { // 退出通知メッセージを流す var sql = string.Format("SELECT * FROM ログアウト WHERE サーバーID = '{0}'", user.Guild.Id); var table = DBAccesser.RunSQLGetResult(sql); if (table.Rows.Count > 0) { var row = table.Rows[0]; var channelId = ulong.Parse(row["チャンネルID"].ToString()); var word = row["内容"].ToString(); word = word.Replace("{ServerName}", user.Guild.Name); word = word.Replace("{UserName}", user.Username); await user.Guild.GetTextChannel(channelId).SendMessageAsync(word); } }
public async Task AddLoginNotification(string word) { var serverId = Context.Guild.Id; var channelId = Context.Channel.Id; var sql = string.Format("SELECT * FROM ログイン WHERE サーバーID = '{0}'", serverId); var table = DBAccesser.RunSQLGetResult(sql); if (table.Rows.Count > 0) { sql = string.Format("UPDATE ログイン SET チャンネルID = '{0}', 内容 = '{1}' WHERE サーバーID = '{2}'", channelId, word, serverId); if (DBAccesser.RunSQL(sql)) { await ReplyAsync("ログイン通知を設定し直しました"); } else { await ReplyAsync("ログイン通知を設定できませんでした"); } } else { sql = string.Format("INSERT INTO ログイン VALUES ('{0}', '{1}', '{2}')", serverId, channelId, word); if (DBAccesser.RunSQL(sql)) { await ReplyAsync("ログイン通知を設定しました"); } else { await ReplyAsync("ログイン通知を設定できませんでした"); } } }
public async Task SendReply(SocketUserMessage message) { var channel = message.Channel as SocketGuildChannel; var serverId = channel.Guild.Id; var content = message.Content; var sql = string.Format("SELECT * FROM 自動応答 WHERE サーバーID = '{0}'", serverId); using (var table = DBAccesser.RunSQLGetResult(sql)) { var list = new List <string>(); foreach (DataRow row in table.Rows) { string word = row["言葉"].ToString(); string reply = row["返事"].ToString(); if (content.Contains(word)) { list.Add(reply); } } if (list.Count > 0) { var rnd = new Random(); var reply = list[rnd.Next(list.Count)]; if (reply == "$") { await message.Channel.SendMessageAsync(API.Talk.GetChat(content)); } else { await message.Channel.SendMessageAsync(reply); } } } await Task.Delay(1); }
public async Task AddLoginNotification(string twitterId, string english = "false") { var isEnglish = english == "true" ? true : false; var channelId = Context.Channel.Id; var sql = string.Format("SELECT * FROM Twitter通知 WHERE チャンネルID = '{0}' AND TwitterID = '{1}'", channelId, twitterId); var table = DBAccesser.RunSQLGetResult(sql); if (table.Rows.Count > 0) { sql = string.Format("UPDATE Twitter通知 SET 英語 = '{0}' WHERE チャンネルID = '{1}', TwitterID = '{2}'", isEnglish, channelId, twitterId); if (DBAccesser.RunSQL(sql)) { if (isEnglish) { await ReplyAsync(string.Format("このチャンネルで「{0}」さんのツイートを日本語に翻訳して通知します。", twitterId)); } else { await ReplyAsync(string.Format("このチャンネルで「{0}」さんのツイートを通知します。", twitterId)); } } else { await ReplyAsync("Twitter通知を登録できませんでした"); } } else { sql = string.Format("INSERT INTO Twitter通知 VALUES ('{0}', '{1}', '{2}')", channelId, twitterId, isEnglish); if (DBAccesser.RunSQL(sql)) { if (isEnglish) { await ReplyAsync(string.Format("このチャンネルで「{0}」さんのツイートを日本語に翻訳して通知します。", twitterId)); } else { await ReplyAsync(string.Format("このチャンネルで「{0}」さんのツイートを通知します。", twitterId)); } } else { await ReplyAsync("Twitter通知を登録できませんでした"); } } }
public void Next(Status status) { var screenName = status.User.ScreenName; // TUSkyBlock等 var name = status.User.Name; // TUSB等 var text = status.Text; // つぶやき内容 var image = ""; var id = status.Id; if (status.Entities.Media != null) { image = status.Entities.Media.First().MediaUrlHttps; } // 自動リプライ応答 if (text.Contains("@TUSkyBlock") && (!text.Contains("RT ")) && screenName != "TUSkyBlock") { var str = Docomo.ChatAI.GetChat(text, screenName); str = "@" + screenName + " " + str; token.Statuses.Update(new { status = str, in_reply_to_status_id = id }); } // つぶやき通知 var sql = string.Format("SELECT * FROM Twitter通知 WHERE TwitterID = '{0}'", screenName); var table = DBAccesser.RunSQLGetResult(sql); if (table.Rows.Count > 0) { var title = $"{name}さんのつぶやき"; if (text.Contains("RT ")) { title = $"{name}さんのリツイート"; } var eb = new EmbedBuilder() { Author = new EmbedAuthorBuilder() { IconUrl = new Uri(status.User.ProfileImageUrlHttps).ToString(), Name = $"{name}", Url = $"https://twitter.com/{screenName}", }, Color = new Color(0x55ACEE), Title = title, Url = new Uri($"https://twitter.com/{screenName}/status/{status.Id}").ToString(), Description = $"{text}", ImageUrl = image, ThumbnailUrl = status.User.ProfileImageUrlHttps, Footer = new EmbedFooterBuilder() { IconUrl = status.User.ProfileImageUrlHttps, Text = $"ID:{screenName} | フォロー:{status.User.FriendsCount} フォロワー:{status.User.FollowersCount}" } }; var channelid = ulong.Parse(table.Rows[0][0].ToString()); var channel = _client.GetChannel(channelid) as SocketTextChannel; channel.SendMessageAsync("", embed: eb); } }