NewPipeExtractor/extractor/src/main/java/org/schabi/newpipe/extractor/linkhandler/SearchQueryHandlerFactory.java

81 lines
2.6 KiB
Java
Raw Normal View History

package org.schabi.newpipe.extractor.linkhandler;
2018-07-01 16:21:40 +02:00
import org.schabi.newpipe.extractor.exceptions.ParsingException;
import org.schabi.newpipe.extractor.search.filter.BaseSearchFilters;
import org.schabi.newpipe.extractor.search.filter.FilterContainer;
import org.schabi.newpipe.extractor.search.filter.FilterItem;
2018-07-01 16:21:40 +02:00
import java.util.Collections;
2018-07-01 16:21:40 +02:00
import java.util.List;
public abstract class SearchQueryHandlerFactory extends ListLinkHandlerFactory {
protected final BaseSearchFilters searchFilters;
protected SearchQueryHandlerFactory(final BaseSearchFilters searchFilters) {
this.searchFilters = searchFilters;
}
2018-07-01 16:21:40 +02:00
///////////////////////////////////
// To Override
///////////////////////////////////
@Override
public abstract String getUrl(String query, List<FilterItem> selectedContentFilter,
List<FilterItem> selectedSortFilter)
throws ParsingException, UnsupportedOperationException;
@SuppressWarnings("unused")
public String getSearchString(final String url) {
return "";
}
2018-07-01 16:21:40 +02:00
///////////////////////////////////
// Logic
///////////////////////////////////
@Override
public String getId(final String url) throws ParsingException, UnsupportedOperationException {
return getSearchString(url);
}
2018-07-01 16:21:40 +02:00
@Override
public SearchQueryHandler fromQuery(final String query,
final List<FilterItem> contentFilter,
final List<FilterItem> sortFilter) throws ParsingException {
2021-02-07 22:42:21 +01:00
return new SearchQueryHandler(super.fromQuery(query, contentFilter, sortFilter));
2018-07-01 16:21:40 +02:00
}
public SearchQueryHandler fromQuery(final String query) throws ParsingException {
return fromQuery(query, List.of(), List.of());
2018-07-01 16:21:40 +02:00
}
/**
* It's not mandatory for NewPipe to handle the Url
2018-07-01 16:21:40 +02:00
*/
@Override
public boolean onAcceptUrl(final String url) {
return false;
}
/**
* {@link BaseSearchFilters#getContentFilters()}
*/
public FilterContainer getAvailableContentFilter() {
return searchFilters.getContentFilters();
}
/**
* {@link BaseSearchFilters#getContentFilterSortFilterVariant(int)}
*/
public FilterContainer getContentFilterSortFilterVariant(final int contentFilterId) {
return searchFilters.getContentFilterSortFilterVariant(contentFilterId);
}
/**
* {@link BaseSearchFilters#getFilterItem(int)}
*/
public FilterItem getFilterItem(final int filterId) {
return searchFilters.getFilterItem(filterId);
}
2018-07-01 16:21:40 +02:00
}