static void ProcessTest(string[] args) { switch (args[0]) { case "cmt": var x = DCCommon.GetComments(DCParser.ParseBoardView(Net.NetCommon.DownloadString("https://gall.dcinside.com/board/view/?id=maplestory&no=6712726&exception_mode=recommend&page=1")), "0"); Console.Instance.WriteLine(x); break; case "board": DCParser.ParseBoardView(Net.NetCommon.DownloadString("https://gall.dcinside.com/board/view/?id=maplestory&no=6712726&exception_mode=recommend&page=1")); break; case "gall": var url = "https://gall.dcinside.com/board/lists?id=watch"; var g = DCParser.ParseGallery(Net.NetCommon.DownloadString(url)); break; case "galllist": Console.Instance.WriteLine(DCCommon.GetGalleryList()); break; case "mgalllist": Console.Instance.WriteLine(DCCommon.GetMinorGalleryList()); break; } }
static void ProcessParseComments(string[] args) { LoadGalleryList(); bool is_minorg = minor_galleries.ContainsValue(args[0]); if (ESNO == "") { var url = ""; if (is_minorg) { url = $"https://gall.dcinside.com/mgallery/board/view/?id={args[0]}&no={args[1]}"; } else { url = $"https://gall.dcinside.com/board/view/?id={args[0]}&no={args[1]}"; } var client = NetCommon.GetDefaultClient(); if (PHPSESSID != "") { client.Headers.Add(System.Net.HttpRequestHeader.Cookie, "PHPSESSID=" + PHPSESSID); } var html = client.DownloadString(url); var article = DCParser.ParseBoardView(html, is_minorg); ESNO = article.ESNO; } var comments = DCCommon.GetComments(new DCArticle { OriginalGalleryName = args[0], Id = args[1], ESNO = ESNO }, "1"); Console.Instance.WriteLine(comments); using (var progressBar = new Console.ConsoleProgressBar()) { int tcount = comments.total_cnt; int count = comments.comment_cnt; for (int i = 2; count < tcount; i++) { progressBar.SetProgress(((count) / (float)(tcount)) * 100); comments = DCCommon.GetComments(new DCArticle { OriginalGalleryName = args[0], Id = args[1], ESNO = ESNO }, i.ToString()); if (comments.comment_cnt == 0) { break; } Console.Instance.WriteLine(comments); count += comments.comment_cnt; } } }
static void LoadGalleryList() { if (galleries == null) { galleries = DCCommon.GetGalleryList(); } if (minor_galleries == null) { minor_galleries = DCCommon.GetMinorGalleryList(); } }
private void DCTools_Loaded(object sender, RoutedEventArgs e) { if (loaded) { return; } loaded = true; gallery_list = DCCommon.GetGalleryList(); mgallery_list = DCCommon.GetMinorGalleryList(); gallery_list.ToList().ForEach(x => gl.Add(x.Key + " 갤러리", x.Value)); mgallery_list.ToList().ForEach(x => { gl.Add(x.Key + " 마이너 갤러리", x.Value); }); gl.ToList().ForEach(x => gall_list.Items.Add(new ComboBoxItem() { Content = $"{x.Key} ({x.Value})" })); }
private void tracker(string gall_code, string contents, bool isminor) { append($"Thread starts! {gall_code} {contents}" + (isminor ? " mg" : " g")); for (int i = 1; i < 10; i++) { var url = "https://gall.dcinside.com/board/lists?id=" + gall_code + $"&page={i}"; //append("download url " + url + "..."); var html = NetCommon.DownloadString(url); var g = DCParser.ParseGallery(html); //append($"mp={g.max_page},esno={g.esno},krn={g.name},cnt={g.articles.Length} loaded!"); foreach (var a in g.articles) { if (a.nick.ToLower().Contains(contents) || a.title.ToLower().Contains(contents)) { append($"article found! title={a.title},no={a.no},nick={a.nick}"); } if (a.replay_num != "") { for (int j = 1; j < 100; j++) { //append("download comment " + a.title + " " + a.no + " " + j); var c = DCCommon.GetComments(g, a, j.ToString()); if (c.comments == null || c.comments.Length == 0) { break; } foreach (var b in c.comments) { if (b.name.ToLower().Contains(contents) || b.memo.ToLower().Contains(contents)) { append($"coment found! title={a.title},no={a.no},name={b.name},memo={b.memo}"); } } } } } } }
static void ProcessFullParse(string[] args, bool rem, string[] title, string[] nick, string[] ip, string[] id, bool login, bool fix) { using (var progressBar = new Console.ConsoleProgressBar()) { Console.Instance.WriteLine("Parse gallery..."); var rstarts = Convert.ToInt32(args[1]); var starts = Convert.ToInt32(args[1]); var ends = Convert.ToInt32(args[2]); LoadGalleryList(); bool is_minorg = minor_galleries.ContainsValue(args[0]); var articles = new List <DCPageArticle>(); // // Parse Gallery // for (; starts <= ends; starts++) { var url = ""; if (is_minorg) { url = $"https://gall.dcinside.com/mgallery/board/lists/?id={args[0]}&page={starts}"; } else { url = $"https://gall.dcinside.com/board/lists/?id={args[0]}&page={starts}"; } if (rem) { url += "&exception_mode=recommend"; } var client = NetCommon.GetDefaultClient(); if (PHPSESSID != "") { client.Headers.Add(System.Net.HttpRequestHeader.Cookie, "PHPSESSID=" + PHPSESSID); } var html = client.DownloadString(url); DCGallery gall = null; if (is_minorg) { gall = DCParser.ParseMinorGallery(html); } else { gall = DCParser.ParseGallery(html); } foreach (var article in gall.articles) { if (title != null && !article.title.Contains(title[0])) { continue; } if (nick != null && !article.nick.Contains(nick[0])) { continue; } if (ip != null && !article.ip.Contains(ip[0])) { continue; } if (id != null && !article.uid.Contains(id[0])) { continue; } if (login && !article.islogined) { continue; } if (fix && !article.isfixed) { continue; } //Console.Instance.Write(Monitor.SerializeObject(article)); //Console.Instance.WriteLine(","); articles.Add(article); } progressBar.SetProgress((((ends - rstarts + 1) - (ends - starts)) / (float)(ends - rstarts + 1)) * 100); Thread.Sleep(3000); } Console.Instance.WriteLine("Parse articles..."); int acnt = 0; var _articles = new List <DCArticle>(); // // Parse Articles // foreach (var article in articles) { var url = ""; if (is_minorg) { url = $"https://gall.dcinside.com/mgallery/board/view/?id={args[0]}&no={article.no}"; } else { url = $"https://gall.dcinside.com/board/view/?id={args[0]}&no={article.no}"; } var client = NetCommon.GetDefaultClient(); if (PHPSESSID != "") { client.Headers.Add(System.Net.HttpRequestHeader.Cookie, "PHPSESSID=" + PHPSESSID); } var html = client.DownloadString(url); var _article = DCParser.ParseBoardView(html, is_minorg); _articles.Add(_article); acnt++; progressBar.SetProgress(((acnt) / (float)(articles.Count)) * 100); Thread.Sleep(3000); } var info = new List <Tuple <DCArticle, List <DCComment> > >(); if (ESNO == "") { ESNO = _articles[0].ESNO; } int ccnt = 0; // // Parse Comments // foreach (var article in _articles) { var cc = new List <DCComment>(); var comments = DCCommon.GetComments(new DCArticle { OriginalGalleryName = article.OriginalGalleryName, Id = article.Id, ESNO = article.ESNO }, "1"); Thread.Sleep(2000); cc.Add(comments); int tcount = comments.total_cnt; int count = 100; for (int i = 2; count < tcount; count += 100) { comments = DCCommon.GetComments(new DCArticle { OriginalGalleryName = args[0], Id = args[1], ESNO = ESNO }, i.ToString()); if (comments.comment_cnt == 0) { break; } count += comments.comment_cnt; cc.Add(comments); Thread.Sleep(2000); } info.Add(new Tuple <DCArticle, List <DCComment> >(article, cc)); ccnt++; progressBar.SetProgress(((ccnt) / (float)(_articles.Count)) * 100); } var result = new Tuple <List <DCPageArticle>, List <Tuple <DCArticle, List <DCComment> > > >(articles, info); File.WriteAllText($"dc-{args[0]}-{args[1]}-{args[2]}-{DateTime.Now.Ticks}.txt", Monitor.SerializeObject(result)); } }
static void ProcessBuildMinorGallery() { File.WriteAllText("dcinside-minor-gallery.json", JsonConvert.SerializeObject(DCCommon.GetMinorGalleryListRaw())); }