From 98930837af258d0c82287cd59353e055bef1150c Mon Sep 17 00:00:00 2001 From: deniscerri <64997243+deniscerri@users.noreply.github.com> Date: Sun, 24 Aug 2025 11:28:48 +0200 Subject: [PATCH] re-enable newpipe for playlist data fetching --- .../database/repository/ResultRepository.kt | 67 +++++++++---------- 1 file changed, 33 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/com/deniscerri/ytdl/database/repository/ResultRepository.kt b/app/src/main/java/com/deniscerri/ytdl/database/repository/ResultRepository.kt index cce30dcf..ca56376b 100644 --- a/app/src/main/java/com/deniscerri/ytdl/database/repository/ResultRepository.kt +++ b/app/src/main/java/com/deniscerri/ytdl/database/repository/ResultRepository.kt @@ -189,43 +189,42 @@ class ResultRepository(private val resultDao: ResultDao, private val commandTemp } private suspend fun getYoutubePlaylist(inputQuery: String, resetResults: Boolean, addToResults: Boolean) : List{ -// val id = inputQuery.split("list=".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()[1].split("&").first() -// val playlistURL = "https://youtube.com/playlist?list=${id}" -// if (resetResults) deleteAll() -// val items = mutableListOf() -// val ytExtractorResult = if (isUsingNewPipeExtractorDataFetching()){ -// newPipeUtil.getPlaylistData(playlistURL) { -// if (addToResults){ -// runBlocking { -// val ids = resultDao.insertMultiple(it) -// ids.forEachIndexed { index, id -> -// it[index].id = id -// } -// } -// } -// items.addAll(it) -// } -// }else { -// Result.failure(Throwable()) -// } -// -// val response = if (ytExtractorResult.isSuccess){ -// ytExtractorResult.getOrElse { items } -// }else{ -// -// res -// } - - val res = ytdlpUtil.getFromYTDL(inputQuery) - if (addToResults) { - val ids = resultDao.insertMultiple(res) - ids.forEachIndexed { index, id -> - res[index].id = id + val id = inputQuery.split("list=".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()[1].split("&").first() + val playlistURL = "https://youtube.com/playlist?list=${id}" + if (resetResults) deleteAll() + val items = mutableListOf() + val ytExtractorResult = if (isUsingNewPipeExtractorDataFetching()){ + newPipeUtil.getPlaylistData(playlistURL) { + if (addToResults){ + runBlocking { + val ids = resultDao.insertMultiple(it) + ids.forEachIndexed { index, id -> + it[index].id = id + } + } + } + items.addAll(it) } + }else { + Result.failure(Throwable()) } - itemCount.value = res.size - return res + val result = if (ytExtractorResult.isSuccess){ + ytExtractorResult.getOrElse { items } + }else{ + val res = ytdlpUtil.getFromYTDL(inputQuery) + if (addToResults) { + val ids = resultDao.insertMultiple(res) + ids.forEachIndexed { index, id -> + res[index].id = id + } + } + + res + } + + itemCount.value = result.size + return result } private suspend fun getYoutubeChannel(url: String, resetResults: Boolean, addToResults: Boolean) : List{