Skip to content

Commit fb02b44

Browse files
authored
Merge pull request libre-tube#7158 from Bnyro/master
fix: infinitely looping channel tab items when using full local npe
2 parents 4478c72 + 119a757 commit fb02b44

1 file changed

Lines changed: 15 additions & 5 deletions

File tree

app/src/main/java/com/github/libretube/api/NewPipeMediaServiceRepository.kt

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -393,12 +393,22 @@ class NewPipeMediaServiceRepository : MediaServiceRepository {
393393
override suspend fun getChannelTab(data: String, nextPage: String?): ChannelTabResponse {
394394
val linkListHandler = data.toListLinkHandler()
395395

396-
val resp = ChannelTabInfo.getInfo(NewPipeExtractorInstance.extractor, linkListHandler)
397-
val newNextPage = resp.nextPage?.toNextPageString()
396+
val (items, newNextPage) = if (nextPage == null) {
397+
val resp = ChannelTabInfo.getInfo(NewPipeExtractorInstance.extractor, linkListHandler)
398+
resp.relatedItems to resp.nextPage
399+
} else {
400+
val resp = ChannelTabInfo.getMoreItems(
401+
NewPipeExtractorInstance.extractor,
402+
linkListHandler,
403+
nextPage.toPage()
404+
)
405+
resp.items to resp.nextPage
406+
}
398407

399-
val items = resp.relatedItems
400-
.mapNotNull { it.toContentItem() }
401-
return ChannelTabResponse(items, newNextPage)
408+
return ChannelTabResponse(
409+
content = items.mapNotNull { it.toContentItem() },
410+
nextpage = newNextPage?.toNextPageString()
411+
)
402412
}
403413

404414
override suspend fun getChannelByName(channelName: String): Channel {

0 commit comments

Comments
 (0)