import '../../youtube_explode_dart.dart'; import '../reverse_engineering/pages/search_page.dart'; /// class SearchQuery { final YoutubeHttpClient _httpClient; /// Search query final String searchQuery; final SearchPage _page; /// Initializes a SearchQuery SearchQuery(this._httpClient, this.searchQuery, this._page); /// Search a video. static Future search( YoutubeHttpClient httpClient, String searchQuery, {SearchFilter filter = const SearchFilter('')}) async { var page = await SearchPage.get(httpClient, searchQuery, filter: filter); return SearchQuery(httpClient, searchQuery, page); } /// Get the data of the next page. /// Returns null if there is no next page. Future nextPage() async { var page = await _page.nextPage(_httpClient); if (page == null) { return null; } return SearchQuery(_httpClient, searchQuery, page); } /// Content of this search. /// Contains either [SearchVideo], [SearchPlaylist] or [SearchChannel] List get content => _page.searchContent; /// Videos related to this search. /// Contains either [SearchVideo] or [SearchPlaylist] List get relatedVideos => _page.relatedVideos; /// Returns the estimated search result count. int get estimatedResults => _page.estimatedResults; }