Beispiel #1
0
        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
        }
Beispiel #2
0
        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"];
            }
        }