public void Search(string query, SearchOptionParameter optionParameter, bool force = false) { ResultIllusts.Clear(); ResultNovels.Clear(); ResultUsers.Clear(); _query = query; _offset = ""; _count = 0; _optionParam = optionParameter; if (!string.IsNullOrWhiteSpace(_optionParam.EitherWord)) { _query += " " + string.Join(" ", _optionParam.EitherWord.Split(' ').Select(w => $"({w})")); } if (!string.IsNullOrWhiteSpace(_optionParam.IgnoreWord)) { _query += " " + string.Join(" ", _optionParam.IgnoreWord.Split(' ').Select(w => $"--{w}")); } #if !OFFLINE HasMoreItems = true; if (force) { RunHelper.RunAsync(SearchAsync); } #endif }
private async Task SearchNovel() { var novels = await _queryCacheService.RunAsync(_pixivClient.Search.NovelAsync, duration => _optionParam.Duration.ToParamString(), search_target => _optionParam.Target.ToParamString(), sort => _optionParam.Sort.ToParamString(), word => _query, offset => _offset); novels?.NovelList.Where(w => w.TotalBookmarks >= _optionParam.BookmarkCount) .Where(w => w.TotalView >= _optionParam.ViewCount) .Where(w => w.TotalComments >= _optionParam.CommentCount) .Where(w => w.PageCount >= _optionParam.CommentCount) .Where(w => w.TextLength >= _optionParam.TextLength) .ForEach(w => ResultNovels.Add(w)); if (string.IsNullOrWhiteSpace(novels?.NextUrl)) { HasMoreItems = false; } else { _offset = UrlParameter.ParseQuery(novels.NextUrl)["offset"]; } }