mirror of
https://github.com/TeamNewPipe/NewPipe
synced 2025-02-02 12:19:16 +00:00
media browser: pass media ID to parsing error exceptions
This commit is contained in:
parent
fad463a403
commit
b462c97ecd
@ -304,11 +304,11 @@ class MediaBrowserConnector(private val playerService: PlayerService) : Playback
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Log.w(TAG, "Unknown playlist URI: $parentId")
|
Log.w(TAG, "Unknown playlist URI: $parentId")
|
||||||
throw parseError()
|
throw parseError(parentId)
|
||||||
}
|
}
|
||||||
|
|
||||||
ID_HISTORY -> return populateHistory()
|
ID_HISTORY -> return populateHistory()
|
||||||
else -> throw parseError()
|
else -> throw parseError(parentId)
|
||||||
}
|
}
|
||||||
} catch (e: ContentNotAvailableException) {
|
} catch (e: ContentNotAvailableException) {
|
||||||
return Single.error(e)
|
return Single.error(e)
|
||||||
@ -432,7 +432,7 @@ class MediaBrowserConnector(private val playerService: PlayerService) : Playback
|
|||||||
val path = ArrayList(mediaIdUri.pathSegments)
|
val path = ArrayList(mediaIdUri.pathSegments)
|
||||||
|
|
||||||
if (path.isEmpty()) {
|
if (path.isEmpty()) {
|
||||||
throw parseError()
|
throw parseError(mediaId)
|
||||||
}
|
}
|
||||||
|
|
||||||
val uriType = path[0]
|
val uriType = path[0]
|
||||||
@ -440,17 +440,19 @@ class MediaBrowserConnector(private val playerService: PlayerService) : Playback
|
|||||||
|
|
||||||
return when (uriType) {
|
return when (uriType) {
|
||||||
ID_BOOKMARKS -> extractPlayQueueFromPlaylistMediaId(
|
ID_BOOKMARKS -> extractPlayQueueFromPlaylistMediaId(
|
||||||
|
mediaId,
|
||||||
path,
|
path,
|
||||||
mediaIdUri.getQueryParameter(ID_URL)
|
mediaIdUri.getQueryParameter(ID_URL)
|
||||||
)
|
)
|
||||||
|
|
||||||
ID_HISTORY -> extractPlayQueueFromHistoryMediaId(path)
|
ID_HISTORY -> extractPlayQueueFromHistoryMediaId(mediaId, path)
|
||||||
ID_INFO_ITEM -> extractPlayQueueFromInfoItemMediaId(
|
ID_INFO_ITEM -> extractPlayQueueFromInfoItemMediaId(
|
||||||
|
mediaId,
|
||||||
path,
|
path,
|
||||||
mediaIdUri.getQueryParameter(ID_URL)
|
mediaIdUri.getQueryParameter(ID_URL)
|
||||||
)
|
)
|
||||||
|
|
||||||
else -> throw parseError()
|
else -> throw parseError(mediaId)
|
||||||
}
|
}
|
||||||
} catch (error: ContentNotAvailableException) {
|
} catch (error: ContentNotAvailableException) {
|
||||||
return Single.error(error)
|
return Single.error(error)
|
||||||
@ -459,11 +461,12 @@ class MediaBrowserConnector(private val playerService: PlayerService) : Playback
|
|||||||
|
|
||||||
@Throws(ContentNotAvailableException::class)
|
@Throws(ContentNotAvailableException::class)
|
||||||
private fun extractPlayQueueFromPlaylistMediaId(
|
private fun extractPlayQueueFromPlaylistMediaId(
|
||||||
|
mediaId: String,
|
||||||
mediaIdSegments: ArrayList<String>,
|
mediaIdSegments: ArrayList<String>,
|
||||||
url: String?,
|
url: String?,
|
||||||
): Single<PlayQueue> {
|
): Single<PlayQueue> {
|
||||||
if (mediaIdSegments.isEmpty()) {
|
if (mediaIdSegments.isEmpty()) {
|
||||||
throw parseError()
|
throw parseError(mediaId)
|
||||||
}
|
}
|
||||||
|
|
||||||
val playlistType = mediaIdSegments.first()
|
val playlistType = mediaIdSegments.first()
|
||||||
@ -472,7 +475,7 @@ class MediaBrowserConnector(private val playerService: PlayerService) : Playback
|
|||||||
when (playlistType) {
|
when (playlistType) {
|
||||||
ID_LOCAL, ID_REMOTE -> {
|
ID_LOCAL, ID_REMOTE -> {
|
||||||
if (mediaIdSegments.size != 2) {
|
if (mediaIdSegments.size != 2) {
|
||||||
throw parseError()
|
throw parseError(mediaId)
|
||||||
}
|
}
|
||||||
val playlistId = mediaIdSegments[0].toLong()
|
val playlistId = mediaIdSegments[0].toLong()
|
||||||
val index = mediaIdSegments[1].toInt()
|
val index = mediaIdSegments[1].toInt()
|
||||||
@ -485,7 +488,7 @@ class MediaBrowserConnector(private val playerService: PlayerService) : Playback
|
|||||||
|
|
||||||
ID_URL -> {
|
ID_URL -> {
|
||||||
if (mediaIdSegments.size != 1) {
|
if (mediaIdSegments.size != 1) {
|
||||||
throw parseError()
|
throw parseError(mediaId)
|
||||||
}
|
}
|
||||||
|
|
||||||
val serviceId = mediaIdSegments[0].toInt()
|
val serviceId = mediaIdSegments[0].toInt()
|
||||||
@ -494,16 +497,17 @@ class MediaBrowserConnector(private val playerService: PlayerService) : Playback
|
|||||||
.map(::PlaylistPlayQueue)
|
.map(::PlaylistPlayQueue)
|
||||||
}
|
}
|
||||||
|
|
||||||
else -> throw parseError()
|
else -> throw parseError(mediaId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Throws(ContentNotAvailableException::class)
|
@Throws(ContentNotAvailableException::class)
|
||||||
private fun extractPlayQueueFromHistoryMediaId(
|
private fun extractPlayQueueFromHistoryMediaId(
|
||||||
|
mediaId: String,
|
||||||
path: List<String>
|
path: List<String>
|
||||||
): Single<PlayQueue> {
|
): Single<PlayQueue> {
|
||||||
if (path.size != 1) {
|
if (path.size != 1) {
|
||||||
throw parseError()
|
throw parseError(mediaId)
|
||||||
}
|
}
|
||||||
|
|
||||||
val streamId = path[0].toLong()
|
val streamId = path[0].toLong()
|
||||||
@ -692,17 +696,18 @@ class MediaBrowserConnector(private val playerService: PlayerService) : Playback
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun parseError(): ContentNotAvailableException {
|
private fun parseError(mediaId: String): ContentNotAvailableException {
|
||||||
return ContentNotAvailableException("Failed to parse media ID")
|
return ContentNotAvailableException("Failed to parse media ID $mediaId")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Throws(ContentNotAvailableException::class)
|
@Throws(ContentNotAvailableException::class)
|
||||||
private fun extractPlayQueueFromInfoItemMediaId(
|
private fun extractPlayQueueFromInfoItemMediaId(
|
||||||
|
mediaId: String,
|
||||||
path: List<String>,
|
path: List<String>,
|
||||||
url: String?
|
url: String?
|
||||||
): Single<PlayQueue> {
|
): Single<PlayQueue> {
|
||||||
if (path.size != 2) {
|
if (path.size != 2) {
|
||||||
throw parseError()
|
throw parseError(mediaId)
|
||||||
}
|
}
|
||||||
val infoItemType = infoItemTypeFromString(path[0])
|
val infoItemType = infoItemTypeFromString(path[0])
|
||||||
val serviceId = path[1].toInt()
|
val serviceId = path[1].toInt()
|
||||||
@ -729,7 +734,7 @@ class MediaBrowserConnector(private val playerService: PlayerService) : Playback
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else -> throw parseError()
|
else -> throw parseError(mediaId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user