Models parse funcion added and channel model added

This commit is contained in:
ivan agosto 2019-02-23 15:14:56 -06:00
parent d360a1849e
commit 743c3147c1
10 changed files with 261 additions and 111 deletions

View File

@ -7,7 +7,7 @@ apply plugin: 'kotlin-android-extensions'
android { android {
compileSdkVersion 27 compileSdkVersion 27
defaultConfig { defaultConfig {
applicationId "mx.agosto182.p2play" applicationId "org.libre.agosto.p2play"
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 27 targetSdkVersion 27
versionCode 4 versionCode 4

View File

@ -21,6 +21,7 @@ class Actions: Client() {
response = -1 response = -1
} }
con.disconnect()
return response return response
} }
@ -38,6 +39,7 @@ class Actions: Client() {
response = -1 response = -1
} }
con.disconnect()
return response return response
} }
@ -61,6 +63,7 @@ class Actions: Client() {
} }
} }
} }
data.close()
} }
} }
catch (err: Exception){ catch (err: Exception){
@ -68,6 +71,7 @@ class Actions: Client() {
isSubscribed = false isSubscribed = false
} }
con.disconnect()
return isSubscribed return isSubscribed
} }
@ -87,6 +91,7 @@ class Actions: Client() {
response = -1 response = -1
} }
con.disconnect()
return response return response
} }
@ -110,6 +115,7 @@ class Actions: Client() {
} }
} }
} }
con.disconnect()
} }
} }
catch (err: Exception){ catch (err: Exception){
@ -117,6 +123,7 @@ class Actions: Client() {
rating = "none" rating = "none"
} }
con.disconnect()
return rating return rating
} }

View File

@ -35,6 +35,7 @@ class Auth: Client() {
} }
data.endObject() data.endObject()
data.close()
token.status = 1 token.status = 1
} }
@ -47,6 +48,7 @@ class Auth: Client() {
token.status = 0 token.status = 0
} }
con.disconnect()
return token return token
} }
@ -67,6 +69,7 @@ class Auth: Client() {
response = -1 response = -1
} }
con.disconnect()
return response return response
} }
@ -93,6 +96,7 @@ class Auth: Client() {
} }
data.endObject() data.endObject()
data.close()
token.status = 1 token.status = 1
} }
@ -105,6 +109,7 @@ class Auth: Client() {
token.status = 0 token.status = 0
} }
con.disconnect()
return token return token
} }
@ -158,6 +163,7 @@ class Auth: Client() {
} }
data.endObject() data.endObject()
data.close()
user.status = 1 user.status = 1
} }
@ -170,6 +176,7 @@ class Auth: Client() {
user.status = 0 user.status = 0
} }
con.disconnect()
return user return user
} }

View File

@ -0,0 +1,35 @@
package org.libre.agosto.p2play.ajax
import android.util.JsonReader
import android.util.JsonToken
import org.libre.agosto.p2play.models.ChannelModel
import org.libre.agosto.p2play.models.CommentaryModel
import java.io.InputStreamReader
class Channels: Client() {
private fun parseChannel(data: JsonReader): ChannelModel{
val channel = ChannelModel()
data.close()
return channel
}
fun getChannelInfo(channelId: String): ChannelModel {
val con = this._newCon("video-channels/$channelId", "GET")
var channel = ChannelModel()
try {
if(con.responseCode == 200){
val response = InputStreamReader(con.inputStream)
val data = JsonReader(response)
channel.parseChannel(data)
data.close()
}
}catch (err: Exception) {
err.printStackTrace()
}
return channel
}
}

View File

@ -56,10 +56,13 @@ open class Client {
} }
} }
} }
data.close()
} }
} catch(err:Exception){ } catch(err:Exception){
err.printStackTrace() err.printStackTrace()
} }
con.disconnect()
return keys return keys
} }

View File

