Commit eabffb46 authored by jiahua.liu's avatar jiahua.liu

Console Update

parent d8feefcc
package net.mamoe.mirai.qqandroid.network.protocol.packet.login package net.mamoe.mirai.qqandroid.network.protocol.packet.login
import io.ktor.util.InternalAPI
import kotlinx.io.core.* import kotlinx.io.core.*
import net.mamoe.mirai.data.Packet import net.mamoe.mirai.data.Packet
import net.mamoe.mirai.qqandroid.QQAndroidBot import net.mamoe.mirai.qqandroid.QQAndroidBot
...@@ -189,6 +190,7 @@ internal object LoginPacket : PacketFactory<LoginPacket.LoginPacketResponse>("wt ...@@ -189,6 +190,7 @@ internal object LoginPacket : PacketFactory<LoginPacket.LoginPacketResponse>("wt
} }
} }
@InternalAPI
@UseExperimental(MiraiDebugAPI::class) @UseExperimental(MiraiDebugAPI::class)
override suspend fun ByteReadPacket.decode(bot: QQAndroidBot): LoginPacketResponse = this.debugPrint("login解析").run { override suspend fun ByteReadPacket.decode(bot: QQAndroidBot): LoginPacketResponse = this.debugPrint("login解析").run {
// 00 09 sub cmd // 00 09 sub cmd
...@@ -227,6 +229,7 @@ internal object LoginPacket : PacketFactory<LoginPacket.LoginPacketResponse>("wt ...@@ -227,6 +229,7 @@ internal object LoginPacket : PacketFactory<LoginPacket.LoginPacketResponse>("wt
} ?: error("Cannot find error message") } ?: error("Cannot find error message")
} }
@InternalAPI
@UseExperimental(MiraiDebugAPI::class) @UseExperimental(MiraiDebugAPI::class)
private suspend fun onSolveLoginCaptcha(tlvMap: Map<Int, ByteArray>, bot: QQAndroidBot): LoginPacketResponse.Captcha { private suspend fun onSolveLoginCaptcha(tlvMap: Map<Int, ByteArray>, bot: QQAndroidBot): LoginPacketResponse.Captcha {
val client = bot.client val client = bot.client
...@@ -237,11 +240,17 @@ internal object LoginPacket : PacketFactory<LoginPacket.LoginPacketResponse>("wt ...@@ -237,11 +240,17 @@ internal object LoginPacket : PacketFactory<LoginPacket.LoginPacketResponse>("wt
"36" -> { "36" -> {
//图片验证 //图片验证
DebugLogger.debug("是一个图片验证码") DebugLogger.debug("是一个图片验证码")
val imageData = tlvMap[0x165] val imageData = tlvMap[0x105]!!.toReadPacket()
bot.configuration.captchaSolver.invoke( println(tlvMap[0x105]!!.toUHexString())
bot, val signInfoLength = imageData.readShort()
(tlvMap[0x105] ?: error("Captcha Image Data Not Found")).toIoBuffer() val picLength = imageData.readShort()
) val sign = imageData.readBytes(signInfoLength.toInt())
val tv104 = tlvMap[0x104]!!
val ssoSign =
bot.configuration.captchaSolver.invoke(
bot,
imageData.readRemainingBytes().toIoBuffer()
)
} }
else -> { else -> {
error("UNKNOWN CAPTCHA QUESTION: $question") error("UNKNOWN CAPTCHA QUESTION: $question")
......
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