Merge pull request #7158 from Bnyro/master

fix: infinitely looping channel tab items when using full local npe
This commit is contained in:
Bnyro 2025-03-03 14:46:05 +01:00 committed by GitHub
commit fb02b44caf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -393,12 +393,22 @@ class NewPipeMediaServiceRepository : MediaServiceRepository {
override suspend fun getChannelTab(data: String, nextPage: String?): ChannelTabResponse { override suspend fun getChannelTab(data: String, nextPage: String?): ChannelTabResponse {
val linkListHandler = data.toListLinkHandler() val linkListHandler = data.toListLinkHandler()
val resp = ChannelTabInfo.getInfo(NewPipeExtractorInstance.extractor, linkListHandler) val (items, newNextPage) = if (nextPage == null) {
val newNextPage = resp.nextPage?.toNextPageString() val resp = ChannelTabInfo.getInfo(NewPipeExtractorInstance.extractor, linkListHandler)
resp.relatedItems to resp.nextPage
} else {
val resp = ChannelTabInfo.getMoreItems(
NewPipeExtractorInstance.extractor,
linkListHandler,
nextPage.toPage()
)
resp.items to resp.nextPage
}
val items = resp.relatedItems return ChannelTabResponse(
.mapNotNull { it.toContentItem() } content = items.mapNotNull { it.toContentItem() },
return ChannelTabResponse(items, newNextPage) nextpage = newNextPage?.toNextPageString()
)
} }
override suspend fun getChannelByName(channelName: String): Channel { override suspend fun getChannelByName(channelName: String): Channel {