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.db.DatabaseHolder
import com.github.libretube.db.obj.SubscriptionsFeedItem
import com.github.libretube.enums.ContentFilter
import com.github.libretube.extensions.parallelMap
import com.github.libretube.helpers.NewPipeExtractorInstance
import com.github.libretube.helpers.PreferenceHelper
@ -19,7 +20,13 @@ import java.time.Instant
class LocalFeedRepository : FeedRepository {
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> {
val nowMillis = Instant.now().toEpochMilli()