diff --git a/app/src/main/java/org/libre/agosto/p2play/ajax/Comments.kt b/app/src/main/java/org/libre/agosto/p2play/ajax/Comments.kt new file mode 100644 index 0000000..043357e --- /dev/null +++ b/app/src/main/java/org/libre/agosto/p2play/ajax/Comments.kt @@ -0,0 +1,92 @@ +package org.libre.agosto.p2play.ajax + +import android.util.JsonReader +import android.util.JsonToken +import android.util.Log +import org.libre.agosto.p2play.models.CommentaryModel +import java.io.InputStreamReader + +class Comments: Client() { + + fun parseCommentaries(data: JsonReader): ArrayList { + var commentaries = arrayListOf() + data.beginObject() + while (data.hasNext()){ + when(data.nextName()) { + "data" -> { + data.beginArray() + while (data.hasNext()) { + val comment = CommentaryModel() + data.beginObject() + while (data.hasNext()) { + val key = data.nextName() + when (key.toString()) { + "id" -> comment.id = data.nextInt() + "threadId" -> comment.threadId = data.nextInt() + "text" -> comment.commentary = data.nextString() + "totalReplies" -> comment.replies = data.nextInt() + "account" -> { + data.beginObject() + while (data.hasNext()){ + val acKey = data.nextName() + when(acKey.toString()){ + "displayName"-> comment.username=data.nextString() + "avatar"-> { + if(data.peek() == JsonToken.BEGIN_OBJECT){ + data.beginObject() + while (data.hasNext()){ + val avKey = data.nextName() + when(avKey){ + "path"-> comment.userImageUrl = data.nextString() + else-> data.skipValue() + } + } + data.endObject() + } + else + data.skipValue() + + } + "uuid" -> comment.userUuid = data.nextString() + "host" -> comment.userHost = data.nextString() + else -> data.skipValue() + } + } + data.endObject() + } + else -> data.skipValue() + } + } + data.endObject() + commentaries.add(comment) + } + data.endArray() + } + else -> data.skipValue() + } + } + data.endObject() + + return commentaries + } + + fun getCommentaries(videoId: Int): ArrayList { + var commentaries = arrayListOf() + val con = this._newCon("videos/$videoId/comment-threads", "GET") + + try { + if (con.responseCode == 200) { + var response = InputStreamReader(con.inputStream) + var data = JsonReader(response) + commentaries = parseCommentaries(data) + } + } catch(err:Exception){ + err?.printStackTrace() + Log.d("TypeErr",err?.message ,err.cause) + Log.d("Error","fallo la coneccion") + } + + return commentaries + } + +} \ No newline at end of file diff --git a/app/src/main/java/org/libre/agosto/p2play/models/CommentaryModel.kt b/app/src/main/java/org/libre/agosto/p2play/models/CommentaryModel.kt index 2ab6093..f1b5b47 100644 --- a/app/src/main/java/org/libre/agosto/p2play/models/CommentaryModel.kt +++ b/app/src/main/java/org/libre/agosto/p2play/models/CommentaryModel.kt @@ -2,8 +2,11 @@ package org.libre.agosto.p2play.models class CommentaryModel ( var id: Int = 0, - var uuid: Int = 0, + var threadId: Int = 0, + var userUuid: String = "", var username: String = "", var userImageUrl: String = "", - var commentary: String = "" + var commentary: String = "", + var userHost: String = "", + var replies: Int = 0 ) \ No newline at end of file