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 SearchIllust() { var illusts = await _queryCacheService.RunAsync(_pixivClient.Search.IllustAsync, duration => _optionParam.Duration.ToParamString(), search_target => _optionParam.Target.ToParamString(), sort => _optionParam.Sort.ToParamString(), word => _query, filter => "for_ios", offset => _offset); illusts?.IllustList.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.Height >= _optionParam.Height) && (w.Width >= _optionParam.Width)) .Where(w => string.IsNullOrWhiteSpace(_optionParam.Tool) || w.Tools.Any(v => v == _optionParam.Tool)) .ForEach(w => ResultIllusts.Add(w)); if (string.IsNullOrWhiteSpace(illusts?.NextUrl)) { HasMoreItems = false; } else { _offset = UrlParameter.ParseQuery(illusts.NextUrl)["offset"]; } }
public void Query(FavoriteOptionParameter optionParameter) { ResultIllusts.Clear(); ResultNovels.Clear(); _optionParam = optionParameter; // Magic number _optionParam.Tag = optionParameter.Tag == "すべて" ? "" : optionParameter.Tag; _maxBookmarkId = ""; #if !OFFLINE HasMoreItems = true; #endif }
private async Task QueryIllust() { var bookmarksApi = _pixivClient.User.Bookmarks; var illusts = await _queryCacheService.RunAsync(bookmarksApi.IllustAsync, user_id => _optionParam.UserId, filter => "for_ios", restrict => _optionParam.Restrict.ToParamString(), max_bookmark_id => _maxBookmarkId, tag => _optionParam.Tag ?? ""); illusts?.IllustList.ForEach(w => ResultIllusts.Add(w)); if (string.IsNullOrWhiteSpace(illusts?.NextUrl)) { HasMoreItems = false; } else { _maxBookmarkId = UrlParameter.ParseQuery(illusts.NextUrl)["max_bookmark_id"]; } }