feat(LocalFeedRepository): fetch only enabled channel tabs

Updates the local feed extraction to only fetch channel tabs that are
enabled. This cuts down the amount of requests that are send, but
ultimately not used.
This commit is contained in:
FineFindus 2025-01-10 19:15:10 +01:00
parent f38f0ed706
commit 269050bc6b
No known key found for this signature in database
GPG Key ID: 64873EE210FF8E6B

View File

@ -6,6 +6,7 @@ import com.github.libretube.api.obj.StreamItem
import com.github.libretube.constants.PreferenceKeys import com.github.libretube.constants.PreferenceKeys
import com.github.libretube.db.DatabaseHolder import com.github.libretube.db.DatabaseHolder
import com.github.libretube.db.obj.SubscriptionsFeedItem import com.github.libretube.db.obj.SubscriptionsFeedItem
import com.github.libretube.enums.ContentFilter
import com.github.libretube.extensions.parallelMap import com.github.libretube.extensions.parallelMap
import com.github.libretube.helpers.NewPipeExtractorInstance import com.github.libretube.helpers.NewPipeExtractorInstance
import com.github.libretube.helpers.PreferenceHelper import com.github.libretube.helpers.PreferenceHelper
@ -19,7 +20,13 @@ import java.time.Instant
class LocalFeedRepository : FeedRepository { class LocalFeedRepository : FeedRepository {
private val relevantTabs = private val relevantTabs =
arrayOf(ChannelTabs.LIVESTREAMS, ChannelTabs.VIDEOS, ChannelTabs.SHORTS) listOf(
ContentFilter.LIVESTREAMS to ChannelTabs.LIVESTREAMS,
ContentFilter.VIDEOS to ChannelTabs.VIDEOS,
ContentFilter.SHORTS to ChannelTabs.SHORTS
).mapNotNull { (filter, tab) ->
if (filter.isEnabled) tab else null
}.toTypedArray()
override suspend fun getFeed(forceRefresh: Boolean): List<StreamItem> { override suspend fun getFeed(forceRefresh: Boolean): List<StreamItem> {
val nowMillis = Instant.now().toEpochMilli() val nowMillis = Instant.now().toEpochMilli()