make youtube playlist fetch only through yt-dlp
This commit is contained in:
parent
df71ddaa27
commit
3d4e9b6df8
3 changed files with 37 additions and 35 deletions
|
|
@ -189,41 +189,43 @@ 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)
|
||||
// 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
|
||||
}
|
||||
}else {
|
||||
Result.failure(Throwable())
|
||||
}
|
||||
|
||||
val response = if (ytExtractorResult.isSuccess){
|
||||
ytExtractorResult.getOrElse { items }
|
||||
}else{
|
||||
val res = ytdlpUtil.getFromYTDL(playlistURL)
|
||||
if (addToResults) {
|
||||
val ids = resultDao.insertMultiple(res)
|
||||
ids.forEachIndexed { index, id ->
|
||||
res[index].id = id
|
||||
}
|
||||
}
|
||||
res
|
||||
}
|
||||
|
||||
itemCount.value = response.size
|
||||
return response
|
||||
itemCount.value = res.size
|
||||
return res
|
||||
}
|
||||
|
||||
private suspend fun getYoutubeChannel(url: String, resetResults: Boolean, addToResults: Boolean) : List<ResultItem>{
|
||||
|
|
|
|||
|
|
@ -2450,6 +2450,8 @@ object UiUtil {
|
|||
|
||||
@SuppressLint("UnspecifiedRegisterReceiverFlag")
|
||||
fun showNewAppUpdateDialog(v: GithubRelease, context: Activity, preferences: SharedPreferences) {
|
||||
if (context.isFinishing || context.isDestroyed) return
|
||||
|
||||
val downloadManager = context.getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
|
||||
val skippedVersions = preferences.getString("skip_updates", "")?.split(",")?.distinct()?.toMutableList() ?: mutableListOf()
|
||||
|
||||
|
|
|
|||
|
|
@ -214,7 +214,7 @@ class NewPipeUtil(context: Context) {
|
|||
}
|
||||
}
|
||||
|
||||
suspend fun getPlaylistData(playlistURL: String, progress: (pagedResults: MutableList<ResultItem>) -> Unit) : Result<List<ResultItem>> {
|
||||
fun getPlaylistData(playlistURL: String, progress: (pagedResults: MutableList<ResultItem>) -> Unit) : Result<List<ResultItem>> {
|
||||
try {
|
||||
val totalItems = mutableListOf<ResultItem>()
|
||||
var nextPage : Page? = null
|
||||
|
|
@ -235,8 +235,6 @@ class NewPipeUtil(context: Context) {
|
|||
tmp.items.toList()
|
||||
}
|
||||
|
||||
if (req.isEmpty()) return Result.failure(Throwable())
|
||||
|
||||
for (element in req) {
|
||||
if (element is StreamInfoItem) {
|
||||
if (element.duration <= 0) continue
|
||||
|
|
|
|||
Loading…
Reference in a new issue