Exemple #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
        }
Exemple #2
0
        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"];
            }
        }
Exemple #3
0
        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
        }
Exemple #4
0
        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"];
            }
        }