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; } }
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"); } }
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 { } }
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 = "검색 문법이 잘못되었습니다."; } }
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; } }