예제 #1
0
        static void ProcessParseArticle(string[] args)
        {
            LoadGalleryList();

            bool is_minorg = minor_galleries.ContainsValue(args[0]);

            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);

            Console.Instance.WriteLine(article);
        }
예제 #2
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;
            }
        }
예제 #3
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;
                }
            }
        }
예제 #4
0
        public static void ProcessDC(string url)
        {
            var    article = DCParser.ParseBoardView(NetCommon.DownloadString(url));
            string dir     = Path.Combine(Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "dcinside"), $"[{article.GalleryName}] {DeleteInvalid(article.Title)}");

            Directory.CreateDirectory(dir);

            var se = Koromo_Copy.Interface.SemaphoreExtends.MakeDefault();

            se.Referer = url;

            DownloadSpace.Instance.RequestDownload(article.Title,
                                                   article.ImagesLink.ToArray(),
                                                   article.FilesName.Select(x => Path.Combine(dir, DeleteInvalid(x))).ToArray(),
                                                   se,
                                                   dir + '\\',
                                                   null
                                                   );
            MainWindow.Instance.FadeOut_MiddlePopup($"{article.ImagesLink.Count}개 항목 다운로드 시작...");
        }
예제 #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 ProcessTest(string[] args)
        {
            switch (args[0])
            {
            case "version":
                Version.ExportVersion();
                break;

            case "manage":
                var t = new Thread(() => {
                    Application.Run(new Manage());
                });
                t.Start();
                break;

            case "preempt_dq":
                DownloadConsole.Instance.queue.Preempt();
                break;

            case "unpreempt_dq":
                DownloadConsole.Instance.queue.Reactivation();
                break;

            case "hiyobi":
                var html    = Net.NetCommon.DownloadString("https://hiyobi.me/info/1305694");
                var article = Component.Hiyobi.HiyobiParser.ParseGalleryConents(html);
                break;

            case "hiyobi2":
                var html1    = Net.NetCommon.DownloadString("https://hiyobi.me/list/1");
                var article1 = Component.Hiyobi.HiyobiParser.ParseGalleryArticles(html1);
                break;

            case "query":
                HitomiDataSearchAdvanced.to_linear(HitomiDataSearchAdvanced.make_tree("(a b) - (c d) - (e f)"));
                break;

            case "version_check":
                Version.UpdateRequired();
                break;

            case "dc":
                var html2 = Net.NetCommon.DownloadString("http://gall.dcinside.com/board/view/?id=comic_new1&no=7118416&page=1");
                DCParser.ParseBoardView(html2);
                break;

            case "non-h":
                var html3 = Net.NetCommon.DownloadString("https://hiyobi.me/manga/info/1848");
                HiyobiParser.ParseNonHArticles(html3);
                break;

            case "msm":
                var html4 = Net.NetCommon.DownloadString("http://mangashow.me/detail.php?manga_id=4969");
                MangashowmeParser.ParseSeries(html4);
                var html5 = Net.NetCommon.DownloadString("http://mangashow.me/viewer.php?chapter_id=79688");
                MangashowmeParser.ParseImages(html5);
                break;

            case "tree":
                var html6 = Net.NetCommon.DownloadString("https://www.google.com/search?q=anime&newwindow=1&rlz=1C1GIGM_enKR776KR776&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjS-J2cxejfAhWT-mEKHSpkCqsQ_AUIDigB&biw=1573&bih=814");
                var tree  = new HtmlTree(html6);
                tree.BuildTree();
                Console.Instance.Write(Monitor.SerializeObject(tree.GetLevelImages(11)));
                break;

            case "ls":
                HtmlLocalServer.Instance.Start();
                break;

            case "lpkor":
                var x  = "진화론의 시야에서 벗어난 생물학은 아무 의미가 없다.";
                var xl = string.Join("", x.Select(y => LPKor.IsHangul(y) ? LPKor.Disassembly(y) : y.ToString()));
                Console.Instance.WriteLine(xl);
                var xr = LPKor.Assembly(xl);
                Console.Instance.WriteLine(xr);

                xl = string.Join("", x.Select(y => LPKor.IsHangul3(y) ? LPKor.Disassembly3(y) : y.ToString()));
                Console.Instance.WriteLine(xl);
                xr = LPKor.Assembly3(xl);
                Console.Instance.WriteLine(xr);
                break;

            case "heap":
                var rl = new List <int>();

                var r = new Random();
                for (int i = 0; i < 20; i++)
                {
                    rl.Add(r.Next() % 100);
                }

                var h = new Heap <int>();
                foreach (var xx in rl)
                {
                    h.Push(xx);
                }

                rl.Sort();
                rl.Reverse();

                for (int i = 0; i < 20; i++)
                {
                    Console.Instance.WriteLine($"{rl[i]}, {h.Front}");
                    h.Pop();
                }

                var hh = new UpdatableHeap <int>();

                break;

            case "ydl":
                ydlWrapper.download();
                ydlWrapper.test();
                break;

            case "stack":
                StackTrace st = new StackTrace();

                Console.Instance.WriteLine(st.ToString());
                break;
            }
        }
예제 #7
0
        static void ProcessCollectArticles(string[] args, bool rem)
        {
            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 result   = new DCGalleryModel();
            var articles = new List <DCPageArticle>();

            using (var progressBar = new Console.ConsoleProgressBar())
            {
                for (; starts <= ends; starts++)
                {
X:
                    try
                    {
                        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";
                        }

                        Console.Instance.WriteLine($"Download URL: {url}");

                        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);
                        }

                        articles.AddRange(gall.articles);
                    }
                    catch { goto X; }
                    progressBar.SetProgress((((ends - rstarts + 1) - (ends - starts)) / (float)(ends - rstarts + 1)) * 100);
                }

                result.is_minor_gallery = is_minorg;
                result.gallery_id       = args[0];
                result.articles         = articles.ToArray();

                File.WriteAllText($"list-{args[0]}-{DateTime.Now.Ticks}.txt", JsonConvert.SerializeObject(result));
            }
        }
예제 #8
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));
            }
        }
예제 #9
0
        static void ProcessParseGallery(string[] args, bool rem, string[] title, string[] nick,
                                        string[] ip, string[] id, bool login, bool fix)
        {
            var starts = Convert.ToInt32(args[1]);
            var ends   = Convert.ToInt32(args[2]);

            LoadGalleryList();

            bool is_minorg = minor_galleries.ContainsValue(args[0]);

            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(",");
                }
            }
        }
예제 #10
0
        static void ProcessTest(string[] args)
        {
            switch (args[0])
            {
            case "version":
                Version.ExportVersion();
                break;

            case "manage":
                var t = new Thread(() => {
                    Application.Run(new Manage());
                });
                t.Start();
                break;

            case "preempt_dq":
                DownloadConsole.Instance.queue.Preempt();
                break;

            case "unpreempt_dq":
                DownloadConsole.Instance.queue.Reactivation();
                break;

            case "hiyobi":
                var html    = Net.NetCommon.DownloadString("https://hiyobi.me/info/1305694");
                var article = Component.Hiyobi.HiyobiParser.ParseGalleryConents(html);
                break;

            case "hiyobi2":
                var html1    = Net.NetCommon.DownloadString("https://hiyobi.me/list/1");
                var article1 = Component.Hiyobi.HiyobiParser.ParseGalleryArticles(html1);
                break;

            case "query":
                HitomiDataSearchAdvanced.to_linear(HitomiDataSearchAdvanced.make_tree("(a b) - (c d) - (e f)"));
                break;

            case "version_check":
                Version.UpdateRequired();
                break;

            case "dc":
                var html2 = Net.NetCommon.DownloadString("http://gall.dcinside.com/board/view/?id=comic_new1&no=7118416&page=1");
                DCParser.ParseBoardView(html2);
                break;

            case "non-h":
                var html3 = Net.NetCommon.DownloadString("https://hiyobi.me/manga/info/1848");
                HiyobiParser.ParseNonHArticles(html3);
                break;

            case "msm":
                var html4 = Net.NetCommon.DownloadString("http://mangashow.me/detail.php?manga_id=4969");
                MangashowmeParser.ParseSeries(html4);
                var html5 = Net.NetCommon.DownloadString("http://mangashow.me/viewer.php?chapter_id=79688");
                MangashowmeParser.ParseImages(html5);
                break;

            case "tree":
                var html6 = Net.NetCommon.DownloadString("https://www.google.com/search?q=anime&newwindow=1&rlz=1C1GIGM_enKR776KR776&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjS-J2cxejfAhWT-mEKHSpkCqsQ_AUIDigB&biw=1573&bih=814");
                var tree  = new HtmlTree(html6);
                tree.BuildTree();
                Console.Instance.Write(Monitor.SerializeObject(tree.GetLevelImages(11)));
                break;

            case "ls":
                HtmlLocalServer.Instance.Start();
                break;
            }
        }