[optimize] Optimize API call logic, do not create crashes
This commit is contained in:
@@ -13,22 +13,38 @@ object MediaManager
|
||||
|
||||
suspend fun listVideoKlasses(): List<String>
|
||||
{
|
||||
val j = ApiClient.api.getVideoClasses(token)
|
||||
return j.toList()
|
||||
try
|
||||
{
|
||||
val j = ApiClient.api.getVideoClasses(token)
|
||||
return j.toList()
|
||||
}catch(e: Exception)
|
||||
{
|
||||
return listOf()
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun listVideos(klass: String): List<Video>
|
||||
{
|
||||
val j = ApiClient.api.queryVideoClasses(klass, token)
|
||||
return j.map{
|
||||
queryVideo(klass, it)
|
||||
}.toList()
|
||||
try {
|
||||
val j = ApiClient.api.queryVideoClasses(klass, token)
|
||||
return j.map{
|
||||
queryVideo(klass, it)!!
|
||||
}.toList()
|
||||
}catch (e: Exception)
|
||||
{
|
||||
return listOf()
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun queryVideo(klass: String, id: String): Video
|
||||
suspend fun queryVideo(klass: String, id: String): Video?
|
||||
{
|
||||
val j = ApiClient.api.queryVideo(klass, id, token)
|
||||
return Video(klass = klass, id = id, token=token, j)
|
||||
try {
|
||||
val j = ApiClient.api.queryVideo(klass, id, token)
|
||||
return Video(klass = klass, id = id, token=token, j)
|
||||
}catch (e: Exception)
|
||||
{
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun listComics() : List<String>
|
||||
|
||||
@@ -50,9 +50,11 @@ object RecentManager
|
||||
try{
|
||||
val r = Json.decodeFromString<List<VideoQueryIndex>>(content)
|
||||
|
||||
_recent.value = r.map{
|
||||
val vn = r.map{
|
||||
MediaManager.queryVideo(it.klass, it.id)
|
||||
}
|
||||
}.filter { it != null }
|
||||
|
||||
_recent.value = vn.map { it!! }
|
||||
return r
|
||||
}catch (e: Exception)
|
||||
{
|
||||
@@ -82,9 +84,12 @@ object RecentManager
|
||||
|
||||
if(o.size >= 21)
|
||||
o.removeAt(o.size - 1)
|
||||
_recent.value = o.map{
|
||||
|
||||
val vn = o.map{
|
||||
MediaManager.queryVideo(it.klass, it.id)
|
||||
}
|
||||
}.filter { it != null }
|
||||
_recent.value = vn.map { it!! }
|
||||
|
||||
writeFile(context, "recent.json", Json.encodeToString(o))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user