re-enable newpipe for playlist data fetching

This commit is contained in:
deniscerri 2025-08-24 11:28:48 +02:00
parent 5416416d6a
commit 98930837af
No known key found for this signature in database
GPG key ID: 95C43D517D830350

View file

@ -189,43 +189,42 @@ class ResultRepository(private val resultDao: ResultDao, private val commandTemp
}
private suspend fun getYoutubePlaylist(inputQuery: String, resetResults: Boolean, addToResults: Boolean) : List<ResultItem>{
// 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<ResultItem>()
// 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<ResultItem>()
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<ResultItem>{