示例#1
0
 public AppSetting(ApplicationTheme theme,
                   ObservableCollection <string> excludeTags,
                   bool disableDomainFronting,
                   IllustrationSortOption defaultSortOption,
                   SearchTagMatchOption searchTagMatchOption,
                   TargetFilter targetFilter,
                   int pageLimitForKeywordSearch,
                   int searchStartingFromPageNumber,
                   int pageLimitForSpotlight,
                   string?mirrorHost,
                   int maxDownloadTaskConcurrencyLevel,
                   bool displayTeachingTipWhenGeneratingAppLink,
                   int itemsNumberLimitForDailyRecommendations,
                   bool filtrateRestrictedContent,
                   bool useFileCache)
 {
     Theme                                   = theme;
     ExcludeTags                             = excludeTags;
     DisableDomainFronting                   = disableDomainFronting;
     DefaultSortOption                       = defaultSortOption;
     TagMatchOption                          = searchTagMatchOption;
     TargetFilter                            = targetFilter;
     PageLimitForKeywordSearch               = pageLimitForKeywordSearch;
     SearchStartingFromPageNumber            = searchStartingFromPageNumber;
     PageLimitForSpotlight                   = pageLimitForSpotlight;
     MirrorHost                              = mirrorHost;
     MaxDownloadTaskConcurrencyLevel         = maxDownloadTaskConcurrencyLevel;
     DisplayTeachingTipWhenGeneratingAppLink = displayTeachingTipWhenGeneratingAppLink;
     ItemsNumberLimitForDailyRecommendations = itemsNumberLimitForDailyRecommendations;
     FiltrateRestrictedContent               = filtrateRestrictedContent;
     UseFileCache                            = useFileCache;
 }
示例#2
0
 protected AbstractQueryAsyncEnumerable(string tag, SearchTagMatchOption matchOption, bool isPremium, int start = 1)
 {
     _start       = start < 1 ? 1 : start;
     _tag         = tag;
     _matchOption = matchOption;
     IsPremium    = isPremium;
 }
示例#3
0
 public QueryAsyncEnumerator(IPixivAsyncEnumerable <Illustration> enumerable, string keyword, SearchTagMatchOption matchOption, int current, bool isPremium) : base(enumerable)
 {
     _keyword     = keyword;
     _matchOption = matchOption;
     _current     = current;
     _isPremium   = isPremium;
 }
示例#4
0
        /// <summary>
        ///     Search in Pixiv.
        /// </summary>
        /// <param name="tag">Texts for searching</param>
        /// <param name="start">Start page</param>
        /// <param name="pages">Number of pages</param>
        /// <param name="matchOption">
        ///     The <see cref="SearchTagMatchOption.TitleAndCaption" /> option for the method of search
        ///     matching
        /// </param>
        /// <param name="sortOption">The <see cref="IllustrationSortOption" /> option for sorting method</param>
        /// <param name="searchDuration">The <see cref="SearchDuration" /> option for the duration of this search</param>
        /// <param name="targetFilter">The <see cref="TargetFilter" /> option targeting android or ios</param>
        /// <param name="startDate">The starting date filtering the search results</param>
        /// <param name="endDate">The ending date filtering the searching results</param>
        /// <returns>
        ///     The <see cref="SearchEngine" /> iterator containing the searching results.
        /// </returns>
        public IFetchEngine <Illustration> Search(
            string tag,
            int start = 0,
            int pages = 100,
            SearchTagMatchOption matchOption  = SearchTagMatchOption.TitleAndCaption,
            IllustrationSortOption?sortOption = null,
            SearchDuration searchDuration     = SearchDuration.Undecided,
            TargetFilter?targetFilter         = null,
            DateTimeOffset?startDate          = null,
            DateTimeOffset?endDate            = null)
        {
            EnsureNotCancelled();
            if (sortOption == IllustrationSortOption.PopularityDescending && !Session.IsPremium)
            {
                sortOption = IllustrationSortOption.DoNotSort;
            }

            return(new SearchEngine(this, new EngineHandle(CancelInstance), matchOption, tag, start, pages, sortOption, searchDuration, startDate, endDate, targetFilter));
        }
示例#5
0
 public SearchEngine(
     MakoClient makoClient,
     EngineHandle?engineHandle,
     SearchTagMatchOption matchOption,
     string tag,
     int start,
     int pages,
     IllustrationSortOption?sortOption,
     SearchDuration searchDuration,
     DateTimeOffset?startDate,
     DateTimeOffset?endDate,
     TargetFilter?targetFilter) : base(makoClient, engineHandle)
 {
     _matchOption    = matchOption;
     _tag            = tag;
     _current        = start;
     _pages          = pages;
     _sortOption     = sortOption ?? IllustrationSortOption.PublishDateDescending;
     _searchDuration = searchDuration;
     _startDate      = startDate;
     _endDate        = endDate;
     _targetFilter   = targetFilter ?? TargetFilter.ForAndroid;
 }
示例#6
0
 public PublishDateQueryAsyncEnumerable(string tag, SearchTagMatchOption matchOption, bool isPremium,
                                        int start = 1) : base(tag, matchOption, isPremium, start)
 {
 }
 public SearchTagMatchOptionModel(SearchTagMatchOption corresponding)
 {
     Description   = corresponding.GetEnumAttribute <EnumName>().Name;
     Corresponding = corresponding;
 }
 public SearchTagMatchOptionModel(SearchTagMatchOption corresponding)
 {
     Description   = AkaI18N.GetResource(corresponding.GetEnumAttribute <EnumLocalizedName>().Name);
     Corresponding = corresponding;
 }
 public QueryAsyncEnumerator(IPixivAsyncEnumerable <Illustration> enumerable, string keyword, SearchTagMatchOption matchOption, int current) : base(enumerable)
 {
     this.keyword     = keyword;
     this.matchOption = matchOption;
     this.current     = current;
 }
示例#10
0
 protected AbstractQueryAsyncEnumerable(string tag, SearchTagMatchOption matchOption, int start = 1)
 {
     this.start       = start < 1 ? 1 : start;
     this.tag         = tag;
     this.matchOption = matchOption;
 }
示例#11
0
 public PopularityQueryAsyncEnumerable(string tag, SearchTagMatchOption matchOption, int start = 1) : base(tag, matchOption, start)
 {
 }
示例#12
0
 public SearchTagMatchOptionModel(SearchTagMatchOption corresponding)
 {
     Description   = Pixeval.Resources.Resources.ResourceManager.GetString(corresponding.GetEnumAttribute <EnumLocalizedName>().Name);
     Corresponding = corresponding;
 }