@ -8,7 +8,7 @@ import java.io.InputStreamReader
class Comments: Client() { class Comments: Client() {
fun parseCommentaries(data: JsonReader): ArrayList<CommentaryModel> { private fun parseCommentaries(data: JsonReader): ArrayList<CommentaryModel> {
val commentaries = arrayListOf<CommentaryModel>() val commentaries = arrayListOf<CommentaryModel>()
data.beginObject() data.beginObject()
while (data.hasNext()){ while (data.hasNext()){
@ -17,47 +17,7 @@ class Comments: Client() {
data.beginArray() data.beginArray()
while (data.hasNext()) { while (data.hasNext()) {
val comment = CommentaryModel() val comment = CommentaryModel()
data.beginObject() comment.parseCommentary(data)
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) commentaries.add(comment)
} }
data.endArray() data.endArray()
@ -79,11 +39,12 @@ class Comments: Client() {
val response = InputStreamReader(con.inputStream) val response = InputStreamReader(con.inputStream)
val data = JsonReader(response) val data = JsonReader(response)
commentaries = parseCommentaries(data) commentaries = parseCommentaries(data)
data.close()
} }
} catch(err:Exception){ } catch(err:Exception){
err.printStackTrace() err.printStackTrace()
} }
con.disconnect()
return commentaries return commentaries
} }
@ -92,19 +53,25 @@ class Comments: Client() {
val params = "text=$text" val params = "text=$text"
con.outputStream.write(params.toByteArray()) con.outputStream.write(params.toByteArray())
var response: Boolean
try { try {
if (con.responseCode == 200) { if (con.responseCode == 200) {
return true con.disconnect()
response = true
} }
else{ else{
Log.d("Status", con.responseMessage) Log.d("Status", con.responseMessage)
response = false
} }
} }
catch (err: Exception){ catch (err: Exception){
err.printStackTrace() err.printStackTrace()
response = false
} }
return false con.disconnect()
return response
} }
} }

View File

@ -17,68 +17,7 @@ class Videos: Client() {
data.beginArray() data.beginArray()
while (data.hasNext()) { while (data.hasNext()) {
val video = VideoModel() val video = VideoModel()
data.beginObject() video.parseVideo(data)
while (data.hasNext()){
val key = data.nextName()
when (key.toString()) {
"id"-> video.id = data.nextInt()
"name"->{
video.name= data.nextString()
}
"description"->{
if(data.peek() == JsonToken.STRING)
video.description = data.nextString()
else
data.skipValue()
}
"duration"->{
video.duration = data.nextInt()
}
"thumbnailPath"->{
video.thumbUrl = data.nextString()
}
"embedPath"->{
video.embedUrl = data.nextString()
}
"views"->{
video.views = data.nextInt()
}
"channel"->{
data.beginObject()
while (data.hasNext()){
val acKey = data.nextName()
when(acKey.toString()){
"displayName"-> video.username=data.nextString()
"avatar"-> {
if(data.peek() == JsonToken.BEGIN_OBJECT){
data.beginObject()
while (data.hasNext()){
val avKey = data.nextName()
when(avKey){
"path"-> video.userImageUrl = data.nextString()
else-> data.skipValue()
}
}
data.endObject()
}
else
data.skipValue()
}
"uuid" -> video.userUuid = data.nextString()
"host" -> video.userHost = data.nextString()
"name" -> video.nameChannel = data.nextString()
else-> data.skipValue()
}
}
data.endObject()
}
else->{
data.skipValue()
}
}
}
data.endObject()
videos.add(video) videos.add(video)
} }
data.endArray() data.endArray()
@ -104,10 +43,12 @@ class Videos: Client() {
val response = InputStreamReader(con.inputStream) val response = InputStreamReader(con.inputStream)
val data = JsonReader(response) val data = JsonReader(response)
videos = parseVideos(data) videos = parseVideos(data)
data.close()
} }
} catch(err:Exception){ } catch(err:Exception){
err.printStackTrace() err.printStackTrace()
} }
con.disconnect()
return videos return videos
} }
@ -137,10 +78,13 @@ class Videos: Client() {
val response = InputStreamReader(con.inputStream) val response = InputStreamReader(con.inputStream)
val data = JsonReader(response) val data = JsonReader(response)
videos = parseVideos(data) videos = parseVideos(data)
data.close()
} }
} catch(err:Exception){ } catch(err:Exception){
err.printStackTrace() err.printStackTrace()
} }
con.disconnect()
return videos return videos
} }
@ -154,10 +98,13 @@ class Videos: Client() {
val response = InputStreamReader(con.inputStream) val response = InputStreamReader(con.inputStream)
val data = JsonReader(response) val data = JsonReader(response)
videos = parseVideos(data) videos = parseVideos(data)
data.close()
} }
} catch(err:Exception){ } catch(err:Exception){
err.printStackTrace() err.printStackTrace()
} }
con.disconnect()
return videos return videos
} }
@ -172,10 +119,12 @@ class Videos: Client() {
val response = InputStreamReader(con.inputStream) val response = InputStreamReader(con.inputStream)
val data = JsonReader(response) val data = JsonReader(response)
videos = parseVideos(data) videos = parseVideos(data)
data.close()
} }
} catch(err:Exception){ } catch(err:Exception){
err.printStackTrace() err.printStackTrace()
} }
con.disconnect()
return videos return videos
} }
@ -197,12 +146,12 @@ class Videos: Client() {
} }
data.endObject() data.endObject()
data.close() data.close()
} }
} catch(err:Exception){ } catch(err:Exception){
err.printStackTrace() err.printStackTrace()
description = "Error!" description = "Error!"
} }
con.disconnect()
return description return description
} }
} }

