mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-28 16:00:31 +05:30
use the new route
This commit is contained in:
parent
7c775f4937
commit
53ebd3363f
@ -107,23 +107,26 @@ object PlaylistsHelper {
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun addToPlaylist(playlistId: String, videoId: String): Boolean {
|
suspend fun addToPlaylist(playlistId: String, vararg videoIds: String): Boolean {
|
||||||
if (!loggedIn()) {
|
if (!loggedIn()) {
|
||||||
val localPlaylistItem = RetrofitInstance.api.getStreams(videoId).toLocalPlaylistItem(playlistId, videoId)
|
val localPlaylist = DatabaseHolder.Database.localPlaylistsDao().getAll()
|
||||||
awaitQuery {
|
.first { it.playlist.id.toString() == playlistId }
|
||||||
// avoid duplicated videos in a playlist
|
|
||||||
DatabaseHolder.Database.localPlaylistsDao().deletePlaylistItemsByVideoId(playlistId, videoId)
|
|
||||||
|
|
||||||
// add the new video to the database
|
for (videoId in videoIds) {
|
||||||
DatabaseHolder.Database.localPlaylistsDao().addPlaylistVideo(localPlaylistItem)
|
val localPlaylistItem = RetrofitInstance.api.getStreams(videoId).toLocalPlaylistItem(playlistId, videoId)
|
||||||
val localPlaylist = DatabaseHolder.Database.localPlaylistsDao().getAll()
|
awaitQuery {
|
||||||
.first { it.playlist.id.toString() == playlistId }
|
// avoid duplicated videos in a playlist
|
||||||
|
DatabaseHolder.Database.localPlaylistsDao().deletePlaylistItemsByVideoId(playlistId, videoId)
|
||||||
|
|
||||||
if (localPlaylist.playlist.thumbnailUrl == "") {
|
// add the new video to the database
|
||||||
// set the new playlist thumbnail URL
|
DatabaseHolder.Database.localPlaylistsDao().addPlaylistVideo(localPlaylistItem)
|
||||||
localPlaylistItem.thumbnailUrl?.let {
|
|
||||||
localPlaylist.playlist.thumbnailUrl = it
|
if (localPlaylist.playlist.thumbnailUrl == "") {
|
||||||
DatabaseHolder.Database.localPlaylistsDao().updatePlaylist(localPlaylist.playlist)
|
// set the new playlist thumbnail URL
|
||||||
|
localPlaylistItem.thumbnailUrl?.let {
|
||||||
|
localPlaylist.playlist.thumbnailUrl = it
|
||||||
|
DatabaseHolder.Database.localPlaylistsDao().updatePlaylist(localPlaylist.playlist)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -132,7 +135,10 @@ object PlaylistsHelper {
|
|||||||
|
|
||||||
return RetrofitInstance.authApi.addToPlaylist(
|
return RetrofitInstance.authApi.addToPlaylist(
|
||||||
token,
|
token,
|
||||||
PlaylistId(playlistId, videoId)
|
PlaylistId(
|
||||||
|
playlistId = playlistId,
|
||||||
|
videoIds = videoIds.toList()
|
||||||
|
)
|
||||||
).message == "ok"
|
).message == "ok"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -185,16 +191,13 @@ object PlaylistsHelper {
|
|||||||
|
|
||||||
suspend fun importPlaylists(appContext: Context, playlists: List<ImportPlaylist>) {
|
suspend fun importPlaylists(appContext: Context, playlists: List<ImportPlaylist>) {
|
||||||
for (playlist in playlists) {
|
for (playlist in playlists) {
|
||||||
Log.e("playlist", playlist.toString())
|
|
||||||
val playlistId = createPlaylist(playlist.name!!, appContext) ?: continue
|
val playlistId = createPlaylist(playlist.name!!, appContext) ?: continue
|
||||||
runBlocking {
|
addToPlaylist(
|
||||||
val tasks = playlist.videos.map { videoId ->
|
playlistId,
|
||||||
async { addToPlaylist(playlistId, videoId.substringAfter("=")) }
|
*playlist.videos.map {
|
||||||
}
|
it.substringAfter("=")
|
||||||
tasks.forEach {
|
}.toTypedArray()
|
||||||
it.await()
|
)
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties
|
|||||||
data class PlaylistId(
|
data class PlaylistId(
|
||||||
var playlistId: String? = null,
|
var playlistId: String? = null,
|
||||||
var videoId: String? = null,
|
var videoId: String? = null,
|
||||||
|
var videoIds: List<String>? = null,
|
||||||
var newName: String? = null,
|
var newName: String? = null,
|
||||||
var index: Int = -1
|
var index: Int = -1
|
||||||
)
|
)
|
||||||
|
@ -17,7 +17,6 @@ import com.github.libretube.extensions.toID
|
|||||||
import com.github.libretube.ui.activities.MainActivity
|
import com.github.libretube.ui.activities.MainActivity
|
||||||
import com.github.libretube.ui.views.TimePickerPreference
|
import com.github.libretube.ui.views.TimePickerPreference
|
||||||
import com.github.libretube.util.PreferenceHelper
|
import com.github.libretube.util.PreferenceHelper
|
||||||
import kotlinx.coroutines.async
|
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
import java.time.LocalTime
|
import java.time.LocalTime
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user