private void crawler2() { Crawl_HAP crawl = new Crawl_HAP(); List <string> old_list = DataBase.getoldlist(); try { crawl.maru_crawl(old_list); } catch { wf.WinformLog("@크롤실패"); return; } List <maru> maru = crawl.getlist(); if (!(maru.Count > 0)) { return; } wf.WinformLog("@크롤"); string new_title = maru[0].gettitle(); string new_domain = maru[0].getdomain(); string old_title = DataBase.getold()[0]; string old_domain = DataBase.getold()[1]; ulong tmp_server; ulong tmp_user; for (int i = 0; i < maru.Count; i++) { if (maru[i].gettitle() == old_title) { break; } for (int j = 0; j < list.Count(); j++) { if (maru[i].gettitle().Contains(list[j])) { tmp_server = Convert.ToUInt64(server[j]); tmp_user = Convert.ToUInt64(user[j]); try { if (discord.GetServer(tmp_server) != null && discord.GetServer(tmp_server).GetUser(tmp_user) != null) { discord .GetServer(tmp_server) .GetUser(tmp_user) .SendMessage(maru[i].getdomain()); } } catch { wf.WinformLog("@메세지 전송 실패"); return; } } } } ////////////크롤종료후 DataBase.setold(new_title, new_domain); DataBase.setoldlist(crawl.getalllist()); wf.WinformOld(new_title, new_domain); try { discord.SetGame(new_title); } catch { } }
private async Task OnMessageReceivedAsync(SocketMessage s) { var msg = s as SocketUserMessage; // Ensure the message is from a user/bot if (msg == null) { return; } if (msg.Author.Id == _discord.CurrentUser.Id) { return; // Ignore self when checking commands } var context = new SocketCommandContext(_discord, msg); // Create the command context int argPos = 0; // Check if the message has a valid command prefix if (msg.HasStringPrefix("!", ref argPos) || msg.HasMentionPrefix(_discord.CurrentUser, ref argPos)) { var result = msg.Content.ToString(); var result2 = result.Split(' '); var command = result2[0].Substring(1); var result3 = ""; for (int i = 1; i < result2.Length; i++) { result3 += result2[i]; if (i != result2.Length - 1) { result3 += " "; } } var innerText = result3; var author = msg.Author.Id.ToString(); var server = msg.Channel.Id.ToString(); string list_txt; string[] cut_txt; switch (command) { case "님아": await context.Channel.SendMessageAsync("왜요"); break; case "크롤": #region 크롤 await context.Channel.SendMessageAsync("크롤"); if (wf.checkPerm(author)) { if (gettgl()) { await context.Channel.SendMessageAsync(" 종료"); settgl(false); } else if (!gettgl()) { await context.Channel.SendMessageAsync(" 시작"); settgl(true); } } else { await context.Channel.SendMessageAsync("ㄴ"); } break; #endregion case "추가": #region 추가 if (result3 != "" && !result3.Contains("|")) { await context.Channel.SendMessageAsync( "검색어 추가요?\r\n============\r\n"); // string[] tmp = result3.Split('\"'); string tmp2 = ""; for (int i = 0; i < tmp.Length; i++) { if (tmp[i] != "\r\n" && tmp[i] != "\n" && tmp[i] != "" && tmp[i].Length < 40) { if (!tmp[i].Contains("<@")) { db.listadd(tmp[i], author, server); tmp2 += tmp[i] + "\r\n"; } } } await context.Channel.SendMessageAsync(tmp2 + "============\r\n됨"); db.filesave(); await context.Channel.SendMessageAsync("저장함"); } #endregion break; case "제거": #region 제거 if (result3 != "") { string[] tmp = result3.Split('\"'); string tmp2 = ""; for (int i = 0; i < tmp.Length; i++) { if (tmp[i] != "\r\n" && tmp[i] != "\n" && tmp[i] != "" && tmp[i].Length < 40) { if (!tmp[i].Contains("<@")) { if (db.listfind(tmp[i]) || tmp[i] == "전체") { if (db.listdel(tmp[i], author, server)) { tmp2 += tmp[i] + "\r\n"; } else { tmp2 += tmp[i] + " 이건 님한테 없음\r\n"; } } else { tmp2 += tmp[i] + "이런거 없음\r\n"; } } } } await context.Channel.SendMessageAsync( "검색어 제거요?\r\n============\r\n" + tmp2 + "============\r\n됨"); if (result3 != "전체") { db.filesave(); await context.Channel.SendMessageAsync("저장함"); } else { await context.Channel.SendMessageAsync("저장은 안했음"); } } else { await context.Channel.SendMessageAsync("뭐요"); } #endregion break; case "강제제거": #region 강제제거 if (wf.checkPerm(author)) { if (result3 != "") { if (db.listfind(result3) || result3 == "전체") { if (db.listdel(result3, "강제", server)) { await context.Channel.SendMessageAsync(result3 + " 지움"); } else { await context.Channel.SendMessageAsync("이님한테 그런거 없음;"); } } else { await context.Channel.SendMessageAsync("그런거 없음;"); } } else { await context.Channel.SendMessageAsync("뭐요"); } } #endregion break; case "리스트": #region 리스트 list_txt = makelist(author); cut_txt = list_txt.Split('|'); for (int i = 0; i < cut_txt.Length; i++) { await context.Channel.SendMessageAsync(cut_txt[i]); } #endregion break; case "체크": #region 체크 if (result3 != "") { await context.Channel.SendMessageAsync("체크요?"); var list = db.list; string sum = ""; for (int i = 0; i < list.Count; i++) { if (db.user[i] == author) { if (result3.Contains(list[i])) { sum += "\"" + list[i] + "\"" + "\r\n"; } } } sum = "============" + "\r\n" + sum + "============" + "\r\n이것들 걸림"; await context.Channel.SendMessageAsync(sum); } #endregion break; case "검색": #region 검색 if (result3 != "") { await context.Channel.SendMessageAsync("검색요?"); var list = db.list; string sum = ""; for (int i = 0; i < list.Count; i++) { if (db.user[i] == author) { if (list[i].Contains(result3)) { sum += "\"" + list[i] + "\"" + "\r\n"; } } } sum = "============" + "\r\n" + sum + "============" + "\r\n이렇게 있네요"; await context.Channel.SendMessageAsync(sum); } #endregion break; case "엿보기": #region 엿보기 if (result3 != "") { list_txt = makelist(result3); cut_txt = list_txt.Split('|'); for (int i = 0; i < cut_txt.Length; i++) { await context.Channel.SendMessageAsync(cut_txt[i]); } } #endregion break; case "저장": #region 저장 if (wf.checkPerm(author)) { db.filesave(); await context.Channel.SendMessageAsync("저장 완료"); } else { await context.Channel.SendMessageAsync("ㄴ"); } #endregion break; case "뭐봄": case "머봄": case "뭐함": case "머함": case "모함": case "머해": case "뭐해": case "모해": #region var domain = Program.form.domainbox.Text; var dir = Directory.GetCurrentDirectory() + @"\data"; Crawl_HAP crawler = new Crawl_HAP(); WebClient client = new WebClient(); //await context.Channel.SendMessageAsync("", false, wf.WinformGetOld()); await context.Channel.SendMessageAsync(wf.WinformGetOldString()); #endregion break; } } }