mirror of
https://github.com/czp3009/bilibili-api.git
synced 2025-02-19 20:50:28 +08:00
优化代码
This commit is contained in:
parent
748b096f6b
commit
ac182bd791
@ -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
|
||||
|
@ -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
|
||||
)
|
||||
|
@ -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")
|
||||
|
@ -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")
|
||||
|
@ -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")
|
||||
|
@ -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}")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user