static void crawler3() { while (true) { progress(); Thread.Sleep(10000); if (tgl_crawl) { #region crawler2 List <string> old_list = DB.getoldlist(); string old_title = DB.getold()[0]; string old_domain = DB.getold()[1]; try { //crawl.maru_crawl(old_list); if (form.cb.Checked) { crawl.direct_crwal(old_list, form); } else { crawl.maru_crawl(old_list); } } catch { wf.WinformLog("@크롤링 실패"); continue; } List <maru> maru = crawl.getlist(); if (!(maru.Count > 0)) { wf.WinformOld(old_title, old_domain); try { discordclient.SetGameAsync(old_title); } catch { wf.WinformLog("@타이틀 배치 실패"); } continue; } string new_title = maru[0].gettitle(); string new_domain = maru[0].getdomain(); ulong tmp_server; ulong tmp_user; try { discordclient.SetGameAsync(new_title); } catch { wf.WinformLog("@타이틀 배치 실패"); } maru.Reverse(); for (int i = 0; i < maru.Count; i++) { if (maru[i].gettitle() == old_title) { break; } new_title = maru[i].gettitle(); new_domain = maru[i].getdomain(); for (int j = 0; j < list.Count(); j++) { if (new_title.Contains(list[j])) { tmp_server = Convert.ToUInt64(server[j]); tmp_user = Convert.ToUInt64(user[j]); if (discordclient.GetChannel(tmp_server) != null && discordclient.GetChannel(tmp_server).GetUser(tmp_user) != null) { int fail = 0;//성공 do { try { SendDM(discordclient .GetChannel(tmp_server) .GetUser(tmp_user), new_title, Properties.Settings.Default.URL + new_domain); wf.WinformLog("@" + discordclient.GetUser(tmp_user) + "가 " + new_title + "를 받음\n"); } catch { wf.WinformLog("@메세지 전송 실패\n"); fail++; } finally { fail = 0; } } while (0 < fail && fail < 10);//1~최대10회 실패동안 반복 Thread.Sleep(1000); } } } } ////////////크롤종료후 wf.WinformOld(new_title, Properties.Settings.Default.URL + new_domain); DB.setold(new_title, new_domain); DB.setoldlist(crawl.getalllist()); DB.filesave(); #endregion } } }
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 { } }