Commit 07d9365d authored by mzdluo123's avatar mzdluo123

fix: crash when get GroupActiveData

parent 2eac5ab6
...@@ -144,7 +144,7 @@ internal class QQAndroidBot constructor( ...@@ -144,7 +144,7 @@ internal class QQAndroidBot constructor(
@Suppress("DuplicatedCode") @Suppress("DuplicatedCode")
@OptIn(LowLevelAPI::class) @OptIn(LowLevelAPI::class)
override suspend fun rejectMemberJoinRequest(event: MemberJoinRequestEvent, blackList: Boolean) { override suspend fun rejectMemberJoinRequest(event: MemberJoinRequestEvent, blackList: Boolean) {
rejectMemberJoinRequest(event, blackList,"") rejectMemberJoinRequest(event, blackList, "")
} }
@Suppress("DuplicatedCode") @Suppress("DuplicatedCode")
...@@ -585,13 +585,15 @@ internal abstract class QQAndroidBotBase constructor( ...@@ -585,13 +585,15 @@ internal abstract class QQAndroidBotBase constructor(
@LowLevelAPI @LowLevelAPI
@MiraiExperimentalAPI @MiraiExperimentalAPI
override suspend fun _lowLevelGetGroupActiveData(groupId: Long): GroupActiveData { override suspend fun _lowLevelGetGroupActiveData(groupId: Long, page: Int): GroupActiveData {
val data = network.async { val data = network.async {
HttpClient().get<String> { HttpClient().get<String> {
url("https://qqweb.qq.com/c/activedata/get_mygroup_data") url("https://qqweb.qq.com/c/activedata/get_mygroup_data")
parameter("bkn", bkn) parameter("bkn", bkn)
parameter("gc", groupId) parameter("gc", groupId)
if (page != -1) {
parameter("page", page)
}
headers { headers {
append( append(
"cookie", "cookie",
......
...@@ -26,109 +26,109 @@ data class GroupActiveData( ...@@ -26,109 +26,109 @@ data class GroupActiveData(
val info: GInfo? = null, val info: GInfo? = null,
@SerialName("role") @SerialName("role")
val role: Int? val role: Int? = 0
) { ) {
@Serializable @Serializable
data class GInfo( data class GInfo(
@SerialName("g_act_num") @SerialName("g_act_num")
val actNum: List<GActNum?>?, //发言人数列表 val actNum: List<GActNum?>? = null, //发言人数列表
@SerialName("g_createtime") @SerialName("g_createtime")
val createTime: Int?, val createTime: Int? = 0,
@SerialName("g_exit_num") @SerialName("g_exit_num")
val exitNum: List<GExitNum?>?, //退群人数列表 val exitNum: List<GExitNum?>? = null, //退群人数列表
@SerialName("g_join_num") @SerialName("g_join_num")
val joinNum: List<GJoinNum?>?, val joinNum: List<GJoinNum?>? = null,
@SerialName("g_mem_num") @SerialName("g_mem_num")
val memNum: List<GMemNum?>?, //人数变化 val memNum: List<GMemNum?>? = null, //人数变化
@SerialName("g_most_act") @SerialName("g_most_act")
val mostAct: List<GMostAct?>?, //发言排行 val mostAct: List<GMostAct?>? = null, //发言排行
@SerialName("g_sentences") @SerialName("g_sentences")
val sentences: List<GSentence?>?, val sentences: List<GSentence?>? = null,
@SerialName("gc") @SerialName("gc")
val gc: Int?, val gc: Int? = null,
@SerialName("gn") @SerialName("gn")
val gn: String?, val gn: String? = null,
@SerialName("gowner") @SerialName("gowner")
val gowner: String?, val gowner: String? = null,
@SerialName("isEnd") @SerialName("isEnd")
val isEnd: Int? val isEnd: Int? = null
) { ) {
@Serializable @Serializable
data class GActNum( data class GActNum(
@SerialName("date") @SerialName("date")
val date: String?, val date: String? = null,
@SerialName("num") @SerialName("num")
val num: Int? val num: Int? = 0
) )
@Serializable @Serializable
data class GExitNum( data class GExitNum(
@SerialName("date") @SerialName("date")
val date: String?, val date: String? = null,
@SerialName("num") @SerialName("num")
val num: Int? val num: Int? = 0
) )
@Serializable @Serializable
data class GJoinNum( data class GJoinNum(
@SerialName("date") @SerialName("date")
val date: String?, val date: String? = null,
@SerialName("num") @SerialName("num")
val num: Int? val num: Int? = 0
) )
@Serializable @Serializable
data class GMemNum( data class GMemNum(
@SerialName("date") @SerialName("date")
val date: String?, val date: String? = null,
@SerialName("num") @SerialName("num")
val num: Int? val num: Int? = 0
) )
@Serializable @Serializable
data class GMostAct( data class GMostAct(
@SerialName("name") @SerialName("name")
val name: String?, // 名称 不完整 val name: String? = null, // 名称 不完整
@SerialName("sentences_num") @SerialName("sentences_num")
val sentencesNum: Int?, // 发言数 val sentencesNum: Int? = 0, // 发言数
@SerialName("sta") @SerialName("sta")
val sta: Int?, val sta: Int? = 0,
@SerialName("uin") @SerialName("uin")
val uin: Long? val uin: Long? = 0
) )
@Serializable @Serializable
data class GSentence( data class GSentence(
@SerialName("date") @SerialName("date")
val date: String?, val date: String? = null,
@SerialName("num") @SerialName("num")
val num: Int? val num: Int? = 0
) )
} }
} }
\ No newline at end of file
...@@ -112,10 +112,12 @@ interface LowLevelBotAPIAccessor { ...@@ -112,10 +112,12 @@ interface LowLevelBotAPIAccessor {
/** /**
* 获取群活跃信息 * 获取群活跃信息
* 不传page可得到趋势图
* page从0开始传入可以得到发言列表
*/ */
@LowLevelAPI @LowLevelAPI
@MiraiExperimentalAPI @MiraiExperimentalAPI
suspend fun _lowLevelGetGroupActiveData(groupId: Long): GroupActiveData suspend fun _lowLevelGetGroupActiveData(groupId: Long, page: Int = -1): GroupActiveData
/** /**
...@@ -123,19 +125,38 @@ interface LowLevelBotAPIAccessor { ...@@ -123,19 +125,38 @@ interface LowLevelBotAPIAccessor {
*/ */
@LowLevelAPI @LowLevelAPI
@MiraiExperimentalAPI @MiraiExperimentalAPI
suspend fun _lowLevelSolveNewFriendRequestEvent(eventId: Long, fromId: Long, fromNick: String, accept: Boolean, blackList: Boolean) suspend fun _lowLevelSolveNewFriendRequestEvent(
eventId: Long,
fromId: Long,
fromNick: String,
accept: Boolean,
blackList: Boolean
)
/** /**
* 处理被邀请加入一个群请求事件 * 处理被邀请加入一个群请求事件
*/ */
@LowLevelAPI @LowLevelAPI
@MiraiExperimentalAPI @MiraiExperimentalAPI
suspend fun _lowLevelSolveBotInvitedJoinGroupRequestEvent(eventId: Long, invitorId: Long, groupId: Long, accept: Boolean) suspend fun _lowLevelSolveBotInvitedJoinGroupRequestEvent(
eventId: Long,
invitorId: Long,
groupId: Long,
accept: Boolean
)
/** /**
* 处理账号请求加入群事件 * 处理账号请求加入群事件
*/ */
@LowLevelAPI @LowLevelAPI
@MiraiExperimentalAPI @MiraiExperimentalAPI
suspend fun _lowLevelSolveMemberJoinRequestEvent(eventId: Long, fromId: Long, fromNick: String, groupId: Long, accept: Boolean?, blackList: Boolean, message: String = "") suspend fun _lowLevelSolveMemberJoinRequestEvent(
eventId: Long,
fromId: Long,
fromNick: String,
groupId: Long,
accept: Boolean?,
blackList: Boolean,
message: String = ""
)
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment