From 74b62870c6a5e5a09229513c02e71194f28a0993 Mon Sep 17 00:00:00 2001 From: Li ZongYing Date: Wed, 3 Apr 2024 18:46:49 +0800 Subject: [PATCH] some channel epg --- HISTORY.md | 7 + README.md | 2 +- .../java/com/lizongying/mytv/MainActivity.kt | 3 +- .../java/com/lizongying/mytv/MainFragment.kt | 17 +- .../main/java/com/lizongying/mytv/Request.kt | 248 ++--- app/src/main/java/com/lizongying/mytv/TV.kt | 5 +- .../main/java/com/lizongying/mytv/TVList.kt | 290 +++--- .../java/com/lizongying/mytv/api/ApiClient.kt | 10 + .../main/java/com/lizongying/mytv/api/YSP.kt | 2 - .../com/lizongying/mytv/api/YSPJceService.kt | 19 + .../lizongying/mytv/jce/CompressUtils.java | 133 +++ .../mytv/jce/JceConverterFactory.java | 45 + .../mytv/jce/JceRequestBodyConverter.java | 70 ++ .../mytv/jce/JceResponseBodyConverter.java | 64 ++ .../main/java/com/lizongying/mytv/jce/a.java | 160 ++++ .../main/java/com/lizongying/mytv/jce/b.java | 187 ++++ .../com/lizongying/mytv/models/ProgramType.kt | 7 + .../com/lizongying/mytv/models/TVViewModel.kt | 5 + app/src/main/java/com/qq/taf/jce/HexUtil.java | 72 ++ .../com/qq/taf/jce/JceDecodeException.java | 7 + .../com/qq/taf/jce/JceEncodeException.java | 7 + .../java/com/qq/taf/jce/JceInputStream.java | 896 ++++++++++++++++++ .../java/com/qq/taf/jce/JceOutputStream.java | 361 +++++++ .../main/java/com/qq/taf/jce/JceStruct.java | 86 ++ .../taf/jce/OnIllegalArgumentException.java | 7 + .../android/datamodel/cctvjce/Action.java | 55 ++ .../datamodel/cctvjce/BucketConfig.java | 36 + .../datamodel/cctvjce/BusinessExtent.java | 27 + .../datamodel/cctvjce/BusinessHead.java | 42 + .../datamodel/cctvjce/Coordinates.java | 46 + .../datamodel/cctvjce/ExtentAccount.java | 33 + .../android/datamodel/cctvjce/ExtentData.java | 52 + .../android/datamodel/cctvjce/LogReport.java | 115 +++ .../android/datamodel/cctvjce/LoginToken.java | 61 ++ .../datamodel/cctvjce/QQVideoJCECmd.java | 443 +++++++++ .../android/datamodel/cctvjce/QUA.java | 255 +++++ .../datamodel/cctvjce/RequestCommand.java | 54 ++ .../datamodel/cctvjce/RequestHead.java | 141 +++ .../datamodel/cctvjce/ResponseCommand.java | 54 ++ .../datamodel/cctvjce/ResponseHead.java | 46 + .../android/datamodel/cctvjce/SafeInfo.java | 52 + .../android/datamodel/cctvjce/TVProgram.java | 85 ++ .../cctvjce/TVTimeShiftProgramRequest.java | 26 + .../cctvjce/TVTimeShiftProgramResponse.java | 58 ++ .../cctvjce/TextInnerLayoutInfo.java | 45 + 45 files changed, 4132 insertions(+), 304 deletions(-) create mode 100644 app/src/main/java/com/lizongying/mytv/api/YSPJceService.kt create mode 100644 app/src/main/java/com/lizongying/mytv/jce/CompressUtils.java create mode 100644 app/src/main/java/com/lizongying/mytv/jce/JceConverterFactory.java create mode 100644 app/src/main/java/com/lizongying/mytv/jce/JceRequestBodyConverter.java create mode 100644 app/src/main/java/com/lizongying/mytv/jce/JceResponseBodyConverter.java create mode 100644 app/src/main/java/com/lizongying/mytv/jce/a.java create mode 100644 app/src/main/java/com/lizongying/mytv/jce/b.java create mode 100644 app/src/main/java/com/lizongying/mytv/models/ProgramType.kt create mode 100644 app/src/main/java/com/qq/taf/jce/HexUtil.java create mode 100644 app/src/main/java/com/qq/taf/jce/JceDecodeException.java create mode 100644 app/src/main/java/com/qq/taf/jce/JceEncodeException.java create mode 100644 app/src/main/java/com/qq/taf/jce/JceInputStream.java create mode 100644 app/src/main/java/com/qq/taf/jce/JceOutputStream.java create mode 100644 app/src/main/java/com/qq/taf/jce/JceStruct.java create mode 100644 app/src/main/java/com/qq/taf/jce/OnIllegalArgumentException.java create mode 100644 app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/Action.java create mode 100644 app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/BucketConfig.java create mode 100644 app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/BusinessExtent.java create mode 100644 app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/BusinessHead.java create mode 100644 app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/Coordinates.java create mode 100644 app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/ExtentAccount.java create mode 100644 app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/ExtentData.java create mode 100644 app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/LogReport.java create mode 100644 app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/LoginToken.java create mode 100644 app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/QQVideoJCECmd.java create mode 100644 app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/QUA.java create mode 100644 app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/RequestCommand.java create mode 100644 app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/RequestHead.java create mode 100644 app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/ResponseCommand.java create mode 100644 app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/ResponseHead.java create mode 100644 app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/SafeInfo.java create mode 100644 app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/TVProgram.java create mode 100644 app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/TVTimeShiftProgramRequest.java create mode 100644 app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/TVTimeShiftProgramResponse.java create mode 100644 app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/TextInnerLayoutInfo.java diff --git a/HISTORY.md b/HISTORY.md index 0e27576c..c044d9d4 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,11 +1,18 @@ ## 更新日志 +### v1.7.6(通用) + +* 临时去掉部分频道,提高频道的可用性 +* 部分频道增加节目单 + ### v1.7.4(通用) * 修复368 ### v1.7.3(安卓5及以上专用) +* 临时去掉部分频道,提高频道的可用性 +* 部分频道增加节目单 * 遥控器左键进入节目列表 * 遥控器右键进入菜单 diff --git a/README.md b/README.md index 9ed44ff4..79021db7 100644 --- a/README.md +++ b/README.md @@ -31,13 +31,13 @@ adb install my-tv.apk * CHC高清三个电影频道 * 地方频道 * 收藏夹 -* 自定义源 * 海外 * 节目增加预告 * 频道列表优化 * 自动更新 * 显示时间 * 软解 +* 不同分辨率 ## 赞赏 diff --git a/app/src/main/java/com/lizongying/mytv/MainActivity.kt b/app/src/main/java/com/lizongying/mytv/MainActivity.kt index d59b95c9..87860f98 100644 --- a/app/src/main/java/com/lizongying/mytv/MainActivity.kt +++ b/app/src/main/java/com/lizongying/mytv/MainActivity.kt @@ -58,7 +58,6 @@ class MainActivity : FragmentActivity(), Request.RequestListener { setContentView(R.layout.activity_main) - Request.onCreate() Request.setRequestListener(this) window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) @@ -202,7 +201,7 @@ class MainActivity : FragmentActivity(), Request.RequestListener { fun fragmentReady() { ready++ Log.i(TAG, "ready $ready") - if (ready == 6) { + if (ready == 5) { mainFragment.fragmentReady() } } diff --git a/app/src/main/java/com/lizongying/mytv/MainFragment.kt b/app/src/main/java/com/lizongying/mytv/MainFragment.kt index 7fcdda81..6f79dfba 100644 --- a/app/src/main/java/com/lizongying/mytv/MainFragment.kt +++ b/app/src/main/java/com/lizongying/mytv/MainFragment.kt @@ -19,6 +19,7 @@ import androidx.leanback.widget.Row import androidx.leanback.widget.RowPresenter import androidx.lifecycle.lifecycleScope import com.lizongying.mytv.api.YSP +import com.lizongying.mytv.models.ProgramType import com.lizongying.mytv.models.TVListViewModel import com.lizongying.mytv.models.TVViewModel import kotlinx.coroutines.Dispatchers @@ -298,10 +299,18 @@ class MainFragment : BrowseSupportFragment() { } private fun updateEPG(tvViewModel: TVViewModel) { - if (tvViewModel.getTV().channel == "港澳台") { - Request.fetchFEPG(tvViewModel) - } else { - Request.fetchYEPG(tvViewModel) + when (tvViewModel.getTV().programType) { + ProgramType.Y_PROTO -> { + Request.fetchYProtoEPG(tvViewModel) + } + + ProgramType.Y_JCE -> { + Request.fetchYJceEPG(tvViewModel) + } + + ProgramType.F -> { + Request.fetchFEPG(tvViewModel) + } } } diff --git a/app/src/main/java/com/lizongying/mytv/Request.kt b/app/src/main/java/com/lizongying/mytv/Request.kt index 7da7d210..90203276 100644 --- a/app/src/main/java/com/lizongying/mytv/Request.kt +++ b/app/src/main/java/com/lizongying/mytv/Request.kt @@ -15,25 +15,23 @@ import com.lizongying.mytv.api.Info import com.lizongying.mytv.api.InfoV2 import com.lizongying.mytv.api.LiveInfo import com.lizongying.mytv.api.LiveInfoRequest -import com.lizongying.mytv.api.Token import com.lizongying.mytv.api.YSP import com.lizongying.mytv.api.YSPApiService import com.lizongying.mytv.api.YSPBtraceService +import com.lizongying.mytv.api.YSPJceService import com.lizongying.mytv.api.YSPProtoService import com.lizongying.mytv.api.YSPTokenService import com.lizongying.mytv.models.TVViewModel import com.lizongying.mytv.proto.Ysp.cn.yangshipin.oms.common.proto.pageModel import com.lizongying.mytv.proto.Ysp.cn.yangshipin.omstv.common.proto.epgProgramModel -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.launch +import com.tencent.videolite.android.datamodel.cctvjce.TVTimeShiftProgramRequest +import com.tencent.videolite.android.datamodel.cctvjce.TVTimeShiftProgramResponse import retrofit2.Call import retrofit2.Callback import retrofit2.Response import javax.crypto.Cipher import javax.crypto.spec.IvParameterSpec import javax.crypto.spec.SecretKeySpec -import kotlin.math.max object Request { @@ -42,16 +40,18 @@ object Request { private var yspApiService: YSPApiService = ApiClient().yspApiService private var yspBtraceService: YSPBtraceService = ApiClient().yspBtraceService private var yspProtoService: YSPProtoService = ApiClient().yspProtoService + private var yspJceService: YSPJceService = ApiClient().yspJceService private var fAuthService: FAuthService = ApiClient().fAuthService + private var openid = "" private var token = "" private var tokenFH = "" private var needAuth = false + private var needToken = false private val handler = Handler(Looper.getMainLooper()) private lateinit var btraceRunnable: BtraceRunnable - private var tokenRunnable: TokenRunnable = TokenRunnable() private val regex = Regex("""des_key = "([^"]+).+var des_iv = "([^"]+)""") private val input = @@ -62,16 +62,8 @@ object Request { private var initRetryTimes = 0 private var initRetryMaxTimes = 0 - private var openid = "vu0-8lgGV2LW9QjDeucB9H12d_6HQWmTFgqCWg5o-VBQN4" - - fun onCreate() { - Log.i(TAG, "onCreate") - fetchInfoV2() - } - fun onDestroy() { Log.i(TAG, "onDestroy") - handler.removeCallbacks(tokenRunnable) } private var call: Call? = null @@ -80,6 +72,8 @@ object Request { private var callFAuth: Call? = null private var callPage: Call? = null + private var callBtracePage: Call? = null + private fun cancelCall() { call?.cancel() callAuth?.cancel() @@ -110,13 +104,14 @@ object Request { if (tvModel.retryTimes < tvModel.retryMaxTimes) { tvModel.retryTimes++ if (tvModel.getTV().needToken) { - if (tvModel.tokenYSPRetryTimes == tvModel.tokenYSPRetryMaxTimes) { + if (needToken && tvModel.tokenYSPRetryTimes < tvModel.tokenYSPRetryMaxTimes) { + tvModel.tokenYSPRetryTimes++ + tvModel.needGetToken = true + fetchAuth(tvModel) + } else { if (!tvModel.getTV().mustToken) { fetchAuth(tvModel, cookie) } - } else { - tvModel.needGetToken = true - fetchAuth(tvModel) } } else { fetchAuth(tvModel, cookie) @@ -128,13 +123,14 @@ object Request { if (tvModel.retryTimes < tvModel.retryMaxTimes) { tvModel.retryTimes++ if (tvModel.getTV().needToken) { - if (tvModel.tokenYSPRetryTimes == tvModel.tokenYSPRetryMaxTimes) { + if (needToken && tvModel.tokenYSPRetryTimes < tvModel.tokenYSPRetryMaxTimes) { + tvModel.tokenYSPRetryTimes++ + tvModel.needGetToken = true + fetchAuth(tvModel) + } else { if (!tvModel.getTV().mustToken) { fetchAuth(tvModel, cookie) } - } else { - tvModel.needGetToken = true - fetchAuth(tvModel) } } else { fetchAuth(tvModel, cookie) @@ -148,13 +144,14 @@ object Request { if (tvModel.retryTimes < tvModel.retryMaxTimes) { tvModel.retryTimes++ if (tvModel.getTV().needToken) { - if (tvModel.tokenYSPRetryTimes == tvModel.tokenYSPRetryMaxTimes) { + if (needToken && tvModel.tokenYSPRetryTimes < tvModel.tokenYSPRetryMaxTimes) { + tvModel.tokenYSPRetryTimes++ + tvModel.needGetToken = true + fetchAuth(tvModel) + } else { if (!tvModel.getTV().mustToken) { fetchAuth(tvModel, cookie) } - } else { - tvModel.needGetToken = true - fetchAuth(tvModel) } } else { fetchAuth(tvModel, cookie) @@ -177,18 +174,11 @@ object Request { val data = YSP.switch(tvModel) val request = LiveInfoRequest(data) call = request.let { - if (token == "") { - yspApiService.getLiveInfoV2( - "guid=${YSP.getGuid()}; $cookie", - it, - ) - } else { - yspApiService.getLiveInfo( - "guid=${YSP.getGuid()}; $cookie", - YSP.token, - it - ) - } + yspApiService.getLiveInfo( + "guid=${YSP.getGuid()}; $cookie", + YSP.token, + it + ) } call?.enqueue(object : Callback { @@ -223,15 +213,16 @@ object Request { if (tvModel.retryTimes < tvModel.retryMaxTimes) { tvModel.retryTimes++ if (tvModel.getTV().needToken) { - if (tvModel.tokenYSPRetryTimes == tvModel.tokenYSPRetryMaxTimes) { + if (needToken && tvModel.tokenYSPRetryTimes < tvModel.tokenYSPRetryMaxTimes) { + tvModel.tokenYSPRetryTimes++ + tvModel.needGetToken = true + fetchVideo(tvModel) +// fetchAuth(tvModel) + } else { if (!tvModel.getTV().mustToken) { fetchVideo(tvModel, cookie) // fetchAuth(tvModel, cookie) } - } else { - tvModel.needGetToken = true - fetchVideo(tvModel) -// fetchAuth(tvModel) } } else { fetchVideo(tvModel, cookie) @@ -248,15 +239,16 @@ object Request { if (tvModel.retryTimes < tvModel.retryMaxTimes) { tvModel.retryTimes++ if (tvModel.getTV().needToken) { - if (tvModel.tokenYSPRetryTimes == tvModel.tokenYSPRetryMaxTimes) { + if (needToken && tvModel.tokenYSPRetryTimes < tvModel.tokenYSPRetryMaxTimes) { + tvModel.tokenYSPRetryTimes++ + tvModel.needGetToken = true + fetchVideo(tvModel) +// fetchAuth(tvModel) + } else { if (!tvModel.getTV().mustToken) { fetchVideo(tvModel, cookie) // fetchAuth(tvModel, cookie) } - } else { - tvModel.needGetToken = true - fetchVideo(tvModel) -// fetchAuth(tvModel) } } else { fetchVideo(tvModel, cookie) @@ -270,15 +262,16 @@ object Request { if (tvModel.retryTimes < tvModel.retryMaxTimes) { tvModel.retryTimes++ if (tvModel.getTV().needToken) { - if (tvModel.tokenYSPRetryTimes == tvModel.tokenYSPRetryMaxTimes) { + if (needToken && tvModel.tokenYSPRetryTimes < tvModel.tokenYSPRetryMaxTimes) { + tvModel.tokenYSPRetryTimes++ + tvModel.needGetToken = true + fetchVideo(tvModel) +// fetchAuth(tvModel) + } else { if (!tvModel.getTV().mustToken) { fetchVideo(tvModel, cookie) // fetchAuth(tvModel, cookie) } - } else { - tvModel.needGetToken = true - fetchVideo(tvModel) -// fetchAuth(tvModel) } } else { fetchVideo(tvModel, cookie) @@ -293,13 +286,14 @@ object Request { if (tvModel.retryTimes < tvModel.retryMaxTimes) { tvModel.retryTimes++ if (tvModel.getTV().needToken) { - if (tvModel.tokenYSPRetryTimes == tvModel.tokenYSPRetryMaxTimes) { + if (needToken && tvModel.tokenYSPRetryTimes < tvModel.tokenYSPRetryMaxTimes) { + tvModel.tokenYSPRetryTimes++ + tvModel.needGetToken = true + fetchVideo(tvModel) + } else { if (!tvModel.getTV().mustToken) { fetchVideo(tvModel, cookie) } - } else { - tvModel.needGetToken = true - fetchVideo(tvModel) } } else { fetchVideo(tvModel, cookie) @@ -466,7 +460,7 @@ object Request { return } - if (tvModel.getTV().needToken) { + if (needToken && tvModel.getTV().needToken) { if (token == "") { tvModel.needGetToken = true } @@ -486,12 +480,6 @@ object Request { } } - class TokenRunnable : Runnable { - override fun run() { -// fetchToken() - } - } - private fun fetchInfoV2() { yspTokenService.getInfoV2() .enqueue(object : Callback { @@ -508,24 +496,6 @@ object Request { if (!t.isNullOrEmpty()) { token = t Log.i(TAG, "token success $token") - if (e != null) { - handler.postDelayed( - tokenRunnable, - max(30 * 60 * 1000, (e - 1500) * 1000).toLong() - ) - } else { - Log.e(TAG, "e empty") - handler.postDelayed( - tokenRunnable, - 30 * 60 * 1000 - ) - } - } else { - Log.e(TAG, "token empty") - handler.postDelayed( - tokenRunnable, - 30 * 60 * 1000 - ) } if (!f.isNullOrEmpty()) { tokenFH = f @@ -538,10 +508,6 @@ object Request { listener?.onRequestFinished(null) } else { Log.e(TAG, "token status error") - handler.postDelayed( - tokenRunnable, - 30 * 60 * 1000 - ) if (initRetryTimes < initRetryMaxTimes) { initRetryTimes++ fetchInfoV2() @@ -553,11 +519,6 @@ object Request { override fun onFailure(call: Call, t: Throwable) { Log.e(TAG, "token request error $t") - handler.postDelayed( - tokenRunnable, - 30 * 60 * 1000 - ) - if (initRetryTimes < initRetryMaxTimes) { initRetryTimes++ fetchInfoV2() @@ -568,68 +529,20 @@ object Request { }) } - fun fetchToken() { - yspTokenService.getToken(token) - .enqueue(object : Callback { - override fun onResponse(call: Call, response: Response) { - if (response.isSuccessful) { - val t = response.body()?.t - val e = response.body()?.e - if (!t.isNullOrEmpty()) { - token = t - Log.e(TAG, "token success $token") - if (e != null) { - handler.postDelayed( - tokenRunnable, - max(30 * 60 * 1000, (e - 1500) * 1000).toLong() - ) - } else { - Log.e(TAG, "e empty") - handler.postDelayed( - tokenRunnable, - 30 * 60 * 1000 - ) - } - } else { - Log.e(TAG, "token empty") - handler.postDelayed( - tokenRunnable, - 30 * 60 * 1000 - ) - } - } else { - Log.e(TAG, "token status error") - handler.postDelayed( - tokenRunnable, - 30 * 60 * 1000 - ) - } - } - - override fun onFailure(call: Call, t: Throwable) { - Log.e(TAG, "token request error $t") - handler.postDelayed( - tokenRunnable, - 30 * 60 * 1000 - ) - } - }) - } - class BtraceRunnable(private val tvModel: TVViewModel) : Runnable { override fun run() { fetchBtrace(tvModel) - handler.postDelayed(this, 60000) } } fun fetchBtrace(tvModel: TVViewModel) { + callBtracePage?.cancel() val title = tvModel.getTV().title val guid = YSP.getGuid() val pid = tvModel.getTV().pid val sid = tvModel.getTV().sid - yspBtraceService.kvcollect( + callBtracePage = yspBtraceService.kvcollect( c_timestamp = YSP.generateGuid(), guid = guid, c_guid = guid, @@ -642,19 +555,21 @@ object Request { ftime = getDateFormat("yyyy-MM-dd HH:mm:ss"), seq = tvModel.seq.toString(), ) - .enqueue(object : Callback { - override fun onResponse(call: Call, response: Response) { - if (response.isSuccessful) { - // Log.d(TAG, "$title kvcollect success") - } else { - Log.e(TAG, "$title kvcollect status error") - } + callBtracePage?.enqueue(object : Callback { + override fun onResponse(call: Call, response: Response) { + if (response.isSuccessful) { + // Log.d(TAG, "$title kvcollect success") + } else { + Log.e(TAG, "$title kvcollect status error") } + handler.postDelayed(btraceRunnable, 60 * 1000) + } - override fun onFailure(call: Call, t: Throwable) { - Log.e(TAG, "$title kvcollect request error") - } - }) + override fun onFailure(call: Call, t: Throwable) { + Log.e(TAG, "$title kvcollect request error") + handler.postDelayed(btraceRunnable, 60 * 1000) + } + }) tvModel.seq++ } @@ -693,9 +608,34 @@ object Request { }) } - fun fetchYEPG(tvViewModel: TVViewModel) { + fun fetchYJceEPG(tvViewModel: TVViewModel) { + val title = tvViewModel.getTV().title + yspJceService.getProgram(TVTimeShiftProgramRequest(tvViewModel.getTV().pid)) + .enqueue(object : Callback { + override fun onResponse( + call: Call, + response: Response + ) { + if (response.isSuccessful) { + val program = response.body() + if (program != null) { + tvViewModel.addYJceEPG(program.programs) + Log.d(TAG, "$title program ${program.programs.size}") + } + } else { + Log.w(TAG, "$title program error") + } + } + + override fun onFailure(call: Call, t: Throwable) { + Log.e(TAG, "$title program request failed $t") + } + }) + } + + fun fetchYProtoEPG(tvViewModel: TVViewModel) { val title = tvViewModel.getTV().title - yspProtoService.getProgram(tvViewModel.getTV().programId, getDateFormat("yyyyMMdd")) + yspProtoService.getProgram(tvViewModel.getTV().pid, getDateFormat("yyyyMMdd")) .enqueue(object : Callback { override fun onResponse( call: Call, diff --git a/app/src/main/java/com/lizongying/mytv/TV.kt b/app/src/main/java/com/lizongying/mytv/TV.kt index 019d3707..bdee26f4 100644 --- a/app/src/main/java/com/lizongying/mytv/TV.kt +++ b/app/src/main/java/com/lizongying/mytv/TV.kt @@ -1,5 +1,6 @@ package com.lizongying.mytv +import com.lizongying.mytv.models.ProgramType import java.io.Serializable data class TV( @@ -11,7 +12,7 @@ data class TV( var logo: Any = "", var pid: String = "", var sid: String = "", - var programId: String = "", + var programType: ProgramType, var needToken: Boolean = false, var mustToken: Boolean = false, @@ -25,7 +26,7 @@ data class TV( ", logo='" + logo + '\'' + ", pid='" + pid + '\'' + ", sid='" + sid + '\'' + - ", programId='" + programId + '\'' + + ", programType='" + programType + '\'' + '}' } } \ No newline at end of file diff --git a/app/src/main/java/com/lizongying/mytv/TVList.kt b/app/src/main/java/com/lizongying/mytv/TVList.kt index bb643758..535b08c5 100644 --- a/app/src/main/java/com/lizongying/mytv/TVList.kt +++ b/app/src/main/java/com/lizongying/mytv/TVList.kt @@ -1,5 +1,7 @@ package com.lizongying.mytv +import com.lizongying.mytv.models.ProgramType + object TVList { val list: Map> by lazy { setup() @@ -17,12 +19,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/d57905b93540bd15f0c48230dbbbff7ee0d645ff539e38866e2d15c8b9f7dfcd.png?imageMogr2/format/webp", "600001859", "2022576801", - "600001859", + ProgramType.Y_PROTO, false, mustToken = false ), TV( - 1, + 0, "CCTV2 财经", "CCTV2", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226195/index.m3u8"), @@ -30,12 +32,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/20115388de0207131af17eac86c33049b95d69eaff064e55653a1b941810a006.png?imageMogr2/format/webp", "600001800", "2022576701", - "600001800", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 2, + 0, "CCTV3 综艺", "CCTV3", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226397/index.m3u8"), @@ -43,12 +45,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/7b7a65c712450da3deb6ca66fbacf4f9aee00d3f20bd80eafb5ada01ec63eb3a.png?imageMogr2/format/webp", "600001801", "2022576501", - "600001801", + ProgramType.Y_PROTO, true, mustToken = true ), TV( - 3, + 0, "CCTV4 中文国际", "CCTV4", listOf( @@ -59,12 +61,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/f357e58fdbcc076a3d65e1f958c942b2e14f14342c60736ceed98b092d35356a.png?imageMogr2/format/webp", "600001814", "2022576601", - "600001814", + ProgramType.Y_PROTO, false, mustToken = false ), TV( - 4, + 0, "CCTV5 体育", "CCTV5", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226395/index.m3u8"), @@ -72,12 +74,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/0a6a7138952675983a3d854df7688557b286d59aa06166edae51506f9204d655.png?imageMogr2/format/webp", "600001818", "2022576401", - "600001818", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 5, + 0, "CCTV6 电影", "CCTV6", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226393/index.m3u8"), @@ -85,12 +87,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/741515efda91f03f455df8a7da4ee11fa9329139c276435cf0a9e2af398d5bf2.png?imageMogr2/format/webp", "600108442", "2013693901", - "600001802", + ProgramType.Y_PROTO, true, mustToken = true ), TV( - 6, + 0, "CCTV7 国防军事", "CCTV7", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226192/index.m3u8"), @@ -98,12 +100,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/b29af94e295ebdf646cefb68122c429b9cd921f498ca20d2d8070252536f9ff9.png?imageMogr2/format/webp", "600004092", "2022576201", - "600004092", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 7, + 0, "CCTV8 电视剧", "CCTV8", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226391/index.m3u8"), @@ -111,12 +113,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/ad51de94426a0ba039e6dd6a8534ea98ecc813a6176bde87b4f18cc34d6d7590.png?imageMogr2/format/webp", "600001803", "2022576101", - "600001803", + ProgramType.Y_PROTO, true, mustToken = true ), TV( - 8, + 0, "CCTV9 纪录", "CCTV9", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226197/index.m3u8"), @@ -124,12 +126,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/2ed1b4deeca179d5db806bb941790f82eb92a1b7299c1c38fe027f95a5caee5e.png?imageMogr2/format/webp", "600004078", "2022576001", - "600004078", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 9, + 0, "CCTV10 科教", "CCTV10", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226189/index.m3u8"), @@ -137,12 +139,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/aa6157ec65188cd41826e5a2f088c3d6d153205f5f6428258d12c59999e221aa.png?imageMogr2/format/webp", "600001805", "2022573001", - "600001805", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 10, + 0, "CCTV11 戏曲", "CCTV11", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226240/index.m3u8"), @@ -150,12 +152,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/ed12ed7c7a1034dae4350011fe039284c5d5a836506b28c9e32e3c75299625c0.png?imageMogr2/format/webp", "600001806", "2022575901", - "600001806", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 11, + 0, "CCTV12 社会与法", "CCTV12", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226190/index.m3u8"), @@ -163,12 +165,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/484083cffaa40df7e659565e8cb4d1cc740158a185512114167aa21fa0c59240.png?imageMogr2/format/webp", "600001807", "2022575801", - "600001807", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 12, + 0, "CCTV13 新闻", "CCTV13", listOf( @@ -178,12 +180,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/266da7b43c03e2312186b4a999e0f060e8f15b10d2cc2c9aa32171819254cf1a.png?imageMogr2/format/webp", "600001811", "2022575701", - "600001811", + ProgramType.Y_PROTO, false, mustToken = false ), TV( - 13, + 0, "CCTV14 少儿", "CCTV14", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226193/index.m3u8"), @@ -191,12 +193,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/af6b603896938dc346fbb16abfc63c12cba54b0ec9d18770a15d347d115f12d5.png?imageMogr2/format/webp", "600001809", "2022575601", - "600001809", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 14, + 0, "CCTV15 音乐", "CCTV15", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221225785/index.m3u8"), @@ -204,12 +206,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/2ceee92188ef684efe0d8b90839c4f3ad450d179dc64d59beff417059453af47.png?imageMogr2/format/webp", "600001815", "2022575501", - "600001815", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 15, + 0, "CCTV16 奥林匹克", "CCTV16-HD", listOf( @@ -220,12 +222,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/53793fa7bacd3a93ff6dc5d2758418985e1f952a316c335d663b572d8bdcd74d.png?imageMogr2/format/webp", "600098637", "2022575401", - "600098637", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 16, + 0, "CCTV17 农业农村", "CCTV17", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226198/index.m3u8"), @@ -233,12 +235,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/ddef563072f8bad2bea5b9e52674cb7b4ed50efb20c26e61994dfbdf05c1e3c0.png?imageMogr2/format/webp", "600001810", "2022575301", - "600001810", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 17, + 0, "CCTV5+ 体育赛事", "CCTV5+", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226221/index.m3u8"), @@ -246,12 +248,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/649ad76a90bfef55b05db9fe52e006487280f619089099d5dc971e387fc6eff0.png?imageMogr2/format/webp", "600001817", "2022576301", - "600001817", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 18, + 0, "CCTV4K 超高清", "CCTV4K", listOf(), @@ -259,12 +261,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/3e9d06fd7244d950df5838750f1c6ac3456e172b51caca2c16d2282125b111e8.png?imageMogr2/format/webp", "600002264", "2022575201", - "600002264", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 19, + 0, "CCTV8K 超高清", "CCTV8K", listOf(), @@ -272,12 +274,12 @@ object TVList { R.drawable.cctv8k, "600156816", "2020603421", - "", + ProgramType.Y_JCE, false, mustToken = false ), TV( - 20, + 0, "风云剧场", "CCTV风云剧场频道", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226950/index.m3u8"), @@ -285,12 +287,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/4d549e53e6d0f632d5a633d1945280797b153e588f919221a07faa869812cc89.png?imageMogr2/format/webp", "600099658", "2012513603", - "600099658", + ProgramType.Y_PROTO, true, mustToken = true ), TV( - 21, + 0, "第一剧场", "CCTV第一剧场频道", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226959/index.m3u8"), @@ -298,12 +300,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/a556bd7d93ce65e18f243a8892b5604f4faa994a4897315914216a710a706208.png?imageMogr2/format/webp", "600099655", "2012514403", - "600099655", + ProgramType.Y_PROTO, true, mustToken = true ), TV( - 22, + 0, "怀旧剧场", "CCTV怀旧剧场频道", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226972/index.m3u8"), @@ -311,12 +313,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/5661bd04fecdb6e899f801147a22ab5d3a475bf2b62e30aec2c0023190ebc9b1.png?imageMogr2/format/webp", "600099620", "2012511203", - "600099620", + ProgramType.Y_PROTO, true, mustToken = true ), TV( - 23, + 0, "世界地理", "CCTV世界地理频道", listOf(), @@ -324,12 +326,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/bb3c6c9e145d698137f5bb64a582021a01b51344b929003630eb769ea65832a9.png?imageMogr2/format/webp", "600099637", "2012513303", - "600099637", + ProgramType.Y_PROTO, true, mustToken = true ), TV( - 24, + 0, "风云音乐", "CCTV风云音乐频道", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226953/index.m3u8"), @@ -337,12 +339,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/bbf1d024c5228b8dd128b0e3cb1717d173fab4ee84c3a4c8a57b1a215362ca3b.png?imageMogr2/format/webp", "600099660", "2012514103", - "600099660", + ProgramType.Y_PROTO, true, mustToken = true ), TV( - 25, + 0, "兵器科技", "CCTV兵器科技频道", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226975/index.m3u8"), @@ -350,12 +352,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/4c6b6a6d3839889f34d33db3c2f80233b26b74d3489b393487635f8704e70796.png?imageMogr2/format/webp", "600099649", "2012513403", - "600099649", + ProgramType.Y_PROTO, true, mustToken = true ), TV( - 26, + 0, "风云足球", "CCTV风云足球频道", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226984/index.m3u8"), @@ -363,12 +365,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/cd1e2bb52b06a991de168733e5ff0f1d85adc8042d40c8f393f723543e5dd08a.png?imageMogr2/format/webp", "600099636", "2012514203", - "600099636", + ProgramType.Y_PROTO, true, mustToken = true ), TV( - 27, + 0, "高尔夫网球", "CCTV高尔夫·网球频道", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226978/index.m3u8"), @@ -376,12 +378,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/cdd1b31ede7a5ad049ed53d9a072422f829e72dd062ed2c19e077fdd01699071.png?imageMogr2/format/webp", "600099659", "2012512503", - "600099659", + ProgramType.Y_PROTO, true, mustToken = true ), TV( - 28, + 0, "女性时尚", "CCTV女性时尚频道", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226969/index.m3u8"), @@ -389,12 +391,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/fa28955ce8b2539d728bf4c6a13a46ff57ad76eae46627f7bcfb1ed8a613d3fc.png?imageMogr2/format/webp", "600099650", "2012513903", - "600099650", + ProgramType.Y_PROTO, true, mustToken = true ), TV( - 29, + 0, "央视文化精品", "CCTV央视文化精品频道", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226981/index.m3u8"), @@ -402,12 +404,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/14ac5ce40482cacd3d4b37435222bfe86af2b452a2f04ecbfc1d13d76edd7c57.png?imageMogr2/format/webp", "600099653", "2012513803", - "600099653", + ProgramType.Y_PROTO, true, mustToken = true ), TV( - 30, + 0, "央视台球", "CCTV央视台球频道", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226956/index.m3u8"), @@ -415,12 +417,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/10e14a92478011aa6c3c8562e62127f3b1908e29fcd78e4b2b24b9e6d3ec2fbc.png?imageMogr2/format/webp", "600099652", "2012513703", - "600099652", + ProgramType.Y_PROTO, true, mustToken = true ), TV( - 31, + 0, "电视指南", "CCTV电视指南频道", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888893/224/3221226987/index.m3u8"), @@ -428,12 +430,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/244d72c0eb1615ed7d51c2f5db5a67f306aa3f58c05bc2d34de3aa7e956dc8c9.png?imageMogr2/format/webp", "600099656", "2012514003", - "600099656", + ProgramType.Y_PROTO, true, mustToken = true ), TV( - 32, + 0, "卫生健康", "CCTV卫生健康频道", listOf(), @@ -441,14 +443,14 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/54a6863656fdfd8f803be193ddf22441c5000a108833889816fd2d8911715ce8.png?imageMogr2/format/webp", "600099651", "2012513503", - "600099651", + ProgramType.Y_PROTO, true, mustToken = true ), ), "地方" to listOf( TV( - 33, + 0, "东方卫视", "东方卫视", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226217/index.m3u8"), @@ -456,12 +458,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/9bd372ca292a82ce3aa08772b07efc4af1f85c21d1f268ea33440c49e9a0a488.png?imageMogr2/format/webp", "600002483", "2000292403", - "600002483", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 34, + 0, "湖南卫视", "湖南卫视", listOf( @@ -472,12 +474,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/4120e89d3079d08aa17d382f69a2308ec70839b278367763c34a34666c75cb88.png?imageMogr2/format/webp", "600002475", "2000296203", - "600002475", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 35, + 0, "湖北卫视", "湖北卫视", listOf( @@ -488,12 +490,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/7a6be5a2bb1dc53a945c016ff1f525dc4a84c51db371c15c89aa55404b0ba784.png?imageMogr2/format/webp", "600002508", "2000294503", - "600002508", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 36, + 0, "辽宁卫视", "辽宁卫视", listOf( @@ -504,12 +506,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/ac4ed6058a87c101ae7147ebc38905d0cae047fb73fd277ee5049b84f52bda36.png?imageMogr2/format/webp", "600002505", "2000281303", - "600002505", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 37, + 0, "江苏卫视", "江苏卫视", listOf( @@ -520,12 +522,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/380ad685c0c1d5b2c902246b8d2df6d3f9b45e2837abcfe493075bbded597a31.png?imageMogr2/format/webp", "600002521", "2000295603", - "600002521", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 38, + 0, "江西卫视", "江西卫视", listOf( @@ -536,12 +538,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/3c760d0d00463855890e8a1864ea4a6b6dd66b90c29b4ac714a4b17c16519871.png?imageMogr2/format/webp", "600002503", "2000294103", - "600002503", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 39, + 0, "山东卫视", "山东卫视", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226209/index.m3u8"), @@ -549,12 +551,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/22d403f07a7cf5410b3ad3ddb65a11aa229a32475fac213f5344c9f0ec330ca1.png?imageMogr2/format/webp", "600002513", "2000294803", - "600002513", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 40, + 0, "广东卫视", "广东卫视", listOf("http://dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226216/index.m3u8"), @@ -562,12 +564,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/28886880a4dc0f06fb7e0a528a1def0591d61a65870e29176ede0cc92033bbfd.png?imageMogr2/format/webp", "600002485", "2000292703", - "600002485", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 41, + 0, "广西卫视", "广西卫视", listOf( @@ -578,12 +580,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/54b7e97cb816bb223fe05f3fc44da2c7820eb66e8550c19d23100f2c414ecc38.png?imageMogr2/format/webp", "600002509", "2000294203", - "600002509", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 42, + 0, "重庆卫视", "重庆卫视", listOf( @@ -594,12 +596,12 @@ object TVList { R.drawable.chongqing, "600002531", "2000297803", - "600002531", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 43, + 0, "河南卫视", "河南卫视", listOf( @@ -610,12 +612,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/74925962148a6d31c85808b6cd4e444c2a54bab393d2c5fc85e960b50e22fa86.png?imageMogr2/format/webp", "600002525", "2000296103", - "600002525", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 44, + 0, "河北卫视", "河北卫视", listOf( @@ -626,12 +628,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/d545becdc81c60197b08c7f47380705e4665ed3fe55efc8b855e486f6e655378.png?imageMogr2/format/webp", "600002493", "2000293403", - "600002493", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 45, + 0, "贵州卫视", "贵州卫视", listOf( @@ -642,12 +644,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/4eb45f4781d33d872af027dc01c941559aab55667dd99cc5c22bef7037807b13.png?imageMogr2/format/webp", "600002490", "2000293303", - "600002490", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 46, + 0, "北京卫视", "北京卫视", listOf( @@ -658,12 +660,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/f4f23633c578beea49a3841d88d3490100f029ee349059fa532869db889872c5.png?imageMogr2/format/webp", "600002309", "2000272103", - "600002309", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 47, + 0, "黑龙江卫视", "黑龙江卫视", listOf( @@ -674,12 +676,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/d8273ae9be698ce2db21f5b886ecac95a73429593f93713c60ed8c12c38bf0d3.png?imageMogr2/format/webp", "600002498", "2000293903", - "600002498", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 48, + 0, "浙江卫视", "浙江卫视", listOf( @@ -690,12 +692,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/a66c836bd98ba3e41a2e9a570d4b9c50dedc6839e9de333e2e78212ad505f37e.png?imageMogr2/format/webp", "600002520", "2000295503", - "600002520", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 49, + 0, "安徽卫视", "安徽卫视", listOf( @@ -706,12 +708,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/f35fa04b51b1ee4984b03578b65403570868ebca03c6c01e11b097f999a58d9b.png?imageMogr2/format/webp", "600002532", "2000298003", - "600002532", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 50, + 0, "深圳卫视", "深圳卫视", listOf( @@ -722,12 +724,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/d59fec04c902e3581c617136d02d4b9b8c4cbe64272781ddd3525e80c823edb7.png?imageMogr2/format/webp", "600002481", "2000292203", - "600002481", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 51, + 0, "四川卫视", "四川卫视", listOf( @@ -738,12 +740,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/3276a414ae0eaa0f116f2045cd913367967d0c7c1e978e8621ac3879436c6ed7.png?imageMogr2/format/webp", "600002516", "2000295003", - "600002516", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 52, + 0, "东南卫视", "福建东南卫视", listOf( @@ -754,12 +756,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/3208fe6564a293c21b711333fb3edb05bb5b406cff840573c9a8d839680a1579.png?imageMogr2/format/webp", "600002484", "2000292503", - "600002484", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 53, + 0, "海南卫视", "海南卫视", listOf( @@ -770,12 +772,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/6e060391fde0469801fc3d84dbf204b4f8d650d251f17d7595a6964c0bb99e81.png?imageMogr2/format/webp", "600002506", "2000291503", - "600002506", + ProgramType.Y_PROTO, true, mustToken = false ), TV( - 54, + 0, "天津卫视", "天津卫视", listOf(), @@ -783,12 +785,12 @@ object TVList { R.drawable.tianjin, "600152137", "2019927003", - "", + ProgramType.Y_JCE, true, mustToken = false ), TV( - 55, + 0, "新疆卫视", "新疆卫视", listOf(), @@ -796,12 +798,12 @@ object TVList { R.drawable.xinjiang, "600152138", "2019927403", - "", + ProgramType.Y_JCE, true, mustToken = false ), TV( - 56, + 0, "兵团卫视", "兵团卫视", listOf(), @@ -809,12 +811,12 @@ object TVList { R.drawable.bingtuan, "600170344", "2022606701", - "", + ProgramType.Y_JCE, true, mustToken = false ), TV( - 57, + 0, "CETV1", "CETV1", listOf(), @@ -822,14 +824,14 @@ object TVList { R.drawable.cetv1, "600171827", "2022823801", - "", + ProgramType.Y_JCE, true, mustToken = false ), ), "港澳台" to listOf( TV( - 58, + 0, "凤凰卫视资讯台", "", listOf(), @@ -837,12 +839,12 @@ object TVList { "http://c1.fengshows-cdn.com/a/2021_22/79dcc3a9da358a3.png", "7c96b084-60e1-40a9-89c5-682b994fb680", "", - "", + ProgramType.F, false, mustToken = false ), TV( - 59, + 0, "凤凰卫视中文台", "", listOf(), @@ -850,12 +852,12 @@ object TVList { "http://c1.fengshows-cdn.com/a/2021_22/ede3d9e09be28e5.png", "f7f48462-9b13-485b-8101-7b54716411ec", "", - "", + ProgramType.F, false, mustToken = false ), TV( - 60, + 0, "凤凰卫视香港台", "", listOf(), @@ -863,14 +865,14 @@ object TVList { "http://c1.fengshows-cdn.com/a/2021_23/325d941090bee17.png", "15e02d92-1698-416c-af2f-3e9a872b4d78", "", - "", + ProgramType.F, false, mustToken = false ), ), "国际" to listOf( TV( - 61, + 0, "CGTN", "CGTN", listOf("http://live.cgtn.com/1000/prog_index.m3u8"), @@ -878,12 +880,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/a72dff758ca1c17cd0ecc8cedc11b893d208f409d5e6302faa0e9d298848abc3.png?imageMogr2/format/webp", "600014550", "2022575001", - "600014550", + ProgramType.Y_PROTO, false, mustToken = false ), TV( - 62, + 0, "CGTN 法语频道", "CGTN法语频道", listOf("https://livefr.cgtn.com/1000f/prog_index.m3u8"), @@ -891,12 +893,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/a8d0046a47433d952bf6ed17062deb8bd2184ba9aec0f7781df6bf9487a3ffcf.png?imageMogr2/format/webp", "600084704", "2022574901", - "600084704", + ProgramType.Y_PROTO, false, mustToken = false ), TV( - 63, + 0, "CGTN 俄语频道", "CGTN俄语频道", listOf("http://liveru.cgtn.com/1000r/prog_index.m3u8"), @@ -904,12 +906,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/bf0a820893cbaf20dd0333e27042e1ef9c8806e5b602b6a8c95af399db0bc77a.png?imageMogr2/format/webp", "600084758", "2022574801", - "600084758", + ProgramType.Y_PROTO, false, mustToken = false ), TV( - 64, + 0, "CGTN 阿拉伯语频道", "CGTN阿拉伯语频道", listOf("http://livear.cgtn.com/1000a/prog_index.m3u8"), @@ -917,12 +919,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202306/2e44e2aa3e7a1cedf07fd0ae59fe69e86a60a2632660a006e3e9e7397b2d107e.png?imageMogr2/format/webp", "600084782", "2022574601", - "600084782", + ProgramType.Y_PROTO, false, mustToken = false ), TV( - 65, + 0, "CGTN 西班牙语频道", "CGTN西班牙语频道", listOf( @@ -933,12 +935,12 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202309/7c337e3dbe64402ec7e4678a619a4a6d95144e42f35161181ff78e143b7cf67a.png?imageMogr2/format/webp", "600084744", "2022571701", - "600084744", + ProgramType.Y_PROTO, false, mustToken = false ), TV( - 66, + 0, "CGTN 纪录频道", "CGTN外语纪录频道", listOf("https://livedoc.cgtn.com/500d/prog_index.m3u8"), @@ -946,21 +948,31 @@ object TVList { "https://resources.yangshipin.cn/assets/oms/image/202309/74d3ac436a7e374879578de1d87a941fbf566d39d5632b027c5097891ed32bd5.png?imageMogr2/format/webp", "600084781", "2022574701", - "600084781", + ProgramType.Y_PROTO, false, mustToken = false ), ) ) + + val array = arrayOf("央视", "地方") +// list = list.filterKeys { it in array } + + val listNew = mutableMapOf>() var id = 0 - list.forEach { (_, v) -> + list.forEach { (k, v) -> + val group = mutableListOf() v.forEach { v1 -> - v1.id = id - id++ + if (!v1.mustToken) { + v1.id = id + id++ + group.add(v1) + } + } + if (group.size > 0) { + listNew[k] = group } } - val array = arrayOf("央视", "地方") -// list = list.filterKeys { it in array } - return list + return listNew } } \ No newline at end of file diff --git a/app/src/main/java/com/lizongying/mytv/api/ApiClient.kt b/app/src/main/java/com/lizongying/mytv/api/ApiClient.kt index ac6da94f..4f191935 100644 --- a/app/src/main/java/com/lizongying/mytv/api/ApiClient.kt +++ b/app/src/main/java/com/lizongying/mytv/api/ApiClient.kt @@ -3,6 +3,7 @@ package com.lizongying.mytv.api import android.os.Build import android.util.Log +import com.lizongying.mytv.jce.JceConverterFactory import okhttp3.ConnectionSpec import okhttp3.OkHttpClient import okhttp3.TlsVersion @@ -21,6 +22,7 @@ class ApiClient { private val myUrl = "https://lyrics.run/" private val protoUrl = "https://capi.yangshipin.cn/" private val traceUrl = "https://btrace.yangshipin.cn/" + private val jceUrl = "https://jacc.ysp.cctv.cn/" private val fUrl = "https://m.fengshows.com/" private var okHttpClient = getUnsafeOkHttpClient() @@ -65,6 +67,14 @@ class ApiClient { .build().create(YSPBtraceService::class.java) } + val yspJceService: YSPJceService by lazy { + Retrofit.Builder() + .baseUrl(jceUrl) + .client(okHttpClient) + .addConverterFactory(JceConverterFactory.create()) + .build().create(YSPJceService::class.java) + } + val fAuthService: FAuthService by lazy { Retrofit.Builder() .baseUrl(fUrl) diff --git a/app/src/main/java/com/lizongying/mytv/api/YSP.kt b/app/src/main/java/com/lizongying/mytv/api/YSP.kt index 469dd4d5..6d88d4df 100644 --- a/app/src/main/java/com/lizongying/mytv/api/YSP.kt +++ b/app/src/main/java/com/lizongying/mytv/api/YSP.kt @@ -1,9 +1,7 @@ package com.lizongying.mytv.api import android.content.Context -import android.util.Log import com.lizongying.mytv.Encryptor -import com.lizongying.mytv.MainActivity import com.lizongying.mytv.SP import com.lizongying.mytv.Utils.getDateTimestamp import com.lizongying.mytv.models.TVViewModel diff --git a/app/src/main/java/com/lizongying/mytv/api/YSPJceService.kt b/app/src/main/java/com/lizongying/mytv/api/YSPJceService.kt new file mode 100644 index 00000000..62162640 --- /dev/null +++ b/app/src/main/java/com/lizongying/mytv/api/YSPJceService.kt @@ -0,0 +1,19 @@ +package com.lizongying.mytv.api + +import com.tencent.videolite.android.datamodel.cctvjce.TVTimeShiftProgramRequest +import com.tencent.videolite.android.datamodel.cctvjce.TVTimeShiftProgramResponse +import retrofit2.Call +import retrofit2.http.Body +import retrofit2.http.Headers +import retrofit2.http.POST + +interface YSPJceService { + @POST("/") + @Headers( + "content-type: application/octet-stream", + "user-agent: CCTVVideo/2.9.0 (iPad; iOS 17.2; Scale/2.00)", + ) + fun getProgram( + @Body body: TVTimeShiftProgramRequest + ): Call +} \ No newline at end of file diff --git a/app/src/main/java/com/lizongying/mytv/jce/CompressUtils.java b/app/src/main/java/com/lizongying/mytv/jce/CompressUtils.java new file mode 100644 index 00000000..ecba46d0 --- /dev/null +++ b/app/src/main/java/com/lizongying/mytv/jce/CompressUtils.java @@ -0,0 +1,133 @@ +package com.lizongying.mytv.jce; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.util.zip.GZIPInputStream; +import java.util.zip.GZIPOutputStream; + +public class CompressUtils { + private static final String TAG = "CompressUtils"; + + public static byte[] compressGZIP(byte[] bArr) { + GZIPOutputStream gZIPOutputStream; + Throwable th; + if (bArr != null && bArr.length != 0) { + ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bArr); + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + try { + gZIPOutputStream = new GZIPOutputStream(byteArrayOutputStream); + } catch (IOException unused) { + gZIPOutputStream = null; + } catch (Throwable th2) { + gZIPOutputStream = null; + th = th2; + } + try { + byte[] bArr2 = new byte[4096]; + while (true) { + int read = byteArrayInputStream.read(bArr2); + if (read <= 0) { + break; + } + gZIPOutputStream.write(bArr2, 0, read); + } + gZIPOutputStream.finish(); + byte[] byteArray = byteArrayOutputStream.toByteArray(); + try { + byteArrayInputStream.close(); + byteArrayOutputStream.close(); + gZIPOutputStream.close(); + } catch (IOException e2) { + System.out.println(e2); + } + return byteArray; + } catch (IOException unused2) { + try { + byteArrayInputStream.close(); + byteArrayOutputStream.close(); + if (gZIPOutputStream != null) { + gZIPOutputStream.close(); + } + } catch (IOException e3) { + System.out.println(e3); + } + return null; + } catch (Throwable th3) { + th = th3; + try { + byteArrayInputStream.close(); + byteArrayOutputStream.close(); + if (gZIPOutputStream != null) { + gZIPOutputStream.close(); + } + } catch (IOException e4) { + System.out.println(e4); + } + } + } + return null; + } + + public static byte[] decompressGZIP(byte[] bArr) { + GZIPInputStream gZIPInputStream; + Throwable th; + if (bArr != null && bArr.length != 0) { + ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bArr); + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + try { + gZIPInputStream = new GZIPInputStream(byteArrayInputStream); + } catch (IOException unused) { + gZIPInputStream = null; + } catch (Throwable th2) { + gZIPInputStream = null; + th = th2; + } + + try { + byte[] bArr2 = new byte[4096]; + while (true) { + int read = gZIPInputStream.read(bArr2); + if (read <= 0) { + break; + } + byteArrayOutputStream.write(bArr2, 0, read); + } + byteArrayOutputStream.flush(); + byte[] byteArray = byteArrayOutputStream.toByteArray(); + + try { + byteArrayInputStream.close(); + byteArrayOutputStream.close(); + gZIPInputStream.close(); + } catch (IOException e2) { + System.out.println(e2); + } + return byteArray; + } catch (IOException unused2) { + try { + byteArrayInputStream.close(); + byteArrayOutputStream.close(); + if (gZIPInputStream != null) { + gZIPInputStream.close(); + } + } catch (IOException e3) { + System.out.println(e3); + } + return null; + } catch (Throwable th3) { + th = th3; + try { + byteArrayInputStream.close(); + byteArrayOutputStream.close(); + if (gZIPInputStream != null) { + gZIPInputStream.close(); + } + } catch (IOException e4) { + System.out.println(e4); + } + } + } + return null; + } +} diff --git a/app/src/main/java/com/lizongying/mytv/jce/JceConverterFactory.java b/app/src/main/java/com/lizongying/mytv/jce/JceConverterFactory.java new file mode 100644 index 00000000..b2fbb0eb --- /dev/null +++ b/app/src/main/java/com/lizongying/mytv/jce/JceConverterFactory.java @@ -0,0 +1,45 @@ +package com.lizongying.mytv.jce; + +import androidx.annotation.NonNull; + +import java.lang.annotation.Annotation; +import java.lang.reflect.Type; + +import okhttp3.RequestBody; +import okhttp3.ResponseBody; +import retrofit2.Converter; +import retrofit2.Retrofit; + +public class JceConverterFactory extends Converter.Factory { + public static JceConverterFactory create() { + return new JceConverterFactory(); + } + + private JceConverterFactory() { + } + + @Override + public Converter responseBodyConverter( + @NonNull Type type, + @NonNull Annotation[] annotations, + @NonNull Retrofit retrofit) { + if (!(type instanceof Class)) { + return null; + } + + return new JceResponseBodyConverter<>(); + } + + @Override + public Converter requestBodyConverter( + @NonNull Type type, + @NonNull Annotation[] parameterAnnotations, + @NonNull Annotation[] methodAnnotations, + @NonNull Retrofit retrofit) { + if (!(type instanceof Class)) { + return null; + } + + return new JceRequestBodyConverter<>(); + } +} diff --git a/app/src/main/java/com/lizongying/mytv/jce/JceRequestBodyConverter.java b/app/src/main/java/com/lizongying/mytv/jce/JceRequestBodyConverter.java new file mode 100644 index 00000000..52ac61b8 --- /dev/null +++ b/app/src/main/java/com/lizongying/mytv/jce/JceRequestBodyConverter.java @@ -0,0 +1,70 @@ +package com.lizongying.mytv.jce; + +import androidx.annotation.NonNull; + +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; +import com.tencent.videolite.android.datamodel.cctvjce.BusinessExtent; +import com.tencent.videolite.android.datamodel.cctvjce.BusinessHead; +import com.tencent.videolite.android.datamodel.cctvjce.QUA; +import com.tencent.videolite.android.datamodel.cctvjce.RequestCommand; +import com.tencent.videolite.android.datamodel.cctvjce.RequestHead; + +import okhttp3.MediaType; +import okhttp3.RequestBody; +import retrofit2.Converter; + +public class JceRequestBodyConverter implements Converter { + private static final MediaType MEDIA_TYPE = MediaType.get("application/octet-stream"); + + @Override + public RequestBody convert(@NonNull T value) { + BusinessHead businessHead = new BusinessHead(); + RequestHead requestHead = new RequestHead(); + requestHead.appId = "1200013"; + requestHead.busiExtent = new BusinessExtent(1); + requestHead.cmdId = 24897; + requestHead.contentType = 0; + requestHead.guid = "093e7e5989684fd986c44f07542d8dc8"; + requestHead.isSupportDolby = 0; + requestHead.oemPlatform = 0; + QUA qua = new QUA(); + qua.appSubVersion = ""; + qua.areaMode = 1; + qua.channelId = "50001"; + qua.clientKey = "A41CD6B6-6A56-46DC-9AE0-4ECF2E9118DF"; + qua.countryCode = 0; + qua.densityDpi = 0; + qua.deviceId = "5EE46760-11B1-5FE7-949A-FF232DAE1823"; + qua.deviceModel = "iPad Pro (12.9 inch) 3G"; + qua.deviceType = 1; + qua.extent = ""; + qua.idfa = ""; + qua.imei = ""; + qua.langCode = 0; + qua.mac = ""; + qua.markerId = 1; + qua.mobileISP = 0; + qua.networkMode = 0; + qua.omgId = "78d6ac7572afb5461e9a590f089f893d2abc0010119007"; + qua.platform = 5; + qua.platformVersion = "sysver=ios17.2&device=iPad&modify_time=&lang=zh_CN"; + qua.qimei = "1c0fc6ed8a53584ae722b915200014317601"; + qua.screenHeight = 2360; + qua.screenWidth = 1640; + qua.serverid = ""; + qua.v4ip = ""; + qua.versionCode = "23399"; + qua.versionName = "2.9.0.23399"; + requestHead.qua = qua; + requestHead.requestId = 1; + + JceOutputStream jceOutputStream = new JceOutputStream(); + jceOutputStream.setServerEncoding("utf-8"); + value.writeTo(jceOutputStream); + byte[] bytes = jceOutputStream.toByteArray(); + RequestCommand requestCommand = new RequestCommand(requestHead, bytes, businessHead); + bytes = b.b(requestCommand, requestHead.requestId); + return RequestBody.create(MEDIA_TYPE, bytes); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/lizongying/mytv/jce/JceResponseBodyConverter.java b/app/src/main/java/com/lizongying/mytv/jce/JceResponseBodyConverter.java new file mode 100644 index 00000000..747bb7d5 --- /dev/null +++ b/app/src/main/java/com/lizongying/mytv/jce/JceResponseBodyConverter.java @@ -0,0 +1,64 @@ +package com.lizongying.mytv.jce; + +import androidx.annotation.NonNull; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceStruct; +import com.tencent.videolite.android.datamodel.cctvjce.QQVideoJCECmd; +import com.tencent.videolite.android.datamodel.cctvjce.ResponseCommand; + +import java.io.IOException; + +import okhttp3.ResponseBody; +import retrofit2.Converter; + +public class JceResponseBodyConverter implements Converter { + + JceResponseBodyConverter() { + } + + @Override + public T convert(@NonNull ResponseBody value) throws IOException { + return parseFrom(value.bytes()); + } + + public T parseFrom(byte[] aa) { + byte[] bArr; + + int[] iArr = new int[1]; + try { + bArr = b.a(aa, iArr); + } catch (Throwable unused) { + bArr = null; + } + + ResponseCommand responseCommand = a.g(bArr, ResponseCommand.class); + if (responseCommand == null) { + return null; + } + + QQVideoJCECmd convert = QQVideoJCECmd.convert(responseCommand.head.cmdId); + assert convert != null; + + JceInputStream jceInputStream = new JceInputStream(responseCommand.body); + jceInputStream.setServerEncoding("UTF-8"); + + JceStruct instance = null; + try { + instance = (JceStruct) Class.forName("com.tencent.videolite.android.datamodel.cctvjce." + convert + "Response").newInstance(); + } catch (InstantiationException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + + if (instance != null) { + instance.readFrom(jceInputStream); + return (T) instance; + } else { + return null; + } + } +} diff --git a/app/src/main/java/com/lizongying/mytv/jce/a.java b/app/src/main/java/com/lizongying/mytv/jce/a.java new file mode 100644 index 00000000..987900e0 --- /dev/null +++ b/app/src/main/java/com/lizongying/mytv/jce/a.java @@ -0,0 +1,160 @@ +package com.lizongying.mytv.jce; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; + +import java.lang.reflect.Field; + +public class a { + + /* renamed from: a reason: collision with root package name */ + private static final String f33240a = "Net_Protocol"; + + private a() { + } + + private static JceStruct a(JceStruct jceStruct, ClassLoader classLoader) { + Class cls; + if (jceStruct == null) { + return null; + } + String name = jceStruct.getClass().getName(); + String str = name.substring(0, name.length() - 7) + "Response"; + try { + if (classLoader == null) { + cls = Class.forName(str); + } else { + cls = Class.forName(str, true, classLoader); + } + return (JceStruct) cls.newInstance(); + } catch (ClassNotFoundException unused) { + return null; + } catch (IllegalAccessException unused) { + return null; + } catch (InstantiationException unused) { + return null; + } + } + + private static JceStruct b(String str, ClassLoader classLoader) { + Class cls; + if (str == null) { + return null; + } + String str2 = str + "Response"; + try { + if (classLoader == null) { + cls = Class.forName(str2); + } else { + cls = Class.forName(str2, true, classLoader); + } + return (JceStruct) cls.newInstance(); + } catch (ClassNotFoundException unused) { + return null; + } catch (IllegalAccessException unused) { + return null; + } catch (InstantiationException unused) { + return null; + } + } + + public static int c(Object obj) { + Field[] declaredFields; + int i2 = 0; + if (obj == null) { + return 0; + } + for (Field field : obj.getClass().getDeclaredFields()) { + if (field != null) { + field.setAccessible(true); + if (!field.getName().equals("errCode")) { + continue; + } else if (!field.getType().getName().equals(Integer.class.getName()) && !field.getType().getName().equals("int")) { + if (field.getType().getName().equals(Long.class.getName()) || field.getType().getName().equals("long")) { + try { + return (int) field.getLong(obj); + } catch (IllegalAccessException e2) { + e2.printStackTrace(); + } catch (IllegalArgumentException e3) { + e3.printStackTrace(); + } + } + } else { + try { + return field.getInt(obj); + } catch (IllegalAccessException e4) { + e4.printStackTrace(); + } catch (IllegalArgumentException e5) { + e5.printStackTrace(); + } + } + } + } + return i2; + } + + public static byte[] d(JceStruct jceStruct) { + if (jceStruct == null) { + return null; + } + JceOutputStream jceOutputStream = new JceOutputStream(); + jceOutputStream.setServerEncoding("utf-8"); + jceStruct.writeTo(jceOutputStream); + return jceOutputStream.toByteArray(); + } + + public static JceStruct e(JceStruct jceStruct, byte[] bArr, ClassLoader classLoader) { + JceStruct a2; + if (jceStruct != null && bArr != null && (a2 = a(jceStruct, classLoader)) != null) { + try { + JceInputStream jceInputStream = new JceInputStream(bArr); + jceInputStream.setServerEncoding("utf-8"); + a2.readFrom(jceInputStream); + return a2; + } catch (Exception unused) { + } + } + return null; + } + + public static JceStruct f(String str, byte[] bArr, ClassLoader classLoader) { + if (str != null && bArr != null) { + JceStruct b2 = b(str, classLoader); + if (b2 != null) { + try { + JceInputStream jceInputStream = new JceInputStream(bArr); + jceInputStream.setServerEncoding("utf-8"); + b2.readFrom(jceInputStream); + return b2; + } catch (Exception e2) { + return null; + } + } + } + return null; + } + + public static T g(byte[] bArr, Class cls) { + T t; + if (bArr != null && bArr.length >= 4) { + try { + t = cls.newInstance(); + } catch (IllegalAccessException unused) { + t = null; + } catch (InstantiationException unused) { + t = null; + } + try { + JceInputStream jceInputStream = new JceInputStream(bArr); + jceInputStream.setServerEncoding("utf-8"); + if (t != null) { + t.readFrom(jceInputStream); + } + return t; + } catch (Exception unused2) { + } + } + return null; + } +} diff --git a/app/src/main/java/com/lizongying/mytv/jce/b.java b/app/src/main/java/com/lizongying/mytv/jce/b.java new file mode 100644 index 00000000..9fb9b94b --- /dev/null +++ b/app/src/main/java/com/lizongying/mytv/jce/b.java @@ -0,0 +1,187 @@ +package com.lizongying.mytv.jce; + +import com.tencent.videolite.android.datamodel.cctvjce.RequestCommand; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.nio.ByteBuffer; + +public class b { + + /* renamed from: a reason: collision with root package name */ + private static final String f33241a = "Net_UnifiedProtocol"; + + b() { + } + + public static byte[] a(byte[] bArr, int[] iArr) { + boolean z; + if (bArr == null || bArr.length == 0) { + return null; + } + ByteBuffer wrap = ByteBuffer.wrap(bArr); + if (wrap.get() == 19 && wrap.getInt() == bArr.length) { + wrap.getShort(); + if ((wrap.getShort() & 65535) != 65281) { + + return null; + } + wrap.getShort(); + int i2 = wrap.getShort() & 65535; + if (i2 != 0) { + iArr[0] = i2; + + return null; + } + wrap.getLong(); + int i3 = wrap.getInt(); + if ((i3 & 2) <= 0) { + z = false; + } else if ((i3 & 16) <= 0) { + iArr[0] = -867; + return null; + } else { + z = true; + } + wrap.getInt(); + wrap.getLong(); + wrap.position(wrap.position() + 32); + wrap.get(); + wrap.position(wrap.position() + 10); + wrap.get(); + wrap.position(wrap.position() + (wrap.getShort() & 65535)); + int i4 = 65535 & wrap.getShort(); + wrap.position(wrap.position() + i4); + int i5 = 83 + i4 + 2; + int i6 = wrap.getInt(); + int i7 = i5 + 4; + if (wrap.get(bArr.length - 1) != 3) { + iArr[0] = -869; + return null; + } + int length = (bArr.length - i7) - 1; + if (length <= 0) { + iArr[0] = -868; + return null; + } + byte[] bArr2 = new byte[length]; + System.arraycopy(bArr, i7, bArr2, 0, length); + return c(bArr2, z, i6, iArr); + } + return null; + } + + public static byte[] b(RequestCommand requestCommand, long j) { + byte[] d2 = a.d(requestCommand); + if (d2 == null) { + return null; + } + byte[] d3 = d(d2); + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(d3.length + 50); + DataOutputStream dataOutputStream = new DataOutputStream(byteArrayOutputStream); + try { + dataOutputStream.writeByte(19); + dataOutputStream.writeInt(0); + dataOutputStream.writeShort(2); + dataOutputStream.writeShort(65281); + dataOutputStream.writeShort(requestCommand.head.cmdId); + dataOutputStream.writeShort(0); + dataOutputStream.writeLong(j); + dataOutputStream.writeInt(531); + dataOutputStream.writeInt(0); + dataOutputStream.writeLong(0); + e(dataOutputStream, requestCommand.head.guid, 32); + dataOutputStream.writeByte(0); +// VersionCode + dataOutputStream.writeInt(0); + e(dataOutputStream, null, 6); + dataOutputStream.writeByte(0); + dataOutputStream.writeShort(0); + dataOutputStream.writeShort(0); + dataOutputStream.writeInt(d3.length); + byte[] compressGZIP = CompressUtils.compressGZIP(d3); + if (compressGZIP == null) { + return null; + } + dataOutputStream.write(compressGZIP); + dataOutputStream.writeByte(3); + dataOutputStream.close(); + byte[] byteArray = byteArrayOutputStream.toByteArray(); + ByteBuffer wrap = ByteBuffer.wrap(byteArray); + wrap.putInt(1, byteArray.length); + return wrap.array(); + } catch (IOException unused) { + return null; + } + } + + private static byte[] c(byte[] bArr, boolean z, int i2, int[] iArr) { + if (bArr == null) { + iArr[0] = -871; + return null; +// } else if (z && ((bArr = CompressUtils.decompressGZIP(bArr)) == null || bArr.length != i2)) { + } else if (z && ((bArr = CompressUtils.decompressGZIP(bArr)) == null)) { + iArr[0] = -871; + + return null; + } else { + ByteBuffer wrap = ByteBuffer.wrap(bArr); + int position = wrap.position() + 16; + if (wrap.get() != 38) { + iArr[0] = -869; + return null; + } else if (wrap.get(bArr.length - 1) != 40) { + iArr[0] = -869; + return null; + } else { + int length = (bArr.length - position) - 1; + if (length <= 0) { + iArr[0] = -869; + return null; + } + byte[] bArr2 = new byte[length]; + System.arraycopy(bArr, position, bArr2, 0, length); + return bArr2; + } + } + } + + private static byte[] d(byte[] bArr) { + int length = bArr.length + 17; + ByteBuffer allocate = ByteBuffer.allocate(length); + allocate.put((byte) 38); + allocate.putInt(length); + allocate.put((byte) 1); + allocate.position(allocate.position() + 10); + allocate.put(bArr); + allocate.put((byte) 40); + return allocate.array(); + } + + private static void e(OutputStream outputStream, String str, int i2) throws IOException { + byte[] bArr; + int i3; + if (i2 > 0) { + if (str != null) { + bArr = str.getBytes("UTF-8"); + i3 = bArr.length; + } else { + bArr = null; + i3 = 0; + } + if (i3 >= i2) { + outputStream.write(bArr, 0, i2); + return; + } + if (i3 > 0) { + outputStream.write(bArr, 0, i3); + } + while (i3 < i2) { + outputStream.write(0); + i3++; + } + } + } +} diff --git a/app/src/main/java/com/lizongying/mytv/models/ProgramType.kt b/app/src/main/java/com/lizongying/mytv/models/ProgramType.kt new file mode 100644 index 00000000..1558cce9 --- /dev/null +++ b/app/src/main/java/com/lizongying/mytv/models/ProgramType.kt @@ -0,0 +1,7 @@ +package com.lizongying.mytv.models + +enum class ProgramType { + Y_PROTO, + Y_JCE, + F, +} \ No newline at end of file diff --git a/app/src/main/java/com/lizongying/mytv/models/TVViewModel.kt b/app/src/main/java/com/lizongying/mytv/models/TVViewModel.kt index c2efea62..bd30728d 100644 --- a/app/src/main/java/com/lizongying/mytv/models/TVViewModel.kt +++ b/app/src/main/java/com/lizongying/mytv/models/TVViewModel.kt @@ -7,6 +7,7 @@ import androidx.lifecycle.ViewModel import com.lizongying.mytv.TV import com.lizongying.mytv.api.FEPG import com.lizongying.mytv.proto.Ysp.cn.yangshipin.omstv.common.proto.programModel.Program +import com.tencent.videolite.android.datamodel.cctvjce.TVProgram import java.text.SimpleDateFormat import java.util.TimeZone @@ -114,6 +115,10 @@ class TVViewModel(private var tv: TV) : ViewModel() { return tv } + fun addYJceEPG(p: MutableList) { + _epg.value = p.map { EPG(it.name, it.start_time_stamp.toInt()) }.toMutableList() + } + fun addYEPG(p: MutableList) { _epg.value = p.map { EPG(it.name, it.st.toInt()) }.toMutableList() } diff --git a/app/src/main/java/com/qq/taf/jce/HexUtil.java b/app/src/main/java/com/qq/taf/jce/HexUtil.java new file mode 100644 index 00000000..a0fb4dd7 --- /dev/null +++ b/app/src/main/java/com/qq/taf/jce/HexUtil.java @@ -0,0 +1,72 @@ +package com.qq.taf.jce; + +import java.nio.ByteBuffer; +public class HexUtil { + private static final char[] digits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; + public static final byte[] emptybytes = new byte[0]; + + public static String byte2HexStr(byte b2) { + char[] cArr = digits; + return new String(new char[]{cArr[((byte) (b2 >>> 4)) & 15], cArr[b2 & 15]}); + } + + public static String bytes2HexStr(ByteBuffer byteBuffer) { + ByteBuffer duplicate = byteBuffer.duplicate(); + duplicate.flip(); + byte[] bArr = new byte[duplicate.limit()]; + duplicate.get(bArr); + return bytes2HexStr(bArr); + } + + public static byte char2Byte(char c2) { + int i2; + if (c2 < '0' || c2 > '9') { + char c3 = 'a'; + if (c2 < 'a' || c2 > 'f') { + c3 = 'A'; + if (c2 < 'A' || c2 > 'F') { + return (byte) 0; + } + } + i2 = (c2 - c3) + 10; + } else { + i2 = c2 - '0'; + } + return (byte) i2; + } + + public static byte hexStr2Byte(String str) { + if (str == null || str.length() != 1) { + return (byte) 0; + } + return char2Byte(str.charAt(0)); + } + + public static byte[] hexStr2Bytes(String str) { + if (str != null && !str.equals("")) { + int length = str.length() / 2; + byte[] bArr = new byte[length]; + for (int i2 = 0; i2 < length; i2++) { + int i3 = i2 * 2; + bArr[i2] = (byte) ((char2Byte(str.charAt(i3)) * 16) + char2Byte(str.charAt(i3 + 1))); + } + return bArr; + } + return emptybytes; + } + + public static String bytes2HexStr(byte[] bArr) { + if (bArr == null || bArr.length == 0) { + return null; + } + char[] cArr = new char[bArr.length * 2]; + for (int i2 = 0; i2 < bArr.length; i2++) { + byte b2 = bArr[i2]; + int i3 = i2 * 2; + char[] cArr2 = digits; + cArr[i3 + 1] = cArr2[b2 & 15]; + cArr[i3 + 0] = cArr2[((byte) (b2 >>> 4)) & 15]; + } + return new String(cArr); + } +} diff --git a/app/src/main/java/com/qq/taf/jce/JceDecodeException.java b/app/src/main/java/com/qq/taf/jce/JceDecodeException.java new file mode 100644 index 00000000..14ddf641 --- /dev/null +++ b/app/src/main/java/com/qq/taf/jce/JceDecodeException.java @@ -0,0 +1,7 @@ +package com.qq.taf.jce; + +public class JceDecodeException extends RuntimeException { + public JceDecodeException(String str) { + super(str); + } +} diff --git a/app/src/main/java/com/qq/taf/jce/JceEncodeException.java b/app/src/main/java/com/qq/taf/jce/JceEncodeException.java new file mode 100644 index 00000000..7211bdd0 --- /dev/null +++ b/app/src/main/java/com/qq/taf/jce/JceEncodeException.java @@ -0,0 +1,7 @@ +package com.qq.taf.jce; + +public class JceEncodeException extends RuntimeException { + public JceEncodeException(String str) { + super(str); + } +} diff --git a/app/src/main/java/com/qq/taf/jce/JceInputStream.java b/app/src/main/java/com/qq/taf/jce/JceInputStream.java new file mode 100644 index 00000000..f9bfb4f4 --- /dev/null +++ b/app/src/main/java/com/qq/taf/jce/JceInputStream.java @@ -0,0 +1,896 @@ +package com.qq.taf.jce; + +import java.io.UnsupportedEncodingException; +import java.lang.reflect.Array; +import java.nio.BufferUnderflowException; +import java.nio.ByteBuffer; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public final class JceInputStream { + private ByteBuffer bs; + protected String sServerEncoding = "GBK"; + + + public static class HeadData { + public int tag; + public byte type; + + public void clear() { + this.type = (byte) 0; + this.tag = 0; + } + } + + public JceInputStream() { + } + + private int peakHead(HeadData headData) { + return readHead(headData, this.bs.duplicate()); + } + + private T[] readArrayImpl(T t, int i2, boolean z) { + if (!skipToTag(i2)) { + if (z) { + throw new JceDecodeException("require field not exist."); + } + return null; + } + HeadData headData = new HeadData(); + readHead(headData); + if (headData.type == 9) { + int read = read(0, 0, true); + if (read >= 0) { + T[] tArr = (T[]) ((Object[]) Array.newInstance(t.getClass(), read)); + for (int i3 = 0; i3 < read; i3++) { + tArr[i3] = (T) read( t, 0, true); + } + return tArr; + } + throw new JceDecodeException("size invalid: " + read); + } + throw new JceDecodeException("type mismatch."); + } + + public static int readHead(HeadData headData, ByteBuffer byteBuffer) { + byte b2 = byteBuffer.get(); + headData.type = (byte) (b2 & 15); + int i2 = (b2 & 240) >> 4; + headData.tag = i2; + if (i2 == 15) { + headData.tag = byteBuffer.get() & 255; + return 2; + } + return 1; + } + + private void skip(int i2) { + ByteBuffer byteBuffer = this.bs; + byteBuffer.position(byteBuffer.position() + i2); + } + + private void skipField() { + HeadData headData = new HeadData(); + readHead(headData); + skipField(headData.type); + } + + public JceStruct directRead(JceStruct jceStruct, int i2, boolean z) { + if (!skipToTag(i2)) { + if (z) { + throw new JceDecodeException("require field not exist."); + } + return null; + } + try { + JceStruct newInit = jceStruct.newInit(); + HeadData headData = new HeadData(); + readHead(headData); + if (headData.type == 10) { + newInit.readFrom(this); + skipToStructEnd(); + return newInit; + } + throw new JceDecodeException("type mismatch."); + } catch (Exception e2) { + throw new JceDecodeException(e2.getMessage()); + } + } + + public ByteBuffer getBs() { + return this.bs; + } + + public boolean read(boolean z, int i2, boolean z2) { + return read((byte) 0, i2, z2) != 0; + } + + public T[] readArray(T[] tArr, int i2, boolean z) { + if (tArr != null && tArr.length != 0) { + return (T[]) readArrayImpl(tArr[0], i2, z); + } + throw new JceDecodeException("unable to get type of key and value."); + } + + public String readByteString(String str, int i2, boolean z) { + if (!skipToTag(i2)) { + if (z) { + throw new JceDecodeException("require field not exist."); + } + return str; + } + HeadData headData = new HeadData(); + readHead(headData); + byte b2 = headData.type; + if (b2 == 6) { + int i3 = this.bs.get(); + if (i3 < 0) { + i3 += 256; + } + byte[] bArr = new byte[i3]; + this.bs.get(bArr); + return HexUtil.bytes2HexStr(bArr); + } else if (b2 == 7) { + int i4 = this.bs.getInt(); + if (i4 <= 104857600 && i4 >= 0 && i4 <= this.bs.capacity()) { + byte[] bArr2 = new byte[i4]; + this.bs.get(bArr2); + return HexUtil.bytes2HexStr(bArr2); + } + throw new JceDecodeException("String too long: " + i4); + } else { + throw new JceDecodeException("type mismatch."); + } + } + + public List readList(int i2, boolean z) { + ArrayList arrayList = new ArrayList(); + if (skipToTag(i2)) { + HeadData headData = new HeadData(); + readHead(headData); + if (headData.type == 9) { + int read = read(0, 0, true); + if (read < 0) { + throw new JceDecodeException("size invalid: " + read); + } + for (int i3 = 0; i3 < read; i3++) { + HeadData headData2 = new HeadData(); + readHead(headData2); + switch (headData2.type) { + case 0: + skip(1); + break; + case 1: + skip(2); + break; + case 2: + skip(4); + break; + case 3: + skip(8); + break; + case 4: + skip(4); + break; + case 5: + skip(8); + break; + case 6: + int i4 = this.bs.get(); + if (i4 < 0) { + i4 += 256; + } + skip(i4); + break; + case 7: + skip(this.bs.getInt()); + break; + case 8: + case 9: + break; + case 10: + try { + JceStruct jceStruct = (JceStruct) Class.forName(JceStruct.class.getName()).getConstructor(new Class[0]).newInstance(new Object[0]); + jceStruct.readFrom(this); + skipToStructEnd(); + arrayList.add(jceStruct); + break; + } catch (Exception e2) { + e2.printStackTrace(); + throw new JceDecodeException("type mismatch." + e2); + } + case 11: + default: + throw new JceDecodeException("type mismatch."); + case 12: + arrayList.add(Integer.valueOf(0)); + break; + } + } + } else { + throw new JceDecodeException("type mismatch."); + } + } else if (z) { + throw new JceDecodeException("require field not exist."); + } + return arrayList; + } + + public HashMap readMap(Map map, int i2, boolean z) { + return (HashMap) readMap(new HashMap(), map, i2, z); + } + + public String readString(int i2, boolean z) { + if (!skipToTag(i2)) { + if (z) { + throw new JceDecodeException("require field not exist."); + } + return null; + } + HeadData headData = new HeadData(); + readHead(headData); + byte b2 = headData.type; + if (b2 == 6) { + int i3 = this.bs.get(); + if (i3 < 0) { + i3 += 256; + } + byte[] bArr = new byte[i3]; + this.bs.get(bArr); + try { + return new String(bArr, this.sServerEncoding); + } catch (UnsupportedEncodingException unused) { + return new String(bArr); + } + } else if (b2 == 7) { + int i4 = this.bs.getInt(); + if (i4 <= 104857600 && i4 >= 0 && i4 <= this.bs.capacity()) { + byte[] bArr2 = new byte[i4]; + this.bs.get(bArr2); + try { + return new String(bArr2, this.sServerEncoding); + } catch (UnsupportedEncodingException unused2) { + return new String(bArr2); + } + } + throw new JceDecodeException("String too long: " + i4); + } else { + throw new JceDecodeException("type mismatch."); + } + } + + public Map readStringMap(int i2, boolean z) { + HashMap hashMap = new HashMap(); + if (skipToTag(i2)) { + HeadData headData = new HeadData(); + readHead(headData); + if (headData.type == 8) { + int read = read(0, 0, true); + if (read < 0) { + throw new JceDecodeException("size invalid: " + read); + } + for (int i3 = 0; i3 < read; i3++) { + hashMap.put(readString(0, true), readString(1, true)); + } + } else { + throw new JceDecodeException("type mismatch."); + } + } else if (z) { + throw new JceDecodeException("require field not exist."); + } + return hashMap; + } + + public int setServerEncoding(String str) { + this.sServerEncoding = str; + return 0; + } + + public void skipToStructEnd() { + HeadData headData = new HeadData(); + do { + readHead(headData); + skipField(headData.type); + } while (headData.type != 11); + } + + public boolean skipToTag(int i2) { + try { + HeadData headData = new HeadData(); + while (true) { + int peakHead = peakHead(headData); + if (i2 <= headData.tag || headData.type == 11) { + break; + } + skip(peakHead); + skipField(headData.type); + } + if (headData.type == 11) { + return false; + } + return i2 == headData.tag; + } catch (JceDecodeException | BufferUnderflowException unused) { + return false; + } + } + + public void warp(byte[] bArr) { + wrap(bArr); + } + + public void wrap(byte[] bArr) { + this.bs = ByteBuffer.wrap(bArr); + } + + + private Map readMap(Map map, Map map2, int i2, boolean z) { + if (map2 != null && !map2.isEmpty()) { + Map.Entry next = map2.entrySet().iterator().next(); + K key = next.getKey(); + V value = next.getValue(); + if (skipToTag(i2)) { + HeadData headData = new HeadData(); + readHead(headData); + if (headData.type == 8) { + int read = read(0, 0, true); + if (read < 0) { + throw new JceDecodeException("size invalid: " + read); + } + for (int i3 = 0; i3 < read; i3++) { + map.put((K)read( key, 0, true), (V)read(value, 1, true)); + } + } else { + throw new JceDecodeException("type mismatch."); + } + } else if (z) { + throw new JceDecodeException("require field not exist."); + } + return map; + } + return new HashMap(); + } + + public byte read(byte b2, int i2, boolean z) { + if (!skipToTag(i2)) { + if (z) { + throw new JceDecodeException("require field not exist."); + } + return b2; + } + HeadData headData = new HeadData(); + readHead(headData); + byte b3 = headData.type; + if (b3 != 0) { + if (b3 == 12) { + return (byte) 0; + } + throw new JceDecodeException("type mismatch."); + } + return this.bs.get(); + } + + public JceInputStream(ByteBuffer byteBuffer) { + this.bs = byteBuffer; + } + + private void skipField(byte b2) { + int i2 = 0; + switch (b2) { + case 0: + skip(1); + return; + case 1: + skip(2); + return; + case 2: + skip(4); + return; + case 3: + skip(8); + return; + case 4: + skip(4); + return; + case 5: + skip(8); + return; + case 6: + int i3 = this.bs.get(); + if (i3 < 0) { + i3 += 256; + } + skip(i3); + return; + case 7: + skip(this.bs.getInt()); + return; + case 8: + int read = read(0, 0, true); + while (i2 < read * 2) { + skipField(); + i2++; + } + return; + case 9: + int read2 = read(0, 0, true); + while (i2 < read2) { + skipField(); + i2++; + } + return; + case 10: + skipToStructEnd(); + return; + case 11: + case 12: + return; + case 13: + HeadData headData = new HeadData(); + readHead(headData); + if (headData.type == 0) { + skip(read(0, 0, true)); + return; + } + throw new JceDecodeException("skipField with invalid type, type value: " + ((int) b2) + ", " + ((int) headData.type)); + default: + throw new JceDecodeException("invalid type."); + } + } + + public List readArray(List list, int i2, boolean z) { + if (list != null && !list.isEmpty()) { + Object[] readArrayImpl = readArrayImpl(list.get(0), i2, z); + if (readArrayImpl == null) { + return null; + } + ArrayList arrayList = new ArrayList(); + for (Object obj : readArrayImpl) { + arrayList.add(obj); + } + return arrayList; + } + return new ArrayList(); + } + + public void readHead(HeadData headData) { + readHead(headData, this.bs); + } + + public JceInputStream(byte[] bArr) { + this.bs = ByteBuffer.wrap(bArr); + } + + public JceInputStream(byte[] bArr, int i2) { + ByteBuffer wrap = ByteBuffer.wrap(bArr); + this.bs = wrap; + wrap.position(i2); + } + + public short read(short s, int i2, boolean z) { + if (!skipToTag(i2)) { + if (z) { + throw new JceDecodeException("require field not exist."); + } + return s; + } + HeadData headData = new HeadData(); + readHead(headData); + byte b2 = headData.type; + if (b2 != 0) { + if (b2 != 1) { + if (b2 == 12) { + return (short) 0; + } + throw new JceDecodeException("type mismatch."); + } + return this.bs.getShort(); + } + return this.bs.get(); + } + + public int read(int i2, int i3, boolean z) { + if (!skipToTag(i3)) { + if (z) { + throw new JceDecodeException("require field not exist."); + } + return i2; + } + HeadData headData = new HeadData(); + readHead(headData); + byte b2 = headData.type; + if (b2 != 0) { + if (b2 != 1) { + if (b2 != 2) { + if (b2 == 12) { + return 0; + } + throw new JceDecodeException("type mismatch."); + } + return this.bs.getInt(); + } + return this.bs.getShort(); + } + return this.bs.get(); + } + + public long read(long j, int i2, boolean z) { + int i3; + if (!skipToTag(i2)) { + if (z) { + throw new JceDecodeException("require field not exist."); + } + return j; + } + HeadData headData = new HeadData(); + readHead(headData); + byte b2 = headData.type; + if (b2 == 0) { + i3 = this.bs.get(); + } else if (b2 == 1) { + i3 = this.bs.getShort(); + } else if (b2 != 2) { + if (b2 != 3) { + if (b2 == 12) { + return 0L; + } + throw new JceDecodeException("type mismatch."); + } + return this.bs.getLong(); + } else { + i3 = this.bs.getInt(); + } + return i3; + } + + public float read(float f2, int i2, boolean z) { + if (!skipToTag(i2)) { + if (z) { + throw new JceDecodeException("require field not exist."); + } + return f2; + } + HeadData headData = new HeadData(); + readHead(headData); + byte b2 = headData.type; + if (b2 != 4) { + if (b2 == 12) { + return 0.0f; + } + throw new JceDecodeException("type mismatch."); + } + return this.bs.getFloat(); + } + + public double read(double d2, int i2, boolean z) { + if (!skipToTag(i2)) { + if (z) { + throw new JceDecodeException("require field not exist."); + } + return d2; + } + HeadData headData = new HeadData(); + readHead(headData); + byte b2 = headData.type; + if (b2 != 4) { + if (b2 != 5) { + if (b2 == 12) { + return 0.0d; + } + throw new JceDecodeException("type mismatch."); + } + return this.bs.getDouble(); + } + return this.bs.getFloat(); + } + + public String read(String str, int i2, boolean z) { + String str2; + if (!skipToTag(i2)) { + if (z) { + throw new JceDecodeException("require field not exist."); + } + return str; + } + HeadData headData = new HeadData(); + readHead(headData); + byte b2 = headData.type; + if (b2 == 6) { + int i3 = this.bs.get(); + if (i3 < 0) { + i3 += 256; + } + byte[] bArr = new byte[i3]; + this.bs.get(bArr); + try { + str2 = new String(bArr, this.sServerEncoding); + } catch (UnsupportedEncodingException unused) { + str2 = new String(bArr); + } + } else if (b2 == 7) { + int i4 = this.bs.getInt(); + if (i4 <= 104857600 && i4 >= 0 && i4 <= this.bs.capacity()) { + byte[] bArr2 = new byte[i4]; + this.bs.get(bArr2); + try { + str2 = new String(bArr2, this.sServerEncoding); + } catch (UnsupportedEncodingException unused2) { + str2 = new String(bArr2); + } + } else { + throw new JceDecodeException("String too long: " + i4); + } + } else { + throw new JceDecodeException("type mismatch."); + } + return str2; + } + + public String[] read(String[] strArr, int i2, boolean z) { + return (String[]) readArray(strArr, i2, z); + } + + public boolean[] read(boolean[] zArr, int i2, boolean z) { + if (!skipToTag(i2)) { + if (z) { + throw new JceDecodeException("require field not exist."); + } + return null; + } + HeadData headData = new HeadData(); + readHead(headData); + if (headData.type == 9) { + int read = read(0, 0, true); + if (read >= 0) { + boolean[] zArr2 = new boolean[read]; + for (int i3 = 0; i3 < read; i3++) { + zArr2[i3] = read(zArr2[0], 0, true); + } + return zArr2; + } + throw new JceDecodeException("size invalid: " + read); + } + throw new JceDecodeException("type mismatch."); + } + + public byte[] read(byte[] bArr, int i2, boolean z) { + if (!skipToTag(i2)) { + if (z) { + throw new JceDecodeException("require field not exist."); + } + return null; + } + HeadData headData = new HeadData(); + readHead(headData); + byte b2 = headData.type; + if (b2 == 9) { + int read = read(0, 0, true); + if (read >= 0 && read <= this.bs.capacity()) { + byte[] bArr2 = new byte[read]; + for (int i3 = 0; i3 < read; i3++) { + bArr2[i3] = read(bArr2[0], 0, true); + } + return bArr2; + } + throw new JceDecodeException("size invalid: " + read); + } else if (b2 == 13) { + HeadData headData2 = new HeadData(); + readHead(headData2); + if (headData2.type == 0) { + int read2 = read(0, 0, true); + if (read2 >= 0 && read2 <= this.bs.capacity()) { + byte[] bArr3 = new byte[read2]; + this.bs.get(bArr3); + return bArr3; + } + throw new JceDecodeException("invalid size, tag: " + i2 + ", type: " + ((int) headData.type) + ", " + ((int) headData2.type) + ", size: " + read2); + } + throw new JceDecodeException("type mismatch, tag: " + i2 + ", type: " + ((int) headData.type) + ", " + ((int) headData2.type)); + } else { + throw new JceDecodeException("type mismatch."); + } + } + + public short[] read(short[] sArr, int i2, boolean z) { + if (!skipToTag(i2)) { + if (z) { + throw new JceDecodeException("require field not exist."); + } + return null; + } + HeadData headData = new HeadData(); + readHead(headData); + if (headData.type == 9) { + int read = read(0, 0, true); + if (read >= 0) { + short[] sArr2 = new short[read]; + for (int i3 = 0; i3 < read; i3++) { + sArr2[i3] = read(sArr2[0], 0, true); + } + return sArr2; + } + throw new JceDecodeException("size invalid: " + read); + } + throw new JceDecodeException("type mismatch."); + } + + public int[] read(int[] iArr, int i2, boolean z) { + if (!skipToTag(i2)) { + if (z) { + throw new JceDecodeException("require field not exist."); + } + return null; + } + HeadData headData = new HeadData(); + readHead(headData); + if (headData.type == 9) { + int read = read(0, 0, true); + if (read >= 0) { + int[] iArr2 = new int[read]; + for (int i3 = 0; i3 < read; i3++) { + iArr2[i3] = read(iArr2[0], 0, true); + } + return iArr2; + } + throw new JceDecodeException("size invalid: " + read); + } + throw new JceDecodeException("type mismatch."); + } + + public long[] read(long[] jArr, int i2, boolean z) { + if (!skipToTag(i2)) { + if (z) { + throw new JceDecodeException("require field not exist."); + } + return null; + } + HeadData headData = new HeadData(); + readHead(headData); + if (headData.type == 9) { + int read = read(0, 0, true); + if (read >= 0) { + long[] jArr2 = new long[read]; + for (int i3 = 0; i3 < read; i3++) { + jArr2[i3] = read(jArr2[0], 0, true); + } + return jArr2; + } + throw new JceDecodeException("size invalid: " + read); + } + throw new JceDecodeException("type mismatch."); + } + + public float[] read(float[] fArr, int i2, boolean z) { + if (!skipToTag(i2)) { + if (z) { + throw new JceDecodeException("require field not exist."); + } + return null; + } + HeadData headData = new HeadData(); + readHead(headData); + if (headData.type == 9) { + int read = read(0, 0, true); + if (read >= 0) { + float[] fArr2 = new float[read]; + for (int i3 = 0; i3 < read; i3++) { + fArr2[i3] = read(fArr2[0], 0, true); + } + return fArr2; + } + throw new JceDecodeException("size invalid: " + read); + } + throw new JceDecodeException("type mismatch."); + } + + public double[] read(double[] dArr, int i2, boolean z) { + if (!skipToTag(i2)) { + if (z) { + throw new JceDecodeException("require field not exist."); + } + return null; + } + HeadData headData = new HeadData(); + readHead(headData); + if (headData.type == 9) { + int read = read(0, 0, true); + if (read >= 0) { + double[] dArr2 = new double[read]; + for (int i3 = 0; i3 < read; i3++) { + dArr2[i3] = read(dArr2[0], 0, true); + } + return dArr2; + } + throw new JceDecodeException("size invalid: " + read); + } + throw new JceDecodeException("type mismatch."); + } + + public JceStruct read(JceStruct jceStruct, int i2, boolean z) { + if (!skipToTag(i2)) { + if (z) { + throw new JceDecodeException("require field not exist."); + } + return null; + } + try { + JceStruct jceStruct2 = (JceStruct) jceStruct.getClass().newInstance(); + HeadData headData = new HeadData(); + readHead(headData); + if (headData.type == 10) { + jceStruct2.readFrom(this); + skipToStructEnd(); + return jceStruct2; + } + throw new JceDecodeException("type mismatch."); + } catch (Exception e2) { + throw new JceDecodeException(e2.getMessage()); + } + } + + public JceStruct[] read(JceStruct[] jceStructArr, int i2, boolean z) { + return (JceStruct[]) readArray(jceStructArr, i2, z); + } + + public Object read(T t, int i2, boolean z) { + if (t instanceof Byte) { + return Byte.valueOf(read((byte) 0, i2, z)); + } + if (t instanceof Boolean) { + return Boolean.valueOf(read(false, i2, z)); + } + if (t instanceof Short) { + return Short.valueOf(read((short) 0, i2, z)); + } + if (t instanceof Integer) { + return Integer.valueOf(read(0, i2, z)); + } + if (t instanceof Long) { + return Long.valueOf(read(0L, i2, z)); + } + if (t instanceof Float) { + return Float.valueOf(read(0.0f, i2, z)); + } + if (t instanceof Double) { + return Double.valueOf(read(0.0d, i2, z)); + } + if (t instanceof String) { + return readString(i2, z); + } + if (t instanceof Map) { + return readMap((Map) t, i2, z); + } + if (t instanceof List) { + return readArray((List) t, i2, z); + } + if (t instanceof JceStruct) { + return read((JceStruct) t, i2, z); + } + if (t.getClass().isArray()) { + if (!(t instanceof byte[]) && !(t instanceof Byte[])) { + if (t instanceof boolean[]) { + return read((boolean[]) null, i2, z); + } + if (t instanceof short[]) { + return read((short[]) null, i2, z); + } + if (t instanceof int[]) { + return read((int[]) null, i2, z); + } + if (t instanceof long[]) { + return read((long[]) null, i2, z); + } + if (t instanceof float[]) { + return read((float[]) null, i2, z); + } + if (t instanceof double[]) { + return read((double[]) null, i2, z); + } + return readArray((Object[]) t, i2, z); + } + return read((byte[]) null, i2, z); + } + throw new JceDecodeException("read object error: unsupport type."); + } +} diff --git a/app/src/main/java/com/qq/taf/jce/JceOutputStream.java b/app/src/main/java/com/qq/taf/jce/JceOutputStream.java new file mode 100644 index 00000000..02a54310 --- /dev/null +++ b/app/src/main/java/com/qq/taf/jce/JceOutputStream.java @@ -0,0 +1,361 @@ +package com.qq.taf.jce; + +import java.io.UnsupportedEncodingException; +import java.nio.ByteBuffer; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +public class JceOutputStream { + private ByteBuffer bs; + private OnIllegalArgumentException exceptionHandler; + protected String sServerEncoding; + + public JceOutputStream(ByteBuffer byteBuffer) { + this.sServerEncoding = "GBK"; + this.bs = byteBuffer; + } + + private void writeArray(Object[] objArr, int i2) { + reserve(8); + writeHead((byte) 9, i2); + write(objArr.length, 0); + for (Object obj : objArr) { + write(obj, 0); + } + } + + public ByteBuffer getByteBuffer() { + return this.bs; + } + + public OnIllegalArgumentException getExceptionHandler() { + return this.exceptionHandler; + } + + public void reserve(int i2) { + if (this.bs.remaining() < i2) { + int capacity = (this.bs.capacity() + i2) * 2; + try { + ByteBuffer allocate = ByteBuffer.allocate(capacity); + allocate.put(this.bs.array(), 0, this.bs.position()); + this.bs = allocate; + } catch (IllegalArgumentException e2) { + OnIllegalArgumentException onIllegalArgumentException = this.exceptionHandler; + if (onIllegalArgumentException != null) { + onIllegalArgumentException.onException(e2, this.bs, i2, capacity); + } + throw e2; + } + } + } + + public void setExceptionHandler(OnIllegalArgumentException onIllegalArgumentException) { + this.exceptionHandler = onIllegalArgumentException; + } + + public int setServerEncoding(String str) { + this.sServerEncoding = str; + return 0; + } + + public byte[] toByteArray() { + byte[] bArr = new byte[this.bs.position()]; + System.arraycopy(this.bs.array(), 0, bArr, 0, this.bs.position()); + return bArr; + } + + public void write(boolean z, int i2) { + write(z ? (byte) 1 : (byte) 0, i2); + } + + public void writeByteString(String str, int i2) { + reserve(str.length() + 10); + byte[] hexStr2Bytes = HexUtil.hexStr2Bytes(str); + if (hexStr2Bytes.length > 255) { + writeHead((byte) 7, i2); + this.bs.putInt(hexStr2Bytes.length); + this.bs.put(hexStr2Bytes); + return; + } + writeHead((byte) 6, i2); + this.bs.put((byte) hexStr2Bytes.length); + this.bs.put(hexStr2Bytes); + } + + public void writeHead(byte b2, int i2) { + if (i2 < 15) { + this.bs.put((byte) (b2 | (i2 << 4))); + } else if (i2 < 256) { + this.bs.put((byte) (b2 | 240)); + this.bs.put((byte) i2); + } else { + throw new JceEncodeException("tag is too large: " + i2); + } + } + + public void writeStringByte(String str, int i2) { + byte[] hexStr2Bytes = HexUtil.hexStr2Bytes(str); + reserve(hexStr2Bytes.length + 10); + if (hexStr2Bytes.length > 255) { + writeHead((byte) 7, i2); + this.bs.putInt(hexStr2Bytes.length); + this.bs.put(hexStr2Bytes); + return; + } + writeHead((byte) 6, i2); + this.bs.put((byte) hexStr2Bytes.length); + this.bs.put(hexStr2Bytes); + } + + public void write(byte b2, int i2) { + reserve(3); + if (b2 == 0) { + writeHead((byte) 12, i2); + return; + } + writeHead((byte) 0, i2); + this.bs.put(b2); + } + + public JceOutputStream(int i2) { + this.sServerEncoding = "GBK"; + this.bs = ByteBuffer.allocate(i2); + } + + public void write(short s, int i2) { + reserve(4); + if (s >= -128 && s <= 127) { + write((byte) s, i2); + return; + } + writeHead((byte) 1, i2); + this.bs.putShort(s); + } + + public JceOutputStream() { + this(128); + } + + public void write(int i2, int i3) { + reserve(6); + if (i2 >= -32768 && i2 <= 32767) { + write((short) i2, i3); + return; + } + writeHead((byte) 2, i3); + this.bs.putInt(i2); + } + + public void write(long j, int i2) { + reserve(10); + if (j >= -2147483648L && j <= 2147483647L) { + write((int) j, i2); + return; + } + writeHead((byte) 3, i2); + this.bs.putLong(j); + } + + public void write(float f2, int i2) { + reserve(6); + writeHead((byte) 4, i2); + this.bs.putFloat(f2); + } + + public void write(double d2, int i2) { + reserve(10); + writeHead((byte) 5, i2); + this.bs.putDouble(d2); + } + + public void write(String str, int i2) { + byte[] bytes; + try { + bytes = str.getBytes(this.sServerEncoding); + } catch (UnsupportedEncodingException unused) { + bytes = str.getBytes(); + } + reserve(bytes.length + 10); + if (bytes.length > 255) { + writeHead((byte) 7, i2); + this.bs.putInt(bytes.length); + this.bs.put(bytes); + return; + } + writeHead((byte) 6, i2); + this.bs.put((byte) bytes.length); + this.bs.put(bytes); + } + + public void write(Map map, int i2) { + reserve(8); + writeHead((byte) 8, i2); + write(map == null ? 0 : map.size(), 0); + if (map != null) { + for (Map.Entry entry : map.entrySet()) { + write(entry.getKey(), 0); + write(entry.getValue(), 1); + } + } + } + + public void write(boolean[] zArr, int i2) { + reserve(8); + writeHead((byte) 9, i2); + write(zArr.length, 0); + for (boolean z : zArr) { + write(z, 0); + } + } + + public void write(byte[] bArr, int i2) { + reserve(bArr.length + 8); + writeHead((byte) 13, i2); + writeHead((byte) 0, 0); + write(bArr.length, 0); + this.bs.put(bArr); + } + + public void write(short[] sArr, int i2) { + reserve(8); + writeHead((byte) 9, i2); + write(sArr.length, 0); + for (short s : sArr) { + write(s, 0); + } + } + + public void write(int[] iArr, int i2) { + reserve(8); + writeHead((byte) 9, i2); + write(iArr.length, 0); + for (int i3 : iArr) { + write(i3, 0); + } + } + + public void write(long[] jArr, int i2) { + reserve(8); + writeHead((byte) 9, i2); + write(jArr.length, 0); + for (long j : jArr) { + write(j, 0); + } + } + + public void write(float[] fArr, int i2) { + reserve(8); + writeHead((byte) 9, i2); + write(fArr.length, 0); + for (float f2 : fArr) { + write(f2, 0); + } + } + + public void write(double[] dArr, int i2) { + reserve(8); + writeHead((byte) 9, i2); + write(dArr.length, 0); + for (double d2 : dArr) { + write(d2, 0); + } + } + + public void write(T[] tArr, int i2) { + writeArray(tArr, i2); + } + + public void write(Collection collection, int i2) { + reserve(8); + writeHead((byte) 9, i2); + write(collection == null ? 0 : collection.size(), 0); + if (collection != null) { + for (T t : collection) { + write(t, 0); + } + } + } + + public void write(JceStruct jceStruct, int i2) { + reserve(2); + writeHead((byte) 10, i2); + jceStruct.writeTo(this); + reserve(2); + writeHead((byte) 11, 0); + } + + public void write(Byte b2, int i2) { + write(b2.byteValue(), i2); + } + + public void write(Boolean bool, int i2) { + write(bool.booleanValue(), i2); + } + + public void write(Short sh, int i2) { + write(sh.shortValue(), i2); + } + + public void write(Integer num, int i2) { + write(num.intValue(), i2); + } + + public void write(Long l, int i2) { + write(l.longValue(), i2); + } + + public void write(Float f2, int i2) { + write(f2.floatValue(), i2); + } + + public void write(Double d2, int i2) { + write(d2.doubleValue(), i2); + } + + public void write(Object obj, int i2) { + if (obj instanceof Byte) { + write(((Byte) obj).byteValue(), i2); + } else if (obj instanceof Boolean) { + write(((Boolean) obj).booleanValue(), i2); + } else if (obj instanceof Short) { + write(((Short) obj).shortValue(), i2); + } else if (obj instanceof Integer) { + write(((Integer) obj).intValue(), i2); + } else if (obj instanceof Long) { + write(((Long) obj).longValue(), i2); + } else if (obj instanceof Float) { + write(((Float) obj).floatValue(), i2); + } else if (obj instanceof Double) { + write(((Double) obj).doubleValue(), i2); + } else if (obj instanceof String) { + write((String) obj, i2); + } else if (obj instanceof Map) { + write((Map) obj, i2); + } else if (obj instanceof List) { + write((Collection) ((List) obj), i2); + } else if (obj instanceof JceStruct) { + write((JceStruct) obj, i2); + } else if (obj instanceof byte[]) { + write((byte[]) obj, i2); + } else if (obj instanceof boolean[]) { + write((boolean[]) obj, i2); + } else if (obj instanceof short[]) { + write((short[]) obj, i2); + } else if (obj instanceof int[]) { + write((int[]) obj, i2); + } else if (obj instanceof long[]) { + write((long[]) obj, i2); + } else if (obj instanceof float[]) { + write((float[]) obj, i2); + } else if (obj instanceof double[]) { + write((double[]) obj, i2); + } else if (obj.getClass().isArray()) { + writeArray((Object[]) obj, i2); + } else if (obj instanceof Collection) { + write((Collection) obj, i2); + } else { + throw new JceEncodeException("write object error: unsupport type. " + obj.getClass()); + } + } +} diff --git a/app/src/main/java/com/qq/taf/jce/JceStruct.java b/app/src/main/java/com/qq/taf/jce/JceStruct.java new file mode 100644 index 00000000..71e47552 --- /dev/null +++ b/app/src/main/java/com/qq/taf/jce/JceStruct.java @@ -0,0 +1,86 @@ +package com.qq.taf.jce; + +import java.io.Serializable; + +public abstract class JceStruct implements Serializable { + public static final byte BYTE = 0; + public static final byte DOUBLE = 5; + public static final byte FLOAT = 4; + public static final byte INT = 2; + public static final int JCE_MAX_STRING_LENGTH = 104857600; + public static final byte LIST = 9; + public static final byte LONG = 3; + public static final byte MAP = 8; + public static final byte SHORT = 1; + public static final byte SIMPLE_LIST = 13; + public static final byte STRING1 = 6; + public static final byte STRING4 = 7; + public static final byte STRUCT_BEGIN = 10; + public static final byte STRUCT_END = 11; + public static final byte ZERO_TAG = 12; + private Object tag; + + public static String toDisplaySimpleString(JceStruct jceStruct) { + if (jceStruct == null) { + return null; + } + StringBuilder sb = new StringBuilder(); + jceStruct.displaySimple(sb, 0); + return sb.toString(); + } + + public boolean containField(String str) { + return false; + } + + public void display(StringBuilder sb, int i2) { + } + + public void displaySimple(StringBuilder sb, int i2) { + } + + public Object getFieldByName(String str) { + return null; + } + + public Object getTag() { + return this.tag; + } + + public JceStruct newInit() { + return null; + } + + public abstract void readFrom(JceInputStream jceInputStream); + + public void recyle() { + } + + public void setFieldByName(String str, Object obj) { + } + + public void setTag(Object obj) { + this.tag = obj; + } + + public byte[] toByteArray() { + JceOutputStream jceOutputStream = new JceOutputStream(); + writeTo(jceOutputStream); + return jceOutputStream.toByteArray(); + } + + public String toString() { + StringBuilder sb = new StringBuilder(); + display(sb, 0); + return sb.toString(); + } + + public abstract void writeTo(JceOutputStream jceOutputStream); + + public byte[] toByteArray(String str) { + JceOutputStream jceOutputStream = new JceOutputStream(); + jceOutputStream.setServerEncoding(str); + writeTo(jceOutputStream); + return jceOutputStream.toByteArray(); + } +} diff --git a/app/src/main/java/com/qq/taf/jce/OnIllegalArgumentException.java b/app/src/main/java/com/qq/taf/jce/OnIllegalArgumentException.java new file mode 100644 index 00000000..ff3140cc --- /dev/null +++ b/app/src/main/java/com/qq/taf/jce/OnIllegalArgumentException.java @@ -0,0 +1,7 @@ +package com.qq.taf.jce; + +import java.nio.ByteBuffer; + +public interface OnIllegalArgumentException { + void onException(IllegalArgumentException illegalArgumentException, ByteBuffer byteBuffer, int i2, int i3); +} diff --git a/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/Action.java b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/Action.java new file mode 100644 index 00000000..3b43a643 --- /dev/null +++ b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/Action.java @@ -0,0 +1,55 @@ +package com.tencent.videolite.android.datamodel.cctvjce; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; + +public final class Action extends JceStruct { + public String reportEventId; + public String reportKey; + public String reportParams; + public String url; + + public Action() { + this.url = ""; + this.reportEventId = ""; + this.reportKey = ""; + this.reportParams = ""; + } + + @Override // com.qq.taf.jce.JceStruct + public void readFrom(JceInputStream jceInputStream) { + this.url = jceInputStream.readString(0, true); + this.reportEventId = jceInputStream.readString(1, false); + this.reportKey = jceInputStream.readString(2, false); + this.reportParams = jceInputStream.readString(3, false); + } + + @Override // com.qq.taf.jce.JceStruct + public void writeTo(JceOutputStream jceOutputStream) { + jceOutputStream.write(this.url, 0); + String str = this.reportEventId; + if (str != null) { + jceOutputStream.write(str, 1); + } + String str2 = this.reportKey; + if (str2 != null) { + jceOutputStream.write(str2, 2); + } + String str3 = this.reportParams; + if (str3 != null) { + jceOutputStream.write(str3, 3); + } + } + + public Action(String str, String str2, String str3, String str4) { + this.url = ""; + this.reportEventId = ""; + this.reportKey = ""; + this.reportParams = ""; + this.url = str; + this.reportEventId = str2; + this.reportKey = str3; + this.reportParams = str4; + } +} diff --git a/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/BucketConfig.java b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/BucketConfig.java new file mode 100644 index 00000000..f6b38b9e --- /dev/null +++ b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/BucketConfig.java @@ -0,0 +1,36 @@ +package com.tencent.videolite.android.datamodel.cctvjce; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; +public final class BucketConfig extends JceStruct { + public int bucketId; + public String extra; + + public BucketConfig() { + this.bucketId = 0; + this.extra = ""; + } + + @Override // com.qq.taf.jce.JceStruct + public void readFrom(JceInputStream jceInputStream) { + this.bucketId = jceInputStream.read(this.bucketId, 0, true); + this.extra = jceInputStream.readString(1, false); + } + + @Override // com.qq.taf.jce.JceStruct + public void writeTo(JceOutputStream jceOutputStream) { + jceOutputStream.write(this.bucketId, 0); + String str = this.extra; + if (str != null) { + jceOutputStream.write(str, 1); + } + } + + public BucketConfig(int i2, String str) { + this.bucketId = 0; + this.extra = ""; + this.bucketId = i2; + this.extra = str; + } +} diff --git a/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/BusinessExtent.java b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/BusinessExtent.java new file mode 100644 index 00000000..fc7329f3 --- /dev/null +++ b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/BusinessExtent.java @@ -0,0 +1,27 @@ +package com.tencent.videolite.android.datamodel.cctvjce; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; +public final class BusinessExtent extends JceStruct { + public int launchType; + + public BusinessExtent() { + this.launchType = 0; + } + + @Override // com.qq.taf.jce.JceStruct + public void readFrom(JceInputStream jceInputStream) { + this.launchType = jceInputStream.read(this.launchType, 0, false); + } + + @Override // com.qq.taf.jce.JceStruct + public void writeTo(JceOutputStream jceOutputStream) { + jceOutputStream.write(this.launchType, 0); + } + + public BusinessExtent(int i2) { + this.launchType = 0; + this.launchType = i2; + } +} diff --git a/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/BusinessHead.java b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/BusinessHead.java new file mode 100644 index 00000000..3a68d43d --- /dev/null +++ b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/BusinessHead.java @@ -0,0 +1,42 @@ +package com.tencent.videolite.android.datamodel.cctvjce; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; +public final class BusinessHead extends JceStruct { + static byte[] cache_head; + public byte[] head; + public int type; + + static { + cache_head = new byte[0]; + byte[] bArr = {0}; + } + + public BusinessHead() { + this.type = 0; + this.head = null; + } + + @Override // com.qq.taf.jce.JceStruct + public void readFrom(JceInputStream jceInputStream) { + this.type = jceInputStream.read(this.type, 0, true); + this.head = jceInputStream.read(cache_head, 1, false); + } + + @Override // com.qq.taf.jce.JceStruct + public void writeTo(JceOutputStream jceOutputStream) { + jceOutputStream.write(this.type, 0); + byte[] bArr = this.head; + if (bArr != null) { + jceOutputStream.write(bArr, 1); + } + } + + public BusinessHead(int i2, byte[] bArr) { + this.type = 0; + this.head = null; + this.type = i2; + this.head = bArr; + } +} diff --git a/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/Coordinates.java b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/Coordinates.java new file mode 100644 index 00000000..dcc8ce28 --- /dev/null +++ b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/Coordinates.java @@ -0,0 +1,46 @@ +package com.tencent.videolite.android.datamodel.cctvjce; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; + +public final class Coordinates extends JceStruct { + public double accuracy; + public float latitude; + public float longitude; + public int type; + + public Coordinates() { + this.type = 0; + this.latitude = 0.0f; + this.longitude = 0.0f; + this.accuracy = 0.0d; + } + + @Override // com.qq.taf.jce.JceStruct + public void readFrom(JceInputStream jceInputStream) { + this.type = jceInputStream.read(this.type, 0, false); + this.latitude = jceInputStream.read(this.latitude, 1, false); + this.longitude = jceInputStream.read(this.longitude, 2, false); + this.accuracy = jceInputStream.read(this.accuracy, 3, false); + } + + @Override // com.qq.taf.jce.JceStruct + public void writeTo(JceOutputStream jceOutputStream) { + jceOutputStream.write(this.type, 0); + jceOutputStream.write(this.latitude, 1); + jceOutputStream.write(this.longitude, 2); + jceOutputStream.write(this.accuracy, 3); + } + + public Coordinates(int i2, float f2, float f3, double d2) { + this.type = 0; + this.latitude = 0.0f; + this.longitude = 0.0f; + this.accuracy = 0.0d; + this.type = i2; + this.latitude = f2; + this.longitude = f3; + this.accuracy = d2; + } +} diff --git a/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/ExtentAccount.java b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/ExtentAccount.java new file mode 100644 index 00000000..138b23f8 --- /dev/null +++ b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/ExtentAccount.java @@ -0,0 +1,33 @@ +package com.tencent.videolite.android.datamodel.cctvjce; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; +public final class ExtentAccount extends JceStruct { + public String accountId; + public int type; + + public ExtentAccount() { + this.type = 0; + this.accountId = ""; + } + + @Override // com.qq.taf.jce.JceStruct + public void readFrom(JceInputStream jceInputStream) { + this.type = jceInputStream.read(this.type, 0, true); + this.accountId = jceInputStream.readString(1, true); + } + + @Override // com.qq.taf.jce.JceStruct + public void writeTo(JceOutputStream jceOutputStream) { + jceOutputStream.write(this.type, 0); + jceOutputStream.write(this.accountId, 1); + } + + public ExtentAccount(int i2, String str) { + this.type = 0; + this.accountId = ""; + this.type = i2; + this.accountId = str; + } +} diff --git a/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/ExtentData.java b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/ExtentData.java new file mode 100644 index 00000000..16eae5b9 --- /dev/null +++ b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/ExtentData.java @@ -0,0 +1,52 @@ +package com.tencent.videolite.android.datamodel.cctvjce; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; +public final class ExtentData extends JceStruct { + static BucketConfig cache_bucketInfo = new BucketConfig(); + public BucketConfig bucketInfo; + public int checkFlag; + public String extra; + public byte flagByte; + + public ExtentData() { + this.checkFlag = 0; + this.flagByte = (byte) 0; + this.extra = ""; + this.bucketInfo = null; + } + + @Override // com.qq.taf.jce.JceStruct + public void readFrom(JceInputStream jceInputStream) { + this.checkFlag = jceInputStream.read(this.checkFlag, 0, false); + this.flagByte = jceInputStream.read(this.flagByte, 1, false); + this.extra = jceInputStream.readString(2, false); + this.bucketInfo = (BucketConfig) jceInputStream.read((JceStruct) cache_bucketInfo, 3, false); + } + + @Override // com.qq.taf.jce.JceStruct + public void writeTo(JceOutputStream jceOutputStream) { + jceOutputStream.write(this.checkFlag, 0); + jceOutputStream.write(this.flagByte, 1); + String str = this.extra; + if (str != null) { + jceOutputStream.write(str, 2); + } + BucketConfig bucketConfig = this.bucketInfo; + if (bucketConfig != null) { + jceOutputStream.write((JceStruct) bucketConfig, 3); + } + } + + public ExtentData(int i2, byte b2, String str, BucketConfig bucketConfig) { + this.checkFlag = 0; + this.flagByte = (byte) 0; + this.extra = ""; + this.bucketInfo = null; + this.checkFlag = i2; + this.flagByte = b2; + this.extra = str; + this.bucketInfo = bucketConfig; + } +} diff --git a/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/LogReport.java b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/LogReport.java new file mode 100644 index 00000000..120a2b1f --- /dev/null +++ b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/LogReport.java @@ -0,0 +1,115 @@ +package com.tencent.videolite.android.datamodel.cctvjce; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; + +public final class LogReport extends JceStruct { + public String callType; + public String channelId; + public String extent; + public String from; + public int isAuto; + public String mid; + public String pageId; + public int pageStep; + public String pid; + public String refPageId; + public String vid; + + public LogReport() { + this.pageId = ""; + this.refPageId = ""; + this.pageStep = 0; + this.callType = ""; + this.isAuto = 0; + this.vid = ""; + this.pid = ""; + this.from = ""; + this.channelId = ""; + this.mid = ""; + this.extent = ""; + } + + @Override // com.qq.taf.jce.JceStruct + public void readFrom(JceInputStream jceInputStream) { + this.pageId = jceInputStream.readString(0, false); + this.refPageId = jceInputStream.readString(1, false); + this.pageStep = jceInputStream.read(this.pageStep, 2, false); + this.callType = jceInputStream.readString(3, false); + this.isAuto = jceInputStream.read(this.isAuto, 4, false); + this.vid = jceInputStream.readString(5, false); + this.pid = jceInputStream.readString(6, false); + this.from = jceInputStream.readString(7, false); + this.channelId = jceInputStream.readString(8, false); + this.mid = jceInputStream.readString(9, false); + this.extent = jceInputStream.readString(10, false); + } + + @Override // com.qq.taf.jce.JceStruct + public void writeTo(JceOutputStream jceOutputStream) { + String str = this.pageId; + if (str != null) { + jceOutputStream.write(str, 0); + } + String str2 = this.refPageId; + if (str2 != null) { + jceOutputStream.write(str2, 1); + } + jceOutputStream.write(this.pageStep, 2); + String str3 = this.callType; + if (str3 != null) { + jceOutputStream.write(str3, 3); + } + jceOutputStream.write(this.isAuto, 4); + String str4 = this.vid; + if (str4 != null) { + jceOutputStream.write(str4, 5); + } + String str5 = this.pid; + if (str5 != null) { + jceOutputStream.write(str5, 6); + } + String str6 = this.from; + if (str6 != null) { + jceOutputStream.write(str6, 7); + } + String str7 = this.channelId; + if (str7 != null) { + jceOutputStream.write(str7, 8); + } + String str8 = this.mid; + if (str8 != null) { + jceOutputStream.write(str8, 9); + } + String str9 = this.extent; + if (str9 != null) { + jceOutputStream.write(str9, 10); + } + } + + public LogReport(String str, String str2, int i2, String str3, int i3, String str4, String str5, String str6, String str7, String str8, String str9) { + this.pageId = ""; + this.refPageId = ""; + this.pageStep = 0; + this.callType = ""; + this.isAuto = 0; + this.vid = ""; + this.pid = ""; + this.from = ""; + this.channelId = ""; + this.mid = ""; + this.extent = ""; + this.pageId = str; + this.refPageId = str2; + this.pageStep = i2; + this.callType = str3; + this.isAuto = i3; + this.vid = str4; + this.pid = str5; + this.from = str6; + this.channelId = str7; + this.mid = str8; + this.extent = str9; + } +} diff --git a/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/LoginToken.java b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/LoginToken.java new file mode 100644 index 00000000..b017954d --- /dev/null +++ b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/LoginToken.java @@ -0,0 +1,61 @@ +package com.tencent.videolite.android.datamodel.cctvjce; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; + +public final class LoginToken extends JceStruct { + static byte[] cache_TokenValue; + public boolean IsMainLogin; + public String TokenAppID; + public byte TokenKeyType; + public String TokenUin; + public byte[] TokenValue; + + static { + cache_TokenValue = new byte[0]; + byte[] bArr = {0}; + } + + public LoginToken() { + this.TokenAppID = ""; + this.TokenKeyType = (byte) 0; + this.TokenValue = null; + this.TokenUin = ""; + this.IsMainLogin = true; + } + + @Override // com.qq.taf.jce.JceStruct + public void readFrom(JceInputStream jceInputStream) { + this.TokenAppID = jceInputStream.readString(0, true); + this.TokenKeyType = jceInputStream.read(this.TokenKeyType, 1, true); + this.TokenValue = jceInputStream.read(cache_TokenValue, 2, true); + this.TokenUin = jceInputStream.readString(3, false); + this.IsMainLogin = jceInputStream.read(this.IsMainLogin, 4, false); + } + + @Override // com.qq.taf.jce.JceStruct + public void writeTo(JceOutputStream jceOutputStream) { + jceOutputStream.write(this.TokenAppID, 0); + jceOutputStream.write(this.TokenKeyType, 1); + jceOutputStream.write(this.TokenValue, 2); + String str = this.TokenUin; + if (str != null) { + jceOutputStream.write(str, 3); + } + jceOutputStream.write(this.IsMainLogin, 4); + } + + public LoginToken(String str, byte b2, byte[] bArr, String str2, boolean z) { + this.TokenAppID = ""; + this.TokenKeyType = (byte) 0; + this.TokenValue = null; + this.TokenUin = ""; + this.IsMainLogin = true; + this.TokenAppID = str; + this.TokenKeyType = b2; + this.TokenValue = bArr; + this.TokenUin = str2; + this.IsMainLogin = z; + } +} diff --git a/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/QQVideoJCECmd.java b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/QQVideoJCECmd.java new file mode 100644 index 00000000..307f155c --- /dev/null +++ b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/QQVideoJCECmd.java @@ -0,0 +1,443 @@ +package com.tencent.videolite.android.datamodel.cctvjce; + +import java.io.Serializable; + +public final class QQVideoJCECmd implements Serializable { + static final /* synthetic */ boolean $assertionsDisabled = false; + public static final int _BindCellphone = 24736; + public static final int _CheckBindReadForward = 24869; + public static final int _CheckBindReadReverse = 24870; + public static final int _CheckCode = 24681; + public static final int _GetCode = 24680; + public static final int _NewGetTicket = 60788; + public static final int _NewLogin = 59986; + public static final int _NewLogout = 59988; + public static final int _NewRefreshToken = 59987; + private String __T; + private int __value; + private static QQVideoJCECmd[] __values = new QQVideoJCECmd[195]; + public static final int _StGuidGet = 24865; + public static final QQVideoJCECmd StGuidGet = new QQVideoJCECmd(0, _StGuidGet, "StGuidGet"); + public static final int _ChannelList = 24593; + public static final QQVideoJCECmd ChannelList = new QQVideoJCECmd(1, _ChannelList, "ChannelList"); + public static final int _FeedList = 24608; + public static final QQVideoJCECmd FeedList = new QQVideoJCECmd(2, _FeedList, "FeedList"); + public static final int _FeedListiPad = 25316; + public static final QQVideoJCECmd FeedListiPad = new QQVideoJCECmd(3, _FeedListiPad, "FeedListiPad"); + public static final int _SearchSmart = 24733; + public static final QQVideoJCECmd SearchSmart = new QQVideoJCECmd(4, _SearchSmart, "SearchSmart"); + public static final int _VideoDetails = 24805; + public static final QQVideoJCECmd VideoDetails = new QQVideoJCECmd(5, _VideoDetails, "VideoDetails"); + public static final int _DetailVideoList = 24806; + public static final QQVideoJCECmd DetailVideoList = new QQVideoJCECmd(6, _DetailVideoList, "DetailVideoList"); + public static final int _DetailCoverList = 24807; + public static final QQVideoJCECmd DetailCoverList = new QQVideoJCECmd(7, _DetailCoverList, "DetailCoverList"); + public static final int _SecondaryFeedList = 65231; + public static final QQVideoJCECmd SecondaryFeedList = new QQVideoJCECmd(8, _SecondaryFeedList, "SecondaryFeedList"); + public static final int _GetCloudBucketConfig = 24842; + public static final QQVideoJCECmd GetCloudBucketConfig = new QQVideoJCECmd(9, _GetCloudBucketConfig, "GetCloudBucketConfig"); + public static final QQVideoJCECmd NewRefreshToken = new QQVideoJCECmd(10, 59987, "NewRefreshToken"); + public static final QQVideoJCECmd NewLogin = new QQVideoJCECmd(11, 59986, "NewLogin"); + public static final QQVideoJCECmd NewLogout = new QQVideoJCECmd(12, 59988, "NewLogout"); + public static final QQVideoJCECmd NewGetTicket = new QQVideoJCECmd(13, 60788, "NewGetTicket"); + public static final int _AppUpdate = 24841; + public static final QQVideoJCECmd AppUpdate = new QQVideoJCECmd(14, _AppUpdate, "AppUpdate"); + public static final int _WatchRecordListV1 = 24811; + public static final QQVideoJCECmd WatchRecordListV1 = new QQVideoJCECmd(15, _WatchRecordListV1, "WatchRecordListV1"); + public static final int _WatchRecordUploadV1 = 24810; + public static final QQVideoJCECmd WatchRecordUploadV1 = new QQVideoJCECmd(16, _WatchRecordUploadV1, "WatchRecordUploadV1"); + public static final int _WatchRecordPostersV1 = 24813; + public static final QQVideoJCECmd WatchRecordPostersV1 = new QQVideoJCECmd(17, _WatchRecordPostersV1, "WatchRecordPostersV1"); + public static final int _WatchRecordDelV1 = 24812; + public static final QQVideoJCECmd WatchRecordDelV1 = new QQVideoJCECmd(18, _WatchRecordDelV1, "WatchRecordDelV1"); + public static final int _TicketTrade = 59572; + public static final QQVideoJCECmd TicketTrade = new QQVideoJCECmd(19, _TicketTrade, "TicketTrade"); + public static final int _AiSeeRsaEncrypt = 23875; + public static final QQVideoJCECmd AiSeeRsaEncrypt = new QQVideoJCECmd(20, _AiSeeRsaEncrypt, "AiSeeRsaEncrypt"); + public static final int _PriceCloud = 59569; + public static final QQVideoJCECmd PriceCloud = new QQVideoJCECmd(21, _PriceCloud, "PriceCloud"); + public static final int _SearchRank = 24732; + public static final QQVideoJCECmd SearchRank = new QQVideoJCECmd(22, _SearchRank, "SearchRank"); + public static final int _SearchHotWords = 24797; + public static final QQVideoJCECmd SearchHotWords = new QQVideoJCECmd(23, _SearchHotWords, "SearchHotWords"); + public static final int _VideoList = 24902; + public static final QQVideoJCECmd VideoList = new QQVideoJCECmd(24, _VideoList, "VideoList"); + public static final int _Search = 24731; + public static final QQVideoJCECmd Search = new QQVideoJCECmd(25, _Search, "Search"); + public static final int _CheckDownloadCopyright = 59985; + public static final QQVideoJCECmd CheckDownloadCopyright = new QQVideoJCECmd(26, _CheckDownloadCopyright, "CheckDownloadCopyright"); + public static final int _GetCacheList = 24002; + public static final QQVideoJCECmd GetCacheList = new QQVideoJCECmd(27, _GetCacheList, "GetCacheList"); + public static final int _AccountPlayPermission = 24194; + public static final QQVideoJCECmd AccountPlayPermission = new QQVideoJCECmd(28, _AccountPlayPermission, "AccountPlayPermission"); + public static final int _OneWeekSignUp = 24369; + public static final QQVideoJCECmd OneWeekSignUp = new QQVideoJCECmd(29, _OneWeekSignUp, "OneWeekSignUp"); + public static final int _FollowAction = 24824; + public static final QQVideoJCECmd FollowAction = new QQVideoJCECmd(30, _FollowAction, "FollowAction"); + public static final int _MyFollow = 24827; + public static final QQVideoJCECmd MyFollow = new QQVideoJCECmd(31, _MyFollow, "MyFollow"); + public static final int _MyAllFollow = 24828; + public static final QQVideoJCECmd MyAllFollow = new QQVideoJCECmd(32, _MyAllFollow, "MyAllFollow"); + public static final int _OperatePageNav = 24666; + public static final QQVideoJCECmd OperatePageNav = new QQVideoJCECmd(33, _OperatePageNav, "OperatePageNav"); + public static final int _OperatePageNavIPad = 25318; + public static final QQVideoJCECmd OperatePageNavIPad = new QQVideoJCECmd(34, _OperatePageNavIPad, "OperatePageNavIPad"); + public static final int _OperationPageList = 24648; + public static final QQVideoJCECmd OperationPageList = new QQVideoJCECmd(35, _OperationPageList, "OperationPageList"); + public static final int _OperationPageListIPad = 25338; + public static final QQVideoJCECmd OperationPageListIPad = new QQVideoJCECmd(36, _OperationPageListIPad, "OperationPageListIPad"); + public static final int _LiveDetail = 24873; + public static final QQVideoJCECmd LiveDetail = new QQVideoJCECmd(37, _LiveDetail, "LiveDetail"); + public static final int _LiveDetailIPad = 25356; + public static final QQVideoJCECmd LiveDetailIPad = new QQVideoJCECmd(38, _LiveDetailIPad, "LiveDetailIPad"); + public static final int _LivePoll = 24874; + public static final QQVideoJCECmd LivePoll = new QQVideoJCECmd(39, _LivePoll, "LivePoll"); + public static final int _LivePollIPad = 25355; + public static final QQVideoJCECmd LivePollIPad = new QQVideoJCECmd(40, _LivePollIPad, "LivePollIPad"); + public static final int _LiveMultiCameraInfo = 24875; + public static final QQVideoJCECmd LiveMultiCameraInfo = new QQVideoJCECmd(41, _LiveMultiCameraInfo, "LiveMultiCameraInfo"); + public static final int _LiveMultiCameraInfoIPad = 25354; + public static final QQVideoJCECmd LiveMultiCameraInfoIPad = new QQVideoJCECmd(42, _LiveMultiCameraInfoIPad, "LiveMultiCameraInfoIPad"); + public static final int _FollowActorPage = 24761; + public static final QQVideoJCECmd FollowActorPage = new QQVideoJCECmd(43, _FollowActorPage, "FollowActorPage"); + public static final int _BookAction = 24788; + public static final QQVideoJCECmd BookAction = new QQVideoJCECmd(44, _BookAction, "BookAction"); + public static final int _ReportPlayStart = 24702; + public static final QQVideoJCECmd ReportPlayStart = new QQVideoJCECmd(45, _ReportPlayStart, "ReportPlayStart"); + public static final int _ReportPlayStop = 24703; + public static final QQVideoJCECmd ReportPlayStop = new QQVideoJCECmd(46, _ReportPlayStop, "ReportPlayStop"); + public static final int _AccountUserInfo = 24802; + public static final QQVideoJCECmd AccountUserInfo = new QQVideoJCECmd(47, _AccountUserInfo, "AccountUserInfo"); + public static final int _SearchVideoList = 24764; + public static final QQVideoJCECmd SearchVideoList = new QQVideoJCECmd(48, _SearchVideoList, "SearchVideoList"); + public static final int _LikeAction = 24803; + public static final QQVideoJCECmd LikeAction = new QQVideoJCECmd(49, _LikeAction, "LikeAction"); + public static final QQVideoJCECmd BindCellphone = new QQVideoJCECmd(50, 24736, "BindCellphone"); + public static final QQVideoJCECmd CheckBindReadForward = new QQVideoJCECmd(51, 24869, "CheckBindReadForward"); + public static final QQVideoJCECmd CheckBindReadReverse = new QQVideoJCECmd(52, 24870, "CheckBindReadReverse"); + public static final QQVideoJCECmd CheckCode = new QQVideoJCECmd(53, 24681, "CheckCode"); + public static final QQVideoJCECmd GetCode = new QQVideoJCECmd(54, 24680, "GetCode"); + public static final int _LikeGlobalSwitch = 24830; + public static final QQVideoJCECmd LikeGlobalSwitch = new QQVideoJCECmd(55, _LikeGlobalSwitch, "LikeGlobalSwitch"); + public static final int _CommentGlobalSwitch = 24852; + public static final QQVideoJCECmd CommentGlobalSwitch = new QQVideoJCECmd(56, _CommentGlobalSwitch, "CommentGlobalSwitch"); + public static final int _ShareGlobalSwitch = 24851; + public static final QQVideoJCECmd ShareGlobalSwitch = new QQVideoJCECmd(57, _ShareGlobalSwitch, "ShareGlobalSwitch"); + public static final int _PublishLiveComment = 24814; + public static final QQVideoJCECmd PublishLiveComment = new QQVideoJCECmd(58, _PublishLiveComment, "PublishLiveComment"); + public static final int _PublishVideoComment = 24815; + public static final QQVideoJCECmd PublishVideoComment = new QQVideoJCECmd(59, _PublishVideoComment, "PublishVideoComment"); + public static final int _LiveCommentList = 24816; + public static final QQVideoJCECmd LiveCommentList = new QQVideoJCECmd(60, _LiveCommentList, "LiveCommentList"); + public static final int _VideoCommentList = 24817; + public static final QQVideoJCECmd VideoCommentList = new QQVideoJCECmd(61, _VideoCommentList, "VideoCommentList"); + public static final int _MyCommentList = 24818; + public static final QQVideoJCECmd MyCommentList = new QQVideoJCECmd(62, _MyCommentList, "MyCommentList"); + public static final int _CommentDelete = 24821; + public static final QQVideoJCECmd CommentDelete = new QQVideoJCECmd(63, _CommentDelete, "CommentDelete"); + public static final int _CommentCount = 24819; + public static final QQVideoJCECmd CommentCount = new QQVideoJCECmd(64, _CommentCount, "CommentCount"); + public static final int _FavoriteAction = 24796; + public static final QQVideoJCECmd FavoriteAction = new QQVideoJCECmd(65, _FavoriteAction, "FavoriteAction"); + public static final int _FavoriteIDList = 24845; + public static final QQVideoJCECmd FavoriteIDList = new QQVideoJCECmd(66, _FavoriteIDList, "FavoriteIDList"); + public static final int _ShareAction = 24853; + public static final QQVideoJCECmd ShareAction = new QQVideoJCECmd(67, _ShareAction, "ShareAction"); + public static final int _DynamicInsertFeed = 24883; + public static final QQVideoJCECmd DynamicInsertFeed = new QQVideoJCECmd(68, _DynamicInsertFeed, "DynamicInsertFeed"); + public static final int _GetAppStartUpPictureConfig = 24896; + public static final QQVideoJCECmd GetAppStartUpPictureConfig = new QQVideoJCECmd(69, _GetAppStartUpPictureConfig, "GetAppStartUpPictureConfig"); + public static final int _TVTimeShiftProgram = 24897; + public static final QQVideoJCECmd TVTimeShiftProgram = new QQVideoJCECmd(70, _TVTimeShiftProgram, "TVTimeShiftProgram"); + public static final int _DevReport = 24901; + public static final QQVideoJCECmd DevReport = new QQVideoJCECmd(71, _DevReport, "DevReport"); + public static final int _CPRec = 24838; + public static final QQVideoJCECmd CPRec = new QQVideoJCECmd(72, _CPRec, "CPRec"); + public static final int _WebGetCode = 24960; + public static final QQVideoJCECmd WebGetCode = new QQVideoJCECmd(73, _WebGetCode, "WebGetCode"); + public static final int _HoverBallConfig = 24961; + public static final QQVideoJCECmd HoverBallConfig = new QQVideoJCECmd(74, _HoverBallConfig, "HoverBallConfig"); + public static final int _SignInConfig = 24963; + public static final QQVideoJCECmd SignInConfig = new QQVideoJCECmd(75, _SignInConfig, "SignInConfig"); + public static final int _GetTmpCredentials = 24854; + public static final QQVideoJCECmd GetTmpCredentials = new QQVideoJCECmd(76, _GetTmpCredentials, "GetTmpCredentials"); + public static final int _VideoReplyCommentList = 24965; + public static final QQVideoJCECmd VideoReplyCommentList = new QQVideoJCECmd(77, _VideoReplyCommentList, "VideoReplyCommentList"); + public static final int _JumpVideoCommentList = 24966; + public static final QQVideoJCECmd JumpVideoCommentList = new QQVideoJCECmd(78, _JumpVideoCommentList, "JumpVideoCommentList"); + public static final int _VideoCommentLike = 24967; + public static final QQVideoJCECmd VideoCommentLike = new QQVideoJCECmd(79, _VideoCommentLike, "VideoCommentLike"); + public static final int _PublishVideoReplyComment = 24968; + public static final QQVideoJCECmd PublishVideoReplyComment = new QQVideoJCECmd(80, _PublishVideoReplyComment, "PublishVideoReplyComment"); + public static final int _MyReplyCommentList = 24969; + public static final QQVideoJCECmd MyReplyCommentList = new QQVideoJCECmd(81, _MyReplyCommentList, "MyReplyCommentList"); + public static final int _ReplyCommentCount = 24970; + public static final QQVideoJCECmd ReplyCommentCount = new QQVideoJCECmd(82, _ReplyCommentCount, "ReplyCommentCount"); + public static final int _ModifyUser = 24964; + public static final QQVideoJCECmd ModifyUser = new QQVideoJCECmd(83, _ModifyUser, "ModifyUser"); + public static final int _DetailPagePlayBasic = 24976; + public static final QQVideoJCECmd DetailPagePlayBasic = new QQVideoJCECmd(84, _DetailPagePlayBasic, "DetailPagePlayBasic"); + public static final int _GetVodUploadSignature = 24979; + public static final QQVideoJCECmd GetVodUploadSignature = new QQVideoJCECmd(85, _GetVodUploadSignature, "GetVodUploadSignature"); + public static final int _VodUploadComplete = 25033; + public static final QQVideoJCECmd VodUploadComplete = new QQVideoJCECmd(86, _VodUploadComplete, "VodUploadComplete"); + public static final int _GetGShootTopics = 24980; + public static final QQVideoJCECmd GetGShootTopics = new QQVideoJCECmd(87, _GetGShootTopics, "GetGShootTopics"); + public static final int _GetActivityEntranceConfigList = 24981; + public static final QQVideoJCECmd GetActivityEntranceConfigList = new QQVideoJCECmd(88, _GetActivityEntranceConfigList, "GetActivityEntranceConfigList"); + public static final int _GetHomeTabWelfareEntryAction = 24984; + public static final QQVideoJCECmd GetHomeTabWelfareEntryAction = new QQVideoJCECmd(89, _GetHomeTabWelfareEntryAction, "GetHomeTabWelfareEntryAction"); + public static final int _AppStartupConfig = 24990; + public static final QQVideoJCECmd AppStartupConfig = new QQVideoJCECmd(90, _AppStartupConfig, "AppStartupConfig"); + public static final int _TVShowList = 24997; + public static final QQVideoJCECmd TVShowList = new QQVideoJCECmd(91, _TVShowList, "TVShowList"); + public static final int _TabHoverBallConfig = 25006; + public static final QQVideoJCECmd TabHoverBallConfig = new QQVideoJCECmd(92, _TabHoverBallConfig, "TabHoverBallConfig"); + public static final int _CPClassificationList = 25007; + public static final QQVideoJCECmd CPClassificationList = new QQVideoJCECmd(93, _CPClassificationList, "CPClassificationList"); + public static final int _FollowActorTabPage = 25008; + public static final QQVideoJCECmd FollowActorTabPage = new QQVideoJCECmd(94, _FollowActorTabPage, "FollowActorTabPage"); + public static final int _CPVideoList = 25018; + public static final QQVideoJCECmd CPVideoList = new QQVideoJCECmd(95, _CPVideoList, "CPVideoList"); + public static final int _RedDotConfig = 25019; + public static final QQVideoJCECmd RedDotConfig = new QQVideoJCECmd(96, _RedDotConfig, "RedDotConfig"); + public static final int _LiveExt = 25025; + public static final QQVideoJCECmd LiveExt = new QQVideoJCECmd(97, _LiveExt, "LiveExt"); + public static final int _LiveExtIPad = 25353; + public static final QQVideoJCECmd LiveExtIPad = new QQVideoJCECmd(98, _LiveExtIPad, "LiveExtIPad"); + public static final int _TopicList = 25030; + public static final QQVideoJCECmd TopicList = new QQVideoJCECmd(99, _TopicList, "TopicList"); + public static final int _UserVideoList = 25031; + public static final QQVideoJCECmd UserVideoList = new QQVideoJCECmd(100, _UserVideoList, "UserVideoList"); + public static final int _UcenterCfg = 25049; + public static final QQVideoJCECmd UcenterCfg = new QQVideoJCECmd(101, _UcenterCfg, "UcenterCfg"); + public static final int _TaskComplete = 25042; + public static final QQVideoJCECmd TaskComplete = new QQVideoJCECmd(102, _TaskComplete, "TaskComplete"); + public static final int _TaskList = 25043; + public static final QQVideoJCECmd TaskList = new QQVideoJCECmd(103, _TaskList, "TaskList"); + public static final int _H5SkipConfig = 25047; + public static final QQVideoJCECmd H5SkipConfig = new QQVideoJCECmd(104, _H5SkipConfig, "H5SkipConfig"); + public static final int _TaskListWithAuth = 25048; + public static final QQVideoJCECmd TaskListWithAuth = new QQVideoJCECmd(105, _TaskListWithAuth, "TaskListWithAuth"); + public static final int _GetCpInfo = 25060; + public static final QQVideoJCECmd GetCpInfo = new QQVideoJCECmd(106, _GetCpInfo, "GetCpInfo"); + public static final int _PortraitVideoList = 25065; + public static final QQVideoJCECmd PortraitVideoList = new QQVideoJCECmd(107, _PortraitVideoList, "PortraitVideoList"); + public static final int _PortraitVideoListIPad = 25359; + public static final QQVideoJCECmd PortraitVideoListIPad = new QQVideoJCECmd(108, _PortraitVideoListIPad, "PortraitVideoListIPad"); + public static final int _HomeRedDotConfig = 25063; + public static final QQVideoJCECmd HomeRedDotConfig = new QQVideoJCECmd(109, _HomeRedDotConfig, "HomeRedDotConfig"); + public static final int _EraseHomeRedDot = 25068; + public static final QQVideoJCECmd EraseHomeRedDot = new QQVideoJCECmd(110, _EraseHomeRedDot, "EraseHomeRedDot"); + public static final int _LiveHistoryCommentList = 25062; + public static final QQVideoJCECmd LiveHistoryCommentList = new QQVideoJCECmd(111, _LiveHistoryCommentList, "LiveHistoryCommentList"); + public static final int _MsgList = 25072; + public static final QQVideoJCECmd MsgList = new QQVideoJCECmd(112, _MsgList, "MsgList"); + public static final int _MsgPoll = 25073; + public static final QQVideoJCECmd MsgPoll = new QQVideoJCECmd(113, _MsgPoll, "MsgPoll"); + public static final int _LikeList = 25093; + public static final QQVideoJCECmd LikeList = new QQVideoJCECmd(114, _LikeList, "LikeList"); + public static final int _InteractiveMsgList = 25098; + public static final QQVideoJCECmd InteractiveMsgList = new QQVideoJCECmd(115, _InteractiveMsgList, "InteractiveMsgList"); + public static final int _CommunityFeedList = 25107; + public static final QQVideoJCECmd CommunityFeedList = new QQVideoJCECmd(116, _CommunityFeedList, "CommunityFeedList"); + public static final int _CircleAction = 25110; + public static final QQVideoJCECmd CircleAction = new QQVideoJCECmd(117, _CircleAction, "CircleAction"); + public static final int _CircleHomePage = 25111; + public static final QQVideoJCECmd CircleHomePage = new QQVideoJCECmd(118, _CircleHomePage, "CircleHomePage"); + public static final int _DeletePost = 25115; + public static final QQVideoJCECmd DeletePost = new QQVideoJCECmd(119, _DeletePost, "DeletePost"); + public static final int _MyCircleList = 25113; + public static final QQVideoJCECmd MyCircleList = new QQVideoJCECmd(120, _MyCircleList, "MyCircleList"); + public static final int _AllMyCircleList = 25116; + public static final QQVideoJCECmd AllMyCircleList = new QQVideoJCECmd(121, _AllMyCircleList, "AllMyCircleList"); + public static final int _CommunityPersonHomePage = 25106; + public static final QQVideoJCECmd CommunityPersonHomePage = new QQVideoJCECmd(122, _CommunityPersonHomePage, "CommunityPersonHomePage"); + public static final int _CreatePost = 25112; + public static final QQVideoJCECmd CreatePost = new QQVideoJCECmd(123, _CreatePost, "CreatePost"); + public static final int _ForwardPost = 25119; + public static final QQVideoJCECmd ForwardPost = new QQVideoJCECmd(124, _ForwardPost, "ForwardPost"); + public static final int _ReportPost = 25121; + public static final QQVideoJCECmd ReportPost = new QQVideoJCECmd(125, _ReportPost, "ReportPost"); + public static final int _AllCircleList = 25123; + public static final QQVideoJCECmd AllCircleList = new QQVideoJCECmd(126, _AllCircleList, "AllCircleList"); + public static final int _ModifyUserInfo = 25127; + public static final QQVideoJCECmd ModifyUserInfo = new QQVideoJCECmd(127, _ModifyUserInfo, "ModifyUserInfo"); + public static final int _CommunityFollowingList = 25102; + public static final QQVideoJCECmd CommunityFollowingList = new QQVideoJCECmd(128, _CommunityFollowingList, "CommunityFollowingList"); + public static final int _GetPostInfo = 25122; + public static final QQVideoJCECmd GetPostInfo = new QQVideoJCECmd(129, _GetPostInfo, "GetPostInfo"); + public static final int _CommunityMuteInfo = 25130; + public static final QQVideoJCECmd CommunityMuteInfo = new QQVideoJCECmd(130, _CommunityMuteInfo, "CommunityMuteInfo"); + public static final int _PostDetail = 25143; + public static final QQVideoJCECmd PostDetail = new QQVideoJCECmd(131, _PostDetail, "PostDetail"); + public static final int _PostDetailIPad = 25360; + public static final QQVideoJCECmd PostDetailIPad = new QQVideoJCECmd(132, _PostDetailIPad, "PostDetailIPad"); + public static final int _MomentCommentList = 25153; + public static final QQVideoJCECmd MomentCommentList = new QQVideoJCECmd(133, _MomentCommentList, "MomentCommentList"); + public static final int _AppBottomTabBubble = 25159; + public static final QQVideoJCECmd AppBottomTabBubble = new QQVideoJCECmd(134, _AppBottomTabBubble, "AppBottomTabBubble"); + public static final int _PayOrder = 25164; + public static final QQVideoJCECmd PayOrder = new QQVideoJCECmd(135, _PayOrder, "PayOrder"); + public static final int _GuidVipRequest = 25200; + public static final QQVideoJCECmd GuidVipRequest = new QQVideoJCECmd(136, _GuidVipRequest, "GuidVipRequest"); + public static final int _CircleUserList = 25239; + public static final QQVideoJCECmd CircleUserList = new QQVideoJCECmd(137, _CircleUserList, "CircleUserList"); + public static final int _CacheVideoList = 25240; + public static final QQVideoJCECmd CacheVideoList = new QQVideoJCECmd(138, _CacheVideoList, "CacheVideoList"); + public static final int _CachedVideoInfo = 25241; + public static final QQVideoJCECmd CachedVideoInfo = new QQVideoJCECmd(139, _CachedVideoInfo, "CachedVideoInfo"); + public static final int _PersonalConf = 25265; + public static final QQVideoJCECmd PersonalConf = new QQVideoJCECmd(140, _PersonalConf, "PersonalConf"); + public static final int _PersonalConfFix = 25263; + public static final QQVideoJCECmd PersonalConfFix = new QQVideoJCECmd(141, _PersonalConfFix, "PersonalConfFix"); + public static final int _PhoneBind = 25267; + public static final QQVideoJCECmd PhoneBind = new QQVideoJCECmd(142, _PhoneBind, "PhoneBind"); + public static final int _ScreenLiveList = 25282; + public static final QQVideoJCECmd ScreenLiveList = new QQVideoJCECmd(143, _ScreenLiveList, "ScreenLiveList"); + public static final int _ScreenLiveListIPad = 25352; + public static final QQVideoJCECmd ScreenLiveListIPad = new QQVideoJCECmd(144, _ScreenLiveListIPad, "ScreenLiveListIPad"); + public static final int _IsScreenHasLiveList = 25285; + public static final QQVideoJCECmd IsScreenHasLiveList = new QQVideoJCECmd(145, _IsScreenHasLiveList, "IsScreenHasLiveList"); + public static final int _IsScreenHasLiveListIPad = 25351; + public static final QQVideoJCECmd IsScreenHasLiveListIPad = new QQVideoJCECmd(146, _IsScreenHasLiveListIPad, "IsScreenHasLiveListIPad"); + public static final int _MatchFilter = 25311; + public static final QQVideoJCECmd MatchFilter = new QQVideoJCECmd(147, _MatchFilter, "MatchFilter"); + public static final int _PidTimeShift = 25312; + public static final QQVideoJCECmd PidTimeShift = new QQVideoJCECmd(148, _PidTimeShift, "PidTimeShift"); + public static final int _PidEditTask = 25313; + public static final QQVideoJCECmd PidEditTask = new QQVideoJCECmd(149, _PidEditTask, "PidEditTask"); + public static final int _PidQueryTask = 25314; + public static final QQVideoJCECmd PidQueryTask = new QQVideoJCECmd(150, _PidQueryTask, "PidQueryTask"); + public static final int _CheckUserVipBind = 25272; + public static final QQVideoJCECmd CheckUserVipBind = new QQVideoJCECmd(151, _CheckUserVipBind, "CheckUserVipBind"); + public static final int _UninterestedReport = 25324; + public static final QQVideoJCECmd UninterestedReport = new QQVideoJCECmd(152, _UninterestedReport, "UninterestedReport"); + public static final int _UninterestedReportDup = 25317; + public static final QQVideoJCECmd UninterestedReportDup = new QQVideoJCECmd(153, _UninterestedReportDup, "UninterestedReportDup"); + public static final int _GameList = 25309; + public static final QQVideoJCECmd GameList = new QQVideoJCECmd(154, _GameList, "GameList"); + public static final int _GameNum = 25310; + public static final QQVideoJCECmd GameNum = new QQVideoJCECmd(155, _GameNum, "GameNum"); + public static final int _GameCenterTab = 25315; + public static final QQVideoJCECmd GameCenterTab = new QQVideoJCECmd(156, _GameCenterTab, "GameCenterTab"); + public static final int _GameMatchTab = 25369; + public static final QQVideoJCECmd GameMatchTab = new QQVideoJCECmd(157, _GameMatchTab, "GameMatchTab"); + public static final int _SubscribeGameList = 25319; + public static final QQVideoJCECmd SubscribeGameList = new QQVideoJCECmd(158, _SubscribeGameList, "SubscribeGameList"); + public static final int _GameIDsToSubscribe = 25323; + public static final QQVideoJCECmd GameIDsToSubscribe = new QQVideoJCECmd(159, _GameIDsToSubscribe, "GameIDsToSubscribe"); + public static final int _BatchSubscribeAPP = 25325; + public static final QQVideoJCECmd BatchSubscribeAPP = new QQVideoJCECmd(160, _BatchSubscribeAPP, "BatchSubscribeAPP"); + public static final int _ChannelsWithPrograms = 25328; + public static final QQVideoJCECmd ChannelsWithPrograms = new QQVideoJCECmd(161, _ChannelsWithPrograms, "ChannelsWithPrograms"); + public static final int _SubscribedPids = 24809; + public static final QQVideoJCECmd SubscribedPids = new QQVideoJCECmd(162, _SubscribedPids, "SubscribedPids"); + public static final int _CheckVideoEpisodes = 25331; + public static final QQVideoJCECmd CheckVideoEpisodes = new QQVideoJCECmd(163, _CheckVideoEpisodes, "CheckVideoEpisodes"); + public static final int _ProgramsList = 25333; + public static final QQVideoJCECmd ProgramsList = new QQVideoJCECmd(164, _ProgramsList, "ProgramsList"); + public static final int _GetCircleInfo = 25337; + public static final QQVideoJCECmd GetCircleInfo = new QQVideoJCECmd(165, _GetCircleInfo, "GetCircleInfo"); + public static final int _FeedsLiveComment = 25332; + public static final QQVideoJCECmd FeedsLiveComment = new QQVideoJCECmd(166, _FeedsLiveComment, "FeedsLiveComment"); + public static final int _IPadCPClassificationList = 25349; + public static final QQVideoJCECmd IPadCPClassificationList = new QQVideoJCECmd(167, _IPadCPClassificationList, "IPadCPClassificationList"); + public static final int _IPadFollowActorTabPage = 25348; + public static final QQVideoJCECmd IPadFollowActorTabPage = new QQVideoJCECmd(168, _IPadFollowActorTabPage, "IPadFollowActorTabPage"); + public static final int _VideoDetailsIPad = 25346; + public static final QQVideoJCECmd VideoDetailsIPad = new QQVideoJCECmd(169, _VideoDetailsIPad, "VideoDetailsIPad"); + public static final int _GetTicketSignature = 25306; + public static final QQVideoJCECmd GetTicketSignature = new QQVideoJCECmd(170, _GetTicketSignature, "GetTicketSignature"); + public static final int _LoginNotice = 25367; + public static final QQVideoJCECmd LoginNotice = new QQVideoJCECmd(171, _LoginNotice, "LoginNotice"); + public static final int _VidEditTask = 25374; + public static final QQVideoJCECmd VidEditTask = new QQVideoJCECmd(172, _VidEditTask, "VidEditTask"); + public static final int _TVCircleCardList = 25382; + public static final QQVideoJCECmd TVCircleCardList = new QQVideoJCECmd(173, _TVCircleCardList, "TVCircleCardList"); + public static final int _LiveMsgRead = 25404; + public static final QQVideoJCECmd LiveMsgRead = new QQVideoJCECmd(174, _LiveMsgRead, "LiveMsgRead"); + public static final int _FifaVideoList = 25413; + public static final QQVideoJCECmd FifaVideoList = new QQVideoJCECmd(175, _FifaVideoList, "FifaVideoList"); + public static final int _Topic = 25419; + public static final QQVideoJCECmd Topic = new QQVideoJCECmd(176, _Topic, "Topic"); + public static final int _SubscribeConf = 25427; + public static final QQVideoJCECmd SubscribeConf = new QQVideoJCECmd(177, _SubscribeConf, "SubscribeConf"); + public static final int _PortraitLiveList = 25454; + public static final QQVideoJCECmd PortraitLiveList = new QQVideoJCECmd(178, _PortraitLiveList, "PortraitLiveList"); + public static final int _FoldingScreenHoverCard = 25456; + public static final QQVideoJCECmd FoldingScreenHoverCard = new QQVideoJCECmd(179, _FoldingScreenHoverCard, "FoldingScreenHoverCard"); + public static final int _TVTimeShiftProgramAuthority = 25457; + public static final QQVideoJCECmd TVTimeShiftProgramAuthority = new QQVideoJCECmd(180, _TVTimeShiftProgramAuthority, "TVTimeShiftProgramAuthority"); + public static final int _SnapshotCreate = 25471; + public static final QQVideoJCECmd SnapshotCreate = new QQVideoJCECmd(181, _SnapshotCreate, "SnapshotCreate"); + public static final int _SnapshotDel = 25473; + public static final QQVideoJCECmd SnapshotDel = new QQVideoJCECmd(182, _SnapshotDel, "SnapshotDel"); + public static final int _SnapshotActList = 25477; + public static final QQVideoJCECmd SnapshotActList = new QQVideoJCECmd(183, _SnapshotActList, "SnapshotActList"); + public static final int _ModulePage = 25481; + public static final QQVideoJCECmd ModulePage = new QQVideoJCECmd(184, _ModulePage, "ModulePage"); + public static final int _GetSnapshotDetail = 25479; + public static final QQVideoJCECmd GetSnapshotDetail = new QQVideoJCECmd(185, _GetSnapshotDetail, "GetSnapshotDetail"); + public static final int _SnapshotPostInfo = 25482; + public static final QQVideoJCECmd SnapshotPostInfo = new QQVideoJCECmd(186, _SnapshotPostInfo, "SnapshotPostInfo"); + public static final int _ActivityHomePage = 25483; + public static final QQVideoJCECmd ActivityHomePage = new QQVideoJCECmd(187, _ActivityHomePage, "ActivityHomePage"); + public static final int _GetWSAuthCode = 25464; + public static final QQVideoJCECmd GetWSAuthCode = new QQVideoJCECmd(188, _GetWSAuthCode, "GetWSAuthCode"); + public static final int _WsPollingMsg = 25493; + public static final QQVideoJCECmd WsPollingMsg = new QQVideoJCECmd(189, _WsPollingMsg, "WsPollingMsg"); + public static final int _MedalStatistics = 25495; + public static final QQVideoJCECmd MedalStatistics = new QQVideoJCECmd(190, _MedalStatistics, "MedalStatistics"); + public static final int _MedalChangeSubscription = 25496; + public static final QQVideoJCECmd MedalChangeSubscription = new QQVideoJCECmd(191, _MedalChangeSubscription, "MedalChangeSubscription"); + public static final int _MedalDetails = 25498; + public static final QQVideoJCECmd MedalDetails = new QQVideoJCECmd(192, _MedalDetails, "MedalDetails"); + public static final int _GetScheme = 25504; + public static final QQVideoJCECmd GetScheme = new QQVideoJCECmd(193, _GetScheme, "GetScheme"); + public static final int _SubGameList = 25502; + public static final QQVideoJCECmd SubGameList = new QQVideoJCECmd(194, _SubGameList, "SubGameList"); + + private QQVideoJCECmd(int i2, int i3, String str) { + this.__T = new String(); + this.__T = str; + this.__value = i3; + __values[i2] = this; + } + + public static QQVideoJCECmd convert(int i2) { + int i3 = 0; + while (true) { + QQVideoJCECmd[] qQVideoJCECmdArr = __values; + if (i3 >= qQVideoJCECmdArr.length) { + return null; + } + if (qQVideoJCECmdArr[i3].value() == i2) { + return __values[i3]; + } + i3++; + } + } + + public String toString() { + return this.__T; + } + + public int value() { + return this.__value; + } + + public static QQVideoJCECmd convert(String str) { + int i2 = 0; + while (true) { + QQVideoJCECmd[] qQVideoJCECmdArr = __values; + if (i2 >= qQVideoJCECmdArr.length) { + return null; + } + if (qQVideoJCECmdArr[i2].toString().equals(str)) { + return __values[i2]; + } + i2++; + } + } +} diff --git a/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/QUA.java b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/QUA.java new file mode 100644 index 00000000..46552bcb --- /dev/null +++ b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/QUA.java @@ -0,0 +1,255 @@ +package com.tencent.videolite.android.datamodel.cctvjce; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; + +public final class QUA extends JceStruct { + public String appSubVersion; + public int areaMode; + public String channelId; + public String clientKey; + public Coordinates coordinates; + public int countryCode; + public int densityDpi; + public String deviceId; + public String deviceModel; + public int deviceType; + public String extent; + public ExtentData extentData; + public String idfa; + public String imei; + public String imsi; + public int langCode; + public String mac; + public int markerId; + public int mobileISP; + public int networkMode; + public String omgId; + public int platform; + public String platformVersion; + public String qimei; + public int screenHeight; + public int screenWidth; + public String serverid; + public String v4ip; + public String versionCode; + public String versionName; + static ExtentData cache_extentData = new ExtentData(); + static Coordinates cache_coordinates = new Coordinates(); + + public QUA() { + this.versionName = ""; + this.versionCode = ""; + this.screenWidth = 0; + this.screenHeight = 0; + this.platform = 0; + this.platformVersion = ""; + this.markerId = 0; + this.networkMode = 0; + this.densityDpi = 0; + this.channelId = ""; + this.imei = ""; + this.imsi = ""; + this.idfa = ""; + this.omgId = ""; + this.extent = ""; + this.extentData = null; + this.clientKey = ""; + this.mac = ""; + this.serverid = ""; + this.coordinates = null; + this.deviceId = ""; + this.deviceModel = ""; + this.deviceType = 0; + this.mobileISP = 0; + this.areaMode = 0; + this.countryCode = 0; + this.langCode = 0; + this.appSubVersion = ""; + this.v4ip = ""; + this.qimei = ""; + } + + @Override // com.qq.taf.jce.JceStruct + public void readFrom(JceInputStream jceInputStream) { + this.versionName = jceInputStream.readString(0, true); + this.versionCode = jceInputStream.readString(1, true); + this.screenWidth = jceInputStream.read(this.screenWidth, 2, false); + this.screenHeight = jceInputStream.read(this.screenHeight, 3, false); + this.platform = jceInputStream.read(this.platform, 4, false); + this.platformVersion = jceInputStream.readString(5, false); + this.markerId = jceInputStream.read(this.markerId, 6, false); + this.networkMode = jceInputStream.read(this.networkMode, 7, false); + this.densityDpi = jceInputStream.read(this.densityDpi, 8, false); + this.channelId = jceInputStream.readString(9, false); + this.imei = jceInputStream.readString(10, false); + this.imsi = jceInputStream.readString(11, false); + this.idfa = jceInputStream.readString(12, false); + this.omgId = jceInputStream.readString(13, false); + this.extent = jceInputStream.readString(14, false); + this.extentData = (ExtentData) jceInputStream.read((JceStruct) cache_extentData, 15, false); + this.clientKey = jceInputStream.readString(16, false); + this.mac = jceInputStream.readString(17, false); + this.serverid = jceInputStream.readString(18, false); + this.coordinates = (Coordinates) jceInputStream.read((JceStruct) cache_coordinates, 19, false); + this.deviceId = jceInputStream.readString(20, false); + this.deviceModel = jceInputStream.readString(21, false); + this.deviceType = jceInputStream.read(this.deviceType, 22, false); + this.mobileISP = jceInputStream.read(this.mobileISP, 23, false); + this.areaMode = jceInputStream.read(this.areaMode, 24, false); + this.countryCode = jceInputStream.read(this.countryCode, 25, false); + this.langCode = jceInputStream.read(this.langCode, 26, false); + this.appSubVersion = jceInputStream.readString(27, false); + this.v4ip = jceInputStream.readString(28, false); + this.qimei = jceInputStream.readString(29, false); + } + + @Override // com.qq.taf.jce.JceStruct + public void writeTo(JceOutputStream jceOutputStream) { + jceOutputStream.write(this.versionName, 0); + jceOutputStream.write(this.versionCode, 1); + jceOutputStream.write(this.screenWidth, 2); + jceOutputStream.write(this.screenHeight, 3); + jceOutputStream.write(this.platform, 4); + String str = this.platformVersion; + if (str != null) { + jceOutputStream.write(str, 5); + } + jceOutputStream.write(this.markerId, 6); + jceOutputStream.write(this.networkMode, 7); + jceOutputStream.write(this.densityDpi, 8); + String str2 = this.channelId; + if (str2 != null) { + jceOutputStream.write(str2, 9); + } + String str3 = this.imei; + if (str3 != null) { + jceOutputStream.write(str3, 10); + } + String str4 = this.imsi; + if (str4 != null) { + jceOutputStream.write(str4, 11); + } + String str5 = this.idfa; + if (str5 != null) { + jceOutputStream.write(str5, 12); + } + String str6 = this.omgId; + if (str6 != null) { + jceOutputStream.write(str6, 13); + } + String str7 = this.extent; + if (str7 != null) { + jceOutputStream.write(str7, 14); + } + ExtentData extentData = this.extentData; + if (extentData != null) { + jceOutputStream.write((JceStruct) extentData, 15); + } + String str8 = this.clientKey; + if (str8 != null) { + jceOutputStream.write(str8, 16); + } + String str9 = this.mac; + if (str9 != null) { + jceOutputStream.write(str9, 17); + } + String str10 = this.serverid; + if (str10 != null) { + jceOutputStream.write(str10, 18); + } + Coordinates coordinates = this.coordinates; + if (coordinates != null) { + jceOutputStream.write((JceStruct) coordinates, 19); + } + String str11 = this.deviceId; + if (str11 != null) { + jceOutputStream.write(str11, 20); + } + String str12 = this.deviceModel; + if (str12 != null) { + jceOutputStream.write(str12, 21); + } + jceOutputStream.write(this.deviceType, 22); + jceOutputStream.write(this.mobileISP, 23); + jceOutputStream.write(this.areaMode, 24); + jceOutputStream.write(this.countryCode, 25); + jceOutputStream.write(this.langCode, 26); + String str13 = this.appSubVersion; + if (str13 != null) { + jceOutputStream.write(str13, 27); + } + String str14 = this.v4ip; + if (str14 != null) { + jceOutputStream.write(str14, 28); + } + String str15 = this.qimei; + if (str15 != null) { + jceOutputStream.write(str15, 29); + } + } + + public QUA(String str, String str2, int i2, int i3, int i4, String str3, int i5, int i6, int i7, String str4, String str5, String str6, String str7, String str8, String str9, ExtentData extentData, String str10, String str11, String str12, Coordinates coordinates, String str13, String str14, int i8, int i9, int i10, int i11, int i12, String str15, String str16, String str17) { + this.versionName = ""; + this.versionCode = ""; + this.screenWidth = 0; + this.screenHeight = 0; + this.platform = 0; + this.platformVersion = ""; + this.markerId = 0; + this.networkMode = 0; + this.densityDpi = 0; + this.channelId = ""; + this.imei = ""; + this.imsi = ""; + this.idfa = ""; + this.omgId = ""; + this.extent = ""; + this.extentData = null; + this.clientKey = ""; + this.mac = ""; + this.serverid = ""; + this.coordinates = null; + this.deviceId = ""; + this.deviceModel = ""; + this.deviceType = 0; + this.mobileISP = 0; + this.areaMode = 0; + this.countryCode = 0; + this.langCode = 0; + this.appSubVersion = ""; + this.v4ip = ""; + this.qimei = ""; + this.versionName = str; + this.versionCode = str2; + this.screenWidth = i2; + this.screenHeight = i3; + this.platform = i4; + this.platformVersion = str3; + this.markerId = i5; + this.networkMode = i6; + this.densityDpi = i7; + this.channelId = str4; + this.imei = str5; + this.imsi = str6; + this.idfa = str7; + this.omgId = str8; + this.extent = str9; + this.extentData = extentData; + this.clientKey = str10; + this.mac = str11; + this.serverid = str12; + this.coordinates = coordinates; + this.deviceId = str13; + this.deviceModel = str14; + this.deviceType = i8; + this.mobileISP = i9; + this.areaMode = i10; + this.countryCode = i11; + this.langCode = i12; + this.appSubVersion = str15; + this.v4ip = str16; + this.qimei = str17; + } +} diff --git a/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/RequestCommand.java b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/RequestCommand.java new file mode 100644 index 00000000..25a04bd4 --- /dev/null +++ b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/RequestCommand.java @@ -0,0 +1,54 @@ +package com.tencent.videolite.android.datamodel.cctvjce; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; + +public final class RequestCommand extends JceStruct { + static byte[] cache_body; + public byte[] body; + public BusinessHead businessHead; + public RequestHead head; + static RequestHead cache_head = new RequestHead(); + static BusinessHead cache_businessHead = new BusinessHead(); + + static { + cache_body = new byte[0]; + byte[] bArr = {0}; + } + + public RequestCommand() { + this.head = null; + this.body = null; + this.businessHead = null; + } + + @Override // com.qq.taf.jce.JceStruct + public void readFrom(JceInputStream jceInputStream) { + this.head = (RequestHead) jceInputStream.read((JceStruct) cache_head, 0, true); + this.body = jceInputStream.read(cache_body, 1, false); + this.businessHead = (BusinessHead) jceInputStream.read((JceStruct) cache_businessHead, 2, false); + } + + @Override // com.qq.taf.jce.JceStruct + public void writeTo(JceOutputStream jceOutputStream) { + jceOutputStream.write((JceStruct) this.head, 0); + byte[] bArr = this.body; + if (bArr != null) { + jceOutputStream.write(bArr, 1); + } + BusinessHead businessHead = this.businessHead; + if (businessHead != null) { + jceOutputStream.write((JceStruct) businessHead, 2); + } + } + + public RequestCommand(RequestHead requestHead, byte[] bArr, BusinessHead businessHead) { + this.head = null; + this.body = null; + this.businessHead = null; + this.head = requestHead; + this.body = bArr; + this.businessHead = businessHead; + } +} diff --git a/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/RequestHead.java b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/RequestHead.java new file mode 100644 index 00000000..c7c2ded2 --- /dev/null +++ b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/RequestHead.java @@ -0,0 +1,141 @@ +package com.tencent.videolite.android.datamodel.cctvjce; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; +import java.util.ArrayList; +import java.util.Collection; + +public final class RequestHead extends JceStruct { + static BusinessExtent cache_busiExtent; + static ArrayList cache_extentAccountList; + static LogReport cache_logReport; + static SafeInfo cache_safeInfo; + public String appId; + public BusinessExtent busiExtent; + public int cmdId; + public int contentType; + public ArrayList extentAccountList; + public String guid; + public int isSupportDolby; + public LogReport logReport; + public int oemPlatform; + public QUA qua; + public int requestId; + public SafeInfo safeInfo; + public ArrayList token; + static QUA cache_qua = new QUA(); + static ArrayList cache_token = new ArrayList<>(); + + static { + cache_token.add(new LoginToken()); + cache_logReport = new LogReport(); + cache_extentAccountList = new ArrayList<>(); + cache_extentAccountList.add(new ExtentAccount()); + cache_safeInfo = new SafeInfo(); + cache_busiExtent = new BusinessExtent(); + } + + public RequestHead() { + this.requestId = 0; + this.cmdId = 0; + this.qua = null; + this.appId = ""; + this.guid = ""; + this.token = null; + this.logReport = null; + this.extentAccountList = null; + this.oemPlatform = 0; + this.isSupportDolby = 0; + this.contentType = 0; + this.safeInfo = null; + this.busiExtent = null; + } + + @Override // com.qq.taf.jce.JceStruct + public void readFrom(JceInputStream jceInputStream) { + this.requestId = jceInputStream.read(this.requestId, 0, true); + this.cmdId = jceInputStream.read(this.cmdId, 1, true); + this.qua = (QUA) jceInputStream.read((JceStruct) cache_qua, 2, false); + this.appId = jceInputStream.readString(3, false); + this.guid = jceInputStream.readString(4, false); + this.token = (ArrayList) jceInputStream.read(cache_token, 5, false); + this.logReport = (LogReport) jceInputStream.read((JceStruct) cache_logReport, 6, false); + this.extentAccountList = (ArrayList) jceInputStream.read( cache_extentAccountList, 7, false); + this.oemPlatform = jceInputStream.read(this.oemPlatform, 8, false); + this.isSupportDolby = jceInputStream.read(this.isSupportDolby, 9, false); + this.contentType = jceInputStream.read(this.contentType, 10, false); + this.safeInfo = (SafeInfo) jceInputStream.read((JceStruct) cache_safeInfo, 11, false); + this.busiExtent = (BusinessExtent) jceInputStream.read((JceStruct) cache_busiExtent, 12, false); + } + + @Override // com.qq.taf.jce.JceStruct + public void writeTo(JceOutputStream jceOutputStream) { + jceOutputStream.write(this.requestId, 0); + jceOutputStream.write(this.cmdId, 1); + QUA qua = this.qua; + if (qua != null) { + jceOutputStream.write((JceStruct) qua, 2); + } + String str = this.appId; + if (str != null) { + jceOutputStream.write(str, 3); + } + String str2 = this.guid; + if (str2 != null) { + jceOutputStream.write(str2, 4); + } + ArrayList arrayList = this.token; + if (arrayList != null) { + jceOutputStream.write((Collection) arrayList, 5); + } + LogReport logReport = this.logReport; + if (logReport != null) { + jceOutputStream.write((JceStruct) logReport, 6); + } + ArrayList arrayList2 = this.extentAccountList; + if (arrayList2 != null) { + jceOutputStream.write((Collection) arrayList2, 7); + } + jceOutputStream.write(this.oemPlatform, 8); + jceOutputStream.write(this.isSupportDolby, 9); + jceOutputStream.write(this.contentType, 10); + SafeInfo safeInfo = this.safeInfo; + if (safeInfo != null) { + jceOutputStream.write((JceStruct) safeInfo, 11); + } + BusinessExtent businessExtent = this.busiExtent; + if (businessExtent != null) { + jceOutputStream.write((JceStruct) businessExtent, 12); + } + } + + public RequestHead(int i2, int i3, QUA qua, String str, String str2, ArrayList arrayList, LogReport logReport, ArrayList arrayList2, int i4, int i5, int i6, SafeInfo safeInfo, BusinessExtent businessExtent) { + this.requestId = 0; + this.cmdId = 0; + this.qua = null; + this.appId = ""; + this.guid = ""; + this.token = null; + this.logReport = null; + this.extentAccountList = null; + this.oemPlatform = 0; + this.isSupportDolby = 0; + this.contentType = 0; + this.safeInfo = null; + this.busiExtent = null; + this.requestId = i2; + this.cmdId = i3; + this.qua = qua; + this.appId = str; + this.guid = str2; + this.token = arrayList; + this.logReport = logReport; + this.extentAccountList = arrayList2; + this.oemPlatform = i4; + this.isSupportDolby = i5; + this.contentType = i6; + this.safeInfo = safeInfo; + this.busiExtent = businessExtent; + } +} diff --git a/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/ResponseCommand.java b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/ResponseCommand.java new file mode 100644 index 00000000..857b1a72 --- /dev/null +++ b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/ResponseCommand.java @@ -0,0 +1,54 @@ +package com.tencent.videolite.android.datamodel.cctvjce; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; + +public final class ResponseCommand extends JceStruct { + static byte[] cache_body; + public byte[] body; + public BusinessHead businessHead; + public ResponseHead head; + static ResponseHead cache_head = new ResponseHead(); + static BusinessHead cache_businessHead = new BusinessHead(); + + static { + cache_body = new byte[0]; + byte[] bArr = {0}; + } + + public ResponseCommand() { + this.head = null; + this.body = null; + this.businessHead = null; + } + + @Override // com.qq.taf.jce.JceStruct + public void readFrom(JceInputStream jceInputStream) { + this.head = (ResponseHead) jceInputStream.read((JceStruct) cache_head, 0, true); + this.body = jceInputStream.read(cache_body, 1, false); + this.businessHead = (BusinessHead) jceInputStream.read((JceStruct) cache_businessHead, 2, false); + } + + @Override // com.qq.taf.jce.JceStruct + public void writeTo(JceOutputStream jceOutputStream) { + jceOutputStream.write((JceStruct) this.head, 0); + byte[] bArr = this.body; + if (bArr != null) { + jceOutputStream.write(bArr, 1); + } + BusinessHead businessHead = this.businessHead; + if (businessHead != null) { + jceOutputStream.write((JceStruct) businessHead, 2); + } + } + + public ResponseCommand(ResponseHead responseHead, byte[] bArr, BusinessHead businessHead) { + this.head = null; + this.body = null; + this.businessHead = null; + this.head = responseHead; + this.body = bArr; + this.businessHead = businessHead; + } +} diff --git a/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/ResponseHead.java b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/ResponseHead.java new file mode 100644 index 00000000..a3512fe1 --- /dev/null +++ b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/ResponseHead.java @@ -0,0 +1,46 @@ +package com.tencent.videolite.android.datamodel.cctvjce; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; + +public final class ResponseHead extends JceStruct { + public int cmdId; + public int errCode; + public int requestId; + public String sUserid; + + public ResponseHead() { + this.requestId = 0; + this.cmdId = 0; + this.errCode = 0; + this.sUserid = ""; + } + + @Override // com.qq.taf.jce.JceStruct + public void readFrom(JceInputStream jceInputStream) { + this.requestId = jceInputStream.read(this.requestId, 0, true); + this.cmdId = jceInputStream.read(this.cmdId, 1, true); + this.errCode = jceInputStream.read(this.errCode, 2, true); + this.sUserid = jceInputStream.readString(3, true); + } + + @Override // com.qq.taf.jce.JceStruct + public void writeTo(JceOutputStream jceOutputStream) { + jceOutputStream.write(this.requestId, 0); + jceOutputStream.write(this.cmdId, 1); + jceOutputStream.write(this.errCode, 2); + jceOutputStream.write(this.sUserid, 3); + } + + public ResponseHead(int i2, int i3, int i4, String str) { + this.requestId = 0; + this.cmdId = 0; + this.errCode = 0; + this.sUserid = ""; + this.requestId = i2; + this.cmdId = i3; + this.errCode = i4; + this.sUserid = str; + } +} diff --git a/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/SafeInfo.java b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/SafeInfo.java new file mode 100644 index 00000000..c998e2af --- /dev/null +++ b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/SafeInfo.java @@ -0,0 +1,52 @@ +package com.tencent.videolite.android.datamodel.cctvjce; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; + +public final class SafeInfo extends JceStruct { + static byte[] cache_SafeResult; + public String SafeKey; + public byte[] SafeResult; + public int type; + + static { + cache_SafeResult = new byte[0]; + byte[] bArr = {0}; + } + + public SafeInfo() { + this.type = 0; + this.SafeKey = ""; + this.SafeResult = null; + } + + @Override // com.qq.taf.jce.JceStruct + public void readFrom(JceInputStream jceInputStream) { + this.type = jceInputStream.read(this.type, 0, false); + this.SafeKey = jceInputStream.readString(1, false); + this.SafeResult = jceInputStream.read(cache_SafeResult, 2, false); + } + + @Override // com.qq.taf.jce.JceStruct + public void writeTo(JceOutputStream jceOutputStream) { + jceOutputStream.write(this.type, 0); + String str = this.SafeKey; + if (str != null) { + jceOutputStream.write(str, 1); + } + byte[] bArr = this.SafeResult; + if (bArr != null) { + jceOutputStream.write(bArr, 2); + } + } + + public SafeInfo(int i2, String str, byte[] bArr) { + this.type = 0; + this.SafeKey = ""; + this.SafeResult = null; + this.type = i2; + this.SafeKey = str; + this.SafeResult = bArr; + } +} diff --git a/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/TVProgram.java b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/TVProgram.java new file mode 100644 index 00000000..8a6355c4 --- /dev/null +++ b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/TVProgram.java @@ -0,0 +1,85 @@ +package com.tencent.videolite.android.datamodel.cctvjce; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; + +public final class TVProgram extends JceStruct { + public int copyRight; + public int duration; + public String epg_time; + public String id; + public String name; + public int picScreenFlag; + public long start_time_stamp; + public int timeShiftFlag; + public int videoScreenFlag; + + public TVProgram() { + this.id = ""; + this.start_time_stamp = 0L; + this.epg_time = ""; + this.name = ""; + this.copyRight = 0; + this.timeShiftFlag = 0; + this.duration = 0; + this.picScreenFlag = 0; + this.videoScreenFlag = 0; + } + + @Override // com.qq.taf.jce.JceStruct + public void readFrom(JceInputStream jceInputStream) { + this.id = jceInputStream.readString(0, false); + this.start_time_stamp = jceInputStream.read(this.start_time_stamp, 1, false); + this.epg_time = jceInputStream.readString(2, false); + this.name = jceInputStream.readString(3, false); + this.copyRight = jceInputStream.read(this.copyRight, 4, false); + this.timeShiftFlag = jceInputStream.read(this.timeShiftFlag, 5, false); + this.duration = jceInputStream.read(this.duration, 6, false); + this.picScreenFlag = jceInputStream.read(this.picScreenFlag, 7, false); + this.videoScreenFlag = jceInputStream.read(this.videoScreenFlag, 8, false); + } + + @Override // com.qq.taf.jce.JceStruct + public void writeTo(JceOutputStream jceOutputStream) { + String str = this.id; + if (str != null) { + jceOutputStream.write(str, 0); + } + jceOutputStream.write(this.start_time_stamp, 1); + String str2 = this.epg_time; + if (str2 != null) { + jceOutputStream.write(str2, 2); + } + String str3 = this.name; + if (str3 != null) { + jceOutputStream.write(str3, 3); + } + jceOutputStream.write(this.copyRight, 4); + jceOutputStream.write(this.timeShiftFlag, 5); + jceOutputStream.write(this.duration, 6); + jceOutputStream.write(this.picScreenFlag, 7); + jceOutputStream.write(this.videoScreenFlag, 8); + } + + public TVProgram(String str, long j, String str2, String str3, int i2, int i3, int i4, int i5, int i6) { + this.id = ""; + this.start_time_stamp = 0L; + this.epg_time = ""; + this.name = ""; + this.copyRight = 0; + this.timeShiftFlag = 0; + this.duration = 0; + this.picScreenFlag = 0; + this.videoScreenFlag = 0; + this.id = str; + this.start_time_stamp = j; + this.epg_time = str2; + this.name = str3; + this.copyRight = i2; + this.timeShiftFlag = i3; + this.duration = i4; + this.picScreenFlag = i5; + this.videoScreenFlag = i6; + } +} diff --git a/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/TVTimeShiftProgramRequest.java b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/TVTimeShiftProgramRequest.java new file mode 100644 index 00000000..f8bab619 --- /dev/null +++ b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/TVTimeShiftProgramRequest.java @@ -0,0 +1,26 @@ +package com.tencent.videolite.android.datamodel.cctvjce; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; +public final class TVTimeShiftProgramRequest extends JceStruct { + public String pid; + + public TVTimeShiftProgramRequest() { + this.pid = ""; + } + + @Override // com.qq.taf.jce.JceStruct + public void readFrom(JceInputStream jceInputStream) { + this.pid = jceInputStream.readString(0, true); + } + + @Override // com.qq.taf.jce.JceStruct + public void writeTo(JceOutputStream jceOutputStream) { + jceOutputStream.write(this.pid, 0); + } + + public TVTimeShiftProgramRequest(String pid) { + this.pid = pid; + } +} diff --git a/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/TVTimeShiftProgramResponse.java b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/TVTimeShiftProgramResponse.java new file mode 100644 index 00000000..096bdda1 --- /dev/null +++ b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/TVTimeShiftProgramResponse.java @@ -0,0 +1,58 @@ +package com.tencent.videolite.android.datamodel.cctvjce; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; +import java.util.ArrayList; +import java.util.Collection; +public final class TVTimeShiftProgramResponse extends JceStruct { + static ArrayList cache_programs = new ArrayList<>(); + public int errcode; + public String errmsg; + public ArrayList programs; + public int timeShiftFlag; + + static { + cache_programs.add(new TVProgram()); + } + + public TVTimeShiftProgramResponse() { + this.errcode = 0; + this.errmsg = ""; + this.programs = null; + this.timeShiftFlag = 0; + } + + @Override // com.qq.taf.jce.JceStruct + public void readFrom(JceInputStream jceInputStream) { + this.errcode = jceInputStream.read(this.errcode, 0, true); + this.errmsg = jceInputStream.readString(1, false); + this.programs = (ArrayList) jceInputStream.read(cache_programs, 2, false); + this.timeShiftFlag = jceInputStream.read(this.timeShiftFlag, 3, false); + } + + @Override // com.qq.taf.jce.JceStruct + public void writeTo(JceOutputStream jceOutputStream) { + jceOutputStream.write(this.errcode, 0); + String str = this.errmsg; + if (str != null) { + jceOutputStream.write(str, 1); + } + ArrayList arrayList = this.programs; + if (arrayList != null) { + jceOutputStream.write((Collection) arrayList, 2); + } + jceOutputStream.write(this.timeShiftFlag, 3); + } + + public TVTimeShiftProgramResponse(int i2, String str, ArrayList arrayList, int i3) { + this.errcode = 0; + this.errmsg = ""; + this.programs = null; + this.timeShiftFlag = 0; + this.errcode = i2; + this.errmsg = str; + this.programs = arrayList; + this.timeShiftFlag = i3; + } +} diff --git a/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/TextInnerLayoutInfo.java b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/TextInnerLayoutInfo.java new file mode 100644 index 00000000..27a4ca6a --- /dev/null +++ b/app/src/main/java/com/tencent/videolite/android/datamodel/cctvjce/TextInnerLayoutInfo.java @@ -0,0 +1,45 @@ +package com.tencent.videolite.android.datamodel.cctvjce; + +import com.qq.taf.jce.JceInputStream; +import com.qq.taf.jce.JceOutputStream; +import com.qq.taf.jce.JceStruct; +public final class TextInnerLayoutInfo extends JceStruct { + public int bottomPending; + public int leftPending; + public int rightPending; + public int topPending; + + public TextInnerLayoutInfo() { + this.leftPending = 0; + this.topPending = 0; + this.rightPending = 0; + this.bottomPending = 0; + } + + @Override // com.qq.taf.jce.JceStruct + public void readFrom(JceInputStream jceInputStream) { + this.leftPending = jceInputStream.read(this.leftPending, 0, false); + this.topPending = jceInputStream.read(this.topPending, 1, false); + this.rightPending = jceInputStream.read(this.rightPending, 2, false); + this.bottomPending = jceInputStream.read(this.bottomPending, 3, false); + } + + @Override // com.qq.taf.jce.JceStruct + public void writeTo(JceOutputStream jceOutputStream) { + jceOutputStream.write(this.leftPending, 0); + jceOutputStream.write(this.topPending, 1); + jceOutputStream.write(this.rightPending, 2); + jceOutputStream.write(this.bottomPending, 3); + } + + public TextInnerLayoutInfo(int i2, int i3, int i4, int i5) { + this.leftPending = 0; + this.topPending = 0; + this.rightPending = 0; + this.bottomPending = 0; + this.leftPending = i2; + this.topPending = i3; + this.rightPending = i4; + this.bottomPending = i5; + } +}