优化代码

This commit is contained in:
czp3009 2019-02-28 11:03:46 +08:00
parent 748b096f6b
commit ac182bd791
6 changed files with 21 additions and 18 deletions

View File

@ -1,17 +1,18 @@
package com.hiczp.bilibili.api
import org.apache.commons.io.IOUtils
import org.apache.commons.io.input.BoundedInputStream
import org.apache.commons.io.input.BoundedReader
import java.io.InputStream
import java.nio.charset.Charset
fun InputStream.readFully(length: Int) = IOUtils.readFully(this, length)!!
/**
* 以大端模式从流中读取一个 int
*/
fun InputStream.readInt(): Int {
val byteArray = ByteArray(4).apply {
read(this)
}
val byteArray = readFully(4)
return (byteArray[0].toInt() shl 24) or
(byteArray[1].toInt() shl 16) or
(byteArray[2].toInt() shl 8) or

View File

@ -49,6 +49,9 @@ data class Danmaku(
/**
* 弹幕的内容
* 注意, 不一定是一个自然语言字符串, 可能是以 [ 开头的具有语义的文本, 如下所示
* [0,0,"1-1",4.5,"天下第一电击公主,贯穿天地的惊艳落雷!我炮傲娇永世长存!",0,0,0,0.99,500,0,1,"SimHei",true]
* 这可能表示某种特殊的输出格式
*/
val content: String
)

View File

@ -37,7 +37,7 @@ data class ChatList(
@SerializedName("ctime")
var ctime: Int, // 1541824116
@SerializedName("dialog")
var dialog: Int, // 1136351035
var dialog: Long, // 1136351035
@SerializedName("dialog_str")
var dialogStr: String,
@SerializedName("fansgrade")
@ -63,11 +63,11 @@ data class ChatList(
@SerializedName("replies")
var replies: JsonElement?, // null
@SerializedName("root")
var root: Int, // 1136310360
var root: Long, // 1136310360
@SerializedName("root_str")
var rootStr: String, // 1136310360
@SerializedName("rpid")
var rpid: Int, // 1175989845
var rpid: Long, // 1175989845
@SerializedName("rpid_str")
var rpidStr: String, // 1175989845
@SerializedName("state")

View File

@ -70,7 +70,7 @@ data class ChildReply(
@SerializedName("ctime")
var ctime: Int, // 1550681500
@SerializedName("dialog")
var dialog: Int, // 0
var dialog: Long, // 0
@SerializedName("dialog_str")
var dialogStr: String,
@SerializedName("fansgrade")
@ -133,7 +133,7 @@ data class ChildReply(
@SerializedName("ctime")
var ctime: Int, // 1550682402
@SerializedName("dialog")
var dialog: Int, // 1405625526
var dialog: Long, // 1405625526
@SerializedName("dialog_str")
var dialogStr: String,
@SerializedName("fansgrade")

View File

@ -63,7 +63,7 @@ data class Reply(
@SerializedName("ctime")
var ctime: Int, // 1550677636
@SerializedName("dialog")
var dialog: Int, // 0
var dialog: Long, // 0
@SerializedName("dialog_str")
var dialogStr: String,
@SerializedName("fansgrade")
@ -150,7 +150,7 @@ data class Reply(
@SerializedName("ctime")
var ctime: Int, // 1550677973
@SerializedName("dialog")
var dialog: Int, // 1405471211
var dialog: Long, // 1405471211
@SerializedName("dialog_str")
var dialogStr: String,
@SerializedName("fansgrade")
@ -456,7 +456,7 @@ data class Reply(
@SerializedName("ctime")
var ctime: Int, // 1550507590
@SerializedName("dialog")
var dialog: Int, // 0
var dialog: Long, // 0
@SerializedName("dialog_str")
var dialogStr: String,
@SerializedName("fansgrade")
@ -646,7 +646,7 @@ data class Reply(
@SerializedName("ctime")
var ctime: Int, // 1550670930
@SerializedName("dialog")
var dialog: Int, // 1405107877
var dialog: Long, // 1405107877
@SerializedName("dialog_str")
var dialogStr: String,
@SerializedName("fansgrade")
@ -827,7 +827,7 @@ data class Reply(
@SerializedName("ctime")
var ctime: Int, // 1550553976
@SerializedName("dialog")
var dialog: Int, // 0
var dialog: Long, // 0
@SerializedName("dialog_str")
var dialogStr: String,
@SerializedName("fansgrade")
@ -890,7 +890,7 @@ data class Reply(
@SerializedName("ctime")
var ctime: Int, // 1550572214
@SerializedName("dialog")
var dialog: Int, // 1401606362
var dialog: Long, // 1401606362
@SerializedName("dialog_str")
var dialogStr: String,
@SerializedName("fansgrade")

View File

@ -9,12 +9,11 @@ class DanmakuTest {
@Test
fun fetchAndParseDanmaku() {
runBlocking {
//著名的炮姐视频 你指尖跃动的光是我此生不变的信仰
//著名的炮姐视频 你指尖跃动的光是我此生不变的信仰
bilibiliClient.danmakuAPI.list(aid = 810872, oid = 1176840).await().let {
DanmakuParser.parser(it.byteStream())
}.let { (map, list) ->
println(map)
println(list)
}.second.forEach {
println("[${it.time}] ${it.content}")
}
}
}