View File

@ -0,0 +1,64 @@
package org.libre.agosto.p2play.models
import android.util.JsonReader
import android.util.JsonToken
class ChannelModel (
var id: Int = 0,
var url: String = "",
var nameChannel: String = "",
var followers: Int = 0,
var host: String = "",
var name: String = "",
var description: String = "",
var support: String = "",
var channelImg: String = ""
) {
fun getAccount(): String {
return "$nameChannel@$host"
}
fun parseChannel(data: JsonReader) {
data.beginObject()
while (data.hasNext()) {
when(data.nextName()){
"id" -> this.id = data.nextInt()
"url" -> this.url = data.nextString()
"name" -> this.nameChannel = data.nextString()
"host" -> this.host = data.nextString()
"followersCount" -> this.followers = data.nextInt()
"displayName" -> this.name = data.nextString()
"description" -> {
if(data.peek() == JsonToken.STRING)
this.description = data.nextString()
else
data.skipValue()
}
"support" -> {
if(data.peek() == JsonToken.STRING)
this.support = data.nextString()
else
data.skipValue()
}
"avatar" -> {
if(data.peek() == JsonToken.BEGIN_OBJECT){
data.beginObject()
while (data.hasNext()){
when(data.nextName()){
"path" -> this.channelImg = data.nextString()
else -> data.skipValue()
}
}
data.endObject()
}
else
data.skipValue()
}
else -> data.skipValue()
}
}
data.endObject()
}
}

View File

@ -1,5 +1,8 @@
package org.libre.agosto.p2play.models package org.libre.agosto.p2play.models
import android.util.JsonReader
import android.util.JsonToken
class CommentaryModel ( class CommentaryModel (
var id: Int = 0, var id: Int = 0,
var threadId: Int = 0, var threadId: Int = 0,
@ -9,4 +12,48 @@ class CommentaryModel (
var commentary: String = "", var commentary: String = "",
var userHost: String = "", var userHost: String = "",
var replies: Int = 0 var replies: Int = 0
) ) {
fun parseCommentary(data: JsonReader) {
data.beginObject()
while (data.hasNext()) {
val key = data.nextName()
when (key.toString()) {
"id" -> this.id = data.nextInt()
"threadId" -> this.threadId = data.nextInt()
"text" -> this.commentary = data.nextString()
"totalReplies" -> this.replies = data.nextInt()
"account" -> {
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()
else -> data.skipValue()
}
}
data.endObject()
}
else -> data.skipValue()
}
}
data.endObject()
}
}

View File

@ -1,5 +1,7 @@
package org.libre.agosto.p2play.models package org.libre.agosto.p2play.models
import android.util.JsonReader
import android.util.JsonToken
import java.io.Serializable import java.io.Serializable
class VideoModel( class VideoModel(
@ -15,4 +17,73 @@ class VideoModel(
var userUuid: String = "", var userUuid: String = "",
var userHost: String = "", var userHost: String = "",
var nameChannel: String = "" var nameChannel: String = ""
):Serializable ):Serializable {
fun getAccount(): String {
return "$nameChannel@$userHost"
}
fun parseVideo(data: JsonReader){
data.beginObject()
while (data.hasNext()){
val key = data.nextName()
when (key.toString()) {
"id"-> this.id = data.nextInt()
"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()
}
"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()
}
}