Skip to content

Commit 23fe41d

Browse files
committed
searchfilters: Peertube: handle different endpoints for channel and playlists search
1 parent e81796f commit 23fe41d

File tree

1 file changed

+31
-8
lines changed
  • extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/search/filter

1 file changed

+31
-8
lines changed

extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/search/filter/PeertubeFilters.java

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.schabi.newpipe.extractor.search.filter.FilterGroup;
99
import org.schabi.newpipe.extractor.search.filter.FilterItem;
1010
import org.schabi.newpipe.extractor.search.filter.LibraryStringIds;
11+
import org.schabi.newpipe.extractor.services.peertube.linkHandler.PeertubeSearchQueryHandlerFactory;
1112

1213
import java.time.LocalDateTime;
1314
import java.time.format.DateTimeFormatter;
@@ -224,18 +225,23 @@ protected void init() {
224225

225226

226227
/* content filters */
227-
groupsFactory.addFilterItem(new PeertubeFilterItem(
228+
groupsFactory.addFilterItem(new PeertubeContentFilterItem(
228229
ID_CF_MAIN_ALL,
229-
LibraryStringIds.SEARCH_FILTERS_ALL, ""));
230-
groupsFactory.addFilterItem(new PeertubeFilterItem(
230+
LibraryStringIds.SEARCH_FILTERS_ALL, "",
231+
// for 'ALL' we default to videos as all (videos/channels/playlist) is not possible
232+
PeertubeSearchQueryHandlerFactory.SEARCH_ENDPOINT_VIDEOS));
233+
groupsFactory.addFilterItem(new PeertubeContentFilterItem(
231234
ID_CF_MAIN_VIDEOS,
232-
LibraryStringIds.SEARCH_FILTERS_VIDEOS, "resultType=videos"));
233-
groupsFactory.addFilterItem(new PeertubeFilterItem(
235+
LibraryStringIds.SEARCH_FILTERS_VIDEOS, "resultType=videos",
236+
PeertubeSearchQueryHandlerFactory.SEARCH_ENDPOINT_VIDEOS));
237+
groupsFactory.addFilterItem(new PeertubeContentFilterItem(
234238
ID_CF_MAIN_CHANNELS,
235-
LibraryStringIds.SEARCH_FILTERS_CHANNELS, "resultType=channels"));
236-
groupsFactory.addFilterItem(new PeertubeFilterItem(
239+
LibraryStringIds.SEARCH_FILTERS_CHANNELS, "resultType=channels",
240+
PeertubeSearchQueryHandlerFactory.SEARCH_ENDPOINT_CHANNELS));
241+
groupsFactory.addFilterItem(new PeertubeContentFilterItem(
237242
ID_CF_MAIN_PLAYLISTS,
238-
LibraryStringIds.SEARCH_FILTERS_PLAYLISTS, "resultType=playlists"));
243+
LibraryStringIds.SEARCH_FILTERS_PLAYLISTS, "resultType=playlists",
244+
PeertubeSearchQueryHandlerFactory.SEARCH_ENDPOINT_PLAYLISTS));
239245

240246

241247
/* content filter groups */
@@ -286,6 +292,23 @@ public String getQueryData() {
286292
}
287293
}
288294

295+
public static class PeertubeContentFilterItem extends PeertubeFilterItem {
296+
297+
private final String endpoint;
298+
299+
PeertubeContentFilterItem(final int identifier,
300+
@Nonnull final LibraryStringIds nameId,
301+
@Nullable final String query,
302+
@Nonnull final String endpoint) {
303+
super(identifier, nameId, query);
304+
this.endpoint = endpoint;
305+
}
306+
307+
public String getEndpoint() {
308+
return endpoint;
309+
}
310+
}
311+
289312
static class PeertubePublishedDateFilterItem extends PeertubeFilterItem {
290313
static final int NO_DAYS_SET = -1;
291314
private final int days;

0 commit comments

Comments
 (0)