示例#1
0
        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;
            }
        }
示例#2
0
        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;
                }
            }
        }
示例#3
0
 static void LoadGalleryList()
 {
     if (galleries == null)
     {
         galleries = DCCommon.GetGalleryList();
     }
     if (minor_galleries == null)
     {
         minor_galleries = DCCommon.GetMinorGalleryList();
     }
 }
示例#4
0
        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})"
            }));
        }
示例#5
0
        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}");
                                }
                            }
                        }
                    }
                }
            }
        }
示例#6
0
        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));
            }
        }
示例#7
0
 static void ProcessBuildMinorGallery()
 {
     File.WriteAllText("dcinside-minor-gallery.json", JsonConvert.SerializeObject(DCCommon.GetMinorGalleryListRaw()));
 }