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 {
compileSdkVersion 27
defaultConfig {
applicationId "mx.agosto182.p2play"
applicationId "org.libre.agosto.p2play"
minSdkVersion 21
targetSdkVersion 27
versionCode 4

View File

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

View File

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

View File

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

View File

@ -17,68 +17,7 @@ class Videos: Client() {
data.beginArray()
while (data.hasNext()) {
val video = VideoModel()
data.beginObject()
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()
video.parseVideo(data)
videos.add(video)
}
data.endArray()
@ -104,10 +43,12 @@ class Videos: Client() {
val response = InputStreamReader(con.inputStream)
val data = JsonReader(response)
videos = parseVideos(data)
data.close()
}
} catch(err:Exception){
err.printStackTrace()
}
con.disconnect()
return videos
}
@ -137,10 +78,13 @@ class Videos: Client() {
val response = InputStreamReader(con.inputStream)
val data = JsonReader(response)
videos = parseVideos(data)
data.close()
}
} catch(err:Exception){
err.printStackTrace()
}
con.disconnect()
return videos
}
@ -154,10 +98,13 @@ class Videos: Client() {
val response = InputStreamReader(con.inputStream)
val data = JsonReader(response)
videos = parseVideos(data)
data.close()
}
} catch(err:Exception){
err.printStackTrace()
}
con.disconnect()
return videos
}
@ -172,10 +119,12 @@ class Videos: Client() {
val response = InputStreamReader(con.inputStream)
val data = JsonReader(response)
videos = parseVideos(data)
data.close()
}
} catch(err:Exception){
err.printStackTrace()
}
con.disconnect()
return videos
}
@ -197,12 +146,12 @@ class Videos: Client() {
}
data.endObject()
data.close()
}
} catch(err:Exception){
err.printStackTrace()
description = "Error!"
}
con.disconnect()
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
import android.util.JsonReader
import android.util.JsonToken
class CommentaryModel (
var id: Int = 0,
var threadId: Int = 0,
@ -9,4 +12,48 @@ class CommentaryModel (
var commentary: String = "",
var userHost: String = "",
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
import android.util.JsonReader
import android.util.JsonToken
import java.io.Serializable
class VideoModel(
@ -15,4 +17,73 @@ class VideoModel(
var userUuid: String = "",
var userHost: 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()
}
}