From 5627a9306531bc7f4fa01d3d4bb75f8f59e15ef0 Mon Sep 17 00:00:00 2001 From: FineFindus Date: Tue, 18 Feb 2025 17:51:24 +0100 Subject: [PATCH] feat(LocalFeedRepository): filter members only videos YouTube inserts Members only videos into the normal video feed. As there not watchable without signing in, they clutter the feed, this filters them out before the're displayed. Ref: https://github.com/FineFindus/NewPipeExtractor/tree/feat/member-channeltab-info --- .../main/java/com/github/libretube/repo/LocalFeedRepository.kt | 2 ++ build.gradle.kts | 1 + 2 files changed, 3 insertions(+) diff --git a/app/src/main/java/com/github/libretube/repo/LocalFeedRepository.kt b/app/src/main/java/com/github/libretube/repo/LocalFeedRepository.kt index 49d7eddc4..06d53023d 100644 --- a/app/src/main/java/com/github/libretube/repo/LocalFeedRepository.kt +++ b/app/src/main/java/com/github/libretube/repo/LocalFeedRepository.kt @@ -21,6 +21,7 @@ import org.schabi.newpipe.extractor.channel.tabs.ChannelTabInfo import org.schabi.newpipe.extractor.channel.tabs.ChannelTabs import org.schabi.newpipe.extractor.feed.FeedInfo import org.schabi.newpipe.extractor.stream.StreamInfoItem +import org.schabi.newpipe.extractor.stream.StreamInfoItem.ContentAvailability import java.time.Duration import java.time.Instant import java.util.concurrent.atomic.AtomicInteger @@ -146,6 +147,7 @@ class LocalFeedRepository : FeedRepository { ChannelTabInfo.getInfo(NewPipeExtractorInstance.extractor, tab).relatedItems }.getOrElse { emptyList() } }.flatten().filterIsInstance() + .filter { it.contentAvailability == ContentAvailability.AVAILABLE || it.contentAvailability == ContentAvailability.UPCOMING } val channelAvatar = channelInfo.avatars.maxByOrNull { it.height }?.url return related.map { item -> diff --git a/build.gradle.kts b/build.gradle.kts index eb4aa51c1..ee2bd3865 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -18,6 +18,7 @@ buildscript { allprojects { repositories { + mavenLocal() google() mavenCentral() maven { setUrl("https://jitpack.io") }