/// <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)); }
public static string ToParamString(this SearchDuration duration) { switch (duration) { case SearchDuration.Nothing: return(""); case SearchDuration.LastDay: return("within_last_day"); case SearchDuration.LastWeek: return("within_last_week"); case SearchDuration.LastMonth: return("within_last_month"); default: throw new ArgumentOutOfRangeException(nameof(duration), duration, null); } }
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; }