2018-08-18 07:04:31 +02:00
|
|
|
package org.libre.agosto.p2play.models
|
|
|
|
|
2019-02-23 22:14:56 +01:00
|
|
|
import android.util.JsonReader
|
|
|
|
import android.util.JsonToken
|
2018-08-18 07:04:31 +02:00
|
|
|
import java.io.Serializable
|
|
|
|
|
|
|
|
class VideoModel(
|
2024-03-28 03:54:14 +01:00
|
|
|
var id: Int = 0,
|
|
|
|
var uuid: String = "",
|
|
|
|
var name: String = "",
|
|
|
|
var description: String = "",
|
|
|
|
var thumbUrl: String = "",
|
|
|
|
var userImageUrl: String = "",
|
|
|
|
var embedUrl: String = "",
|
|
|
|
var duration: Number = 0,
|
|
|
|
var username: String = "",
|
|
|
|
var views: Number = 0,
|
|
|
|
var userUuid: String = "",
|
|
|
|
var userHost: String = "",
|
|
|
|
var nameChannel: String = "",
|
|
|
|
var isLive: Boolean = false,
|
|
|
|
var streamingData: StreamingModel? = null
|
2019-02-23 22:14:56 +01:00
|
|
|
):Serializable {
|
2024-03-28 03:54:14 +01:00
|
|
|
fun getChannel(): String {
|
2019-02-23 22:14:56 +01:00
|
|
|
return "$nameChannel@$userHost"
|
|
|
|
}
|
|
|
|
|
2019-02-25 03:53:40 +01:00
|
|
|
fun getVideoUrl(): String {
|
|
|
|
return "https://$userHost/videos/watch/$uuid"
|
|
|
|
}
|
|
|
|
|
2019-02-23 22:14:56 +01:00
|
|
|
fun parseVideo(data: JsonReader){
|
|
|
|
data.beginObject()
|
|
|
|
while (data.hasNext()){
|
|
|
|
val key = data.nextName()
|
|
|
|
when (key.toString()) {
|
|
|
|
"id"-> this.id = data.nextInt()
|
2019-02-25 03:53:40 +01:00
|
|
|
"uuid" -> this.uuid = data.nextString()
|
2019-02-23 22:14:56 +01:00
|
|
|
"name"->{
|
|
|
|
this.name= data.nextString()
|
|
|
|
}
|
|
|
|
"description"->{
|
|
|
|
if(data.peek() == JsonToken.STRING)
|
|
|
|
this.description = data.nextString()
|
|
|
|
else
|
|
|
|
data.skipValue()
|
|
|
|
}
|
|
|
|
"duration"->{
|
|
|
|
this.duration = data.nextInt()
|
|
|
|
}
|
|
|
|
"thumbnailPath"->{
|
|
|
|
this.thumbUrl = data.nextString()
|
|
|
|
}
|
|
|
|
"embedPath"->{
|
|
|
|
this.embedUrl = data.nextString()
|
|
|
|
}
|
|
|
|
"views"->{
|
|
|
|
this.views = data.nextInt()
|
|
|
|
}
|
2024-03-28 03:54:14 +01:00
|
|
|
"isLive"-> {
|
|
|
|
this.isLive = data.nextBoolean()
|
|
|
|
}
|
|
|
|
"streamingPlaylists"-> {
|
|
|
|
data.beginArray()
|
|
|
|
if (data.hasNext()) {
|
|
|
|
val streamingData = StreamingModel()
|
|
|
|
streamingData.parse(data)
|
|
|
|
this.streamingData = streamingData
|
|
|
|
}
|
|
|
|
data.endArray()
|
|
|
|
}
|
2019-02-23 22:14:56 +01:00
|
|
|
"channel"->{
|
|
|
|
data.beginObject()
|
|
|
|
while (data.hasNext()){
|
|
|
|
val acKey = data.nextName()
|
|
|
|
when(acKey.toString()){
|
|
|
|
"displayName"-> this.username=data.nextString()
|
|
|
|
"avatar"-> {
|
|
|
|
if(data.peek() == JsonToken.BEGIN_OBJECT){
|
|
|
|
data.beginObject()
|
|
|
|
while (data.hasNext()){
|
|
|
|
val avKey = data.nextName()
|
|
|
|
when(avKey){
|
|
|
|
"path"-> this.userImageUrl = data.nextString()
|
|
|
|
else-> data.skipValue()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
data.endObject()
|
|
|
|
}
|
|
|
|
else
|
|
|
|
data.skipValue()
|
|
|
|
|
|
|
|
}
|
|
|
|
"uuid" -> this.userUuid = data.nextString()
|
|
|
|
"host" -> this.userHost = data.nextString()
|
|
|
|
"name" -> this.nameChannel = data.nextString()
|
|
|
|
else-> data.skipValue()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
data.endObject()
|
|
|
|
}
|
|
|
|
else->{
|
|
|
|
data.skipValue()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
data.endObject()
|
|
|
|
}
|
|
|
|
}
|