Esempio n. 1
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;
            }
        }
Esempio n. 2
0
        private async void AppendAsync(string content)
        {
            if (content.Trim().StartsWith("http://") || content.Trim().StartsWith("https://"))
            {
                DownloaderHelper.ProcessOthers(content.Trim());
                return;
            }

            try
            {
                List <HitomiIndexMetadata> result;

                int start_element = 0;
                int count_element = 0;

                if (content.Split(' ').Any(x => x.StartsWith("/")))
                {
                    var elem = content.Split(' ').Where(x => x.StartsWith("/")).ElementAt(0);
                    start_element = Convert.ToInt32(elem.Substring(1));
                    content       = content.Replace(elem, " ");
                }

                if (content.Split(' ').Any(x => x.StartsWith("?")))
                {
                    var elem = content.Split(' ').Where(x => x.StartsWith("?")).ElementAt(0);
                    count_element = Convert.ToInt32(elem.Substring(1));
                    content       = content.Replace(elem, " ");
                }

                if (!Settings.Instance.Hitomi.UsingAdvancedSearch || content.Contains("recent:"))
                {
                    result = await HitomiDataParser.SearchAsync(content.Trim());

                    if (content.Contains("recent:"))
                    {
                        var elem         = content.Split(' ').Where(x => x.StartsWith("recent:")).ElementAt(0);
                        int recent_count = 0;
                        int recent_start = 0;
                        if (elem.Substring("recent:".Length).Contains("-"))
                        {
                            recent_start = Convert.ToInt32(elem.Substring("recent:".Length).Split('-')[0]);
                            recent_count = Convert.ToInt32(elem.Substring("recent:".Length).Split('-')[1]);
                        }
                        else
                        {
                            recent_count = Convert.ToInt32(elem.Substring("recent:".Length));
                        }
                        SearchText.Text = "recent:" + (recent_start + recent_count) + "-" + recent_count;
                    }
                }
                else
                {
                    result = await HitomiDataSearchAdvanced.Search(content.Trim());
                }

                if (start_element != 0 && start_element <= result.Count)
                {
                    result.RemoveRange(0, start_element);
                }
                if (count_element != 0 && count_element < result.Count)
                {
                    result.RemoveRange(count_element, result.Count - count_element);
                }

                SearchCount.Text     = $"{FindResource("searched")}: {(result.Count != 0 ? result.Count.ToString("#,#") : "0")}{(FindResource("count_postfix"))}";
                SearchButton.Content = $"{FindResource("stop")}";
                _ = Task.Run(() => LoadThumbnail(result));
            }
            catch
            {
                SearchCount.Text = (string)FindResource("msg_incorret_search_grammar");
            }
        }
Esempio n. 3
0
        public async void SearchAsync(string content)
        {
            try
            {
                List <HitomiMetadata> result;
                Stopwatch             sw = Stopwatch.StartNew();
                var end = sw.ElapsedMilliseconds;

                int start_element = 0;
                int count_element = 0;

                if (content.Contains('/'))
                {
                    var elem = content.Split(' ').Where(x => x.StartsWith("/")).ElementAt(0);
                    start_element = Convert.ToInt32(elem.Substring(1));
                    content       = content.Replace(elem, " ");
                }

                if (content.Contains('?'))
                {
                    var elem = content.Split(' ').Where(x => x.StartsWith("?")).ElementAt(0);
                    count_element = Convert.ToInt32(elem.Substring(1));
                    content       = content.Replace(elem, " ");
                }

                if (!Settings.Instance.Hitomi.UsingAdvancedSearch || content.Contains("recent:"))
                {
                    result = await HitomiDataParser.SearchAsync(content.Trim());

                    end = sw.ElapsedMilliseconds - end;
                    sw.Stop();
                    if (content.Contains("recent:"))
                    {
                        var elem         = content.Split(' ').Where(x => x.StartsWith("recent:")).ElementAt(0);
                        int recent_count = 0;
                        int recent_start = 0;
                        if (elem.Substring("recent:".Length).Contains("-"))
                        {
                            recent_start = Convert.ToInt32(elem.Substring("recent:".Length).Split('-')[0]);
                            recent_count = Convert.ToInt32(elem.Substring("recent:".Length).Split('-')[1]);
                        }
                        else
                        {
                            recent_count = Convert.ToInt32(elem.Substring("recent:".Length));
                        }
                        SearchText.Text = "recent:" + (recent_start + recent_count) + "-" + recent_count;
                    }
                }
                else
                {
                    result = await HitomiDataSearchAdvanced.Search(content.Trim());

                    end = sw.ElapsedMilliseconds - end;
                    sw.Stop();
                }

                if (start_element != 0 && start_element <= result.Count)
                {
                    result.RemoveRange(0, start_element);
                }
                if (count_element != 0 && count_element < result.Count)
                {
                    result.RemoveRange(count_element, result.Count - count_element);
                }

                var vm = DataContext as Domain.FinderDataGridViewModel;
                result.Sort((a, b) => b.ID.CompareTo(a.ID));
                vm.Items.Clear();
                foreach (var article in result)
                {
                    vm.Items.Add(new Domain.FinderDataGridItemViewModel
                    {
                        아이디    = article.ID.ToString(),
                        제목     = article.Name,
                        타입     = article.Type,
                        작가     = string.Join(",", article.Artists ?? Enumerable.Empty <string>()),
                        그룹     = string.Join(",", article.Groups ?? Enumerable.Empty <string>()),
                        시리즈    = string.Join(",", article.Parodies ?? Enumerable.Empty <string>()),
                        캐릭터    = string.Join(",", article.Characters ?? Enumerable.Empty <string>()),
                        업로드_시간 = HitomiDate.estimate_datetime(article.ID).ToString(),
                        태그     = string.Join(",", article.Tags ?? Enumerable.Empty <string>()),
                        다운     = HitomiLog.Instance.Contains(article.ID.ToString()) ? "★" : ""
                    });
                }

                ResultText.Text = $"{result.Count.ToString("#,#")}개 ({end / 1000.0} 초)";
            }
            catch
            {
            }
        }
Esempio n. 4
0
        private async void AppendAsync(string content)
        {
            if (content.Trim().StartsWith("http://") || content.Trim().StartsWith("https://"))
            {
                DownloaderHelper.ProcessOthers(content.Trim());
                return;
            }

            try
            {
                List <HitomiMetadata> result;

                int start_element = 0;
                int count_element = 0;

                if (content.Contains('/'))
                {
                    var elem = content.Split(' ').Where(x => x.StartsWith("/")).ElementAt(0);
                    start_element = Convert.ToInt32(elem.Substring(1));
                    content       = content.Replace(elem, " ");
                }

                if (content.Contains('?'))
                {
                    var elem = content.Split(' ').Where(x => x.StartsWith("?")).ElementAt(0);
                    count_element = Convert.ToInt32(elem.Substring(1));
                    content       = content.Replace(elem, " ");
                }

                if (!Settings.Instance.Hitomi.UsingAdvancedSearch || content.Contains("recent:"))
                {
                    result = await HitomiDataParser.SearchAsync(content.Trim());

                    if (content.Contains("recent:"))
                    {
                        var elem         = content.Split(' ').Where(x => x.StartsWith("recent:")).ElementAt(0);
                        int recent_count = 0;
                        int recent_start = 0;
                        if (elem.Substring("recent:".Length).Contains("-"))
                        {
                            recent_start = Convert.ToInt32(elem.Substring("recent:".Length).Split('-')[0]);
                            recent_count = Convert.ToInt32(elem.Substring("recent:".Length).Split('-')[1]);
                        }
                        else
                        {
                            recent_count = Convert.ToInt32(elem.Substring("recent:".Length));
                        }
                        SearchText.Text = "recent:" + (recent_start + recent_count) + "-" + recent_count;
                    }
                }
                else
                {
                    result = await HitomiDataSearchAdvanced.Search(content.Trim());
                }

                if (start_element != 0 && start_element <= result.Count)
                {
                    result.RemoveRange(0, start_element);
                }
                if (count_element != 0 && count_element < result.Count)
                {
                    result.RemoveRange(count_element, result.Count - count_element);
                }

                SearchCount.Text = $"검색된 항목: {result.Count.ToString("#,#")}개";
                _ = Task.Run(() => LoadThumbnail(result));
            }
            catch
            {
                SearchCount.Text = "검색 문법이 잘못되었습니다.";
            }
        }
Esempio n. 5
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;
            }
        }