Commit 3fd6dc07 authored by Him188's avatar Him188

Fix captcha resolver

parent d87c7f62
...@@ -10,6 +10,7 @@ import android.os.IBinder ...@@ -10,6 +10,7 @@ import android.os.IBinder
import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.CompletableDeferred
import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.io.core.readBytes
import net.mamoe.mirai.Bot import net.mamoe.mirai.Bot
import net.mamoe.mirai.contact.QQ import net.mamoe.mirai.contact.QQ
import net.mamoe.mirai.event.subscribeMessages import net.mamoe.mirai.event.subscribeMessages
...@@ -23,7 +24,7 @@ class MiraiService : Service() { ...@@ -23,7 +24,7 @@ class MiraiService : Service() {
private var mCaptchaDeferred: CompletableDeferred<String>? = null private var mCaptchaDeferred: CompletableDeferred<String>? = null
private var mBot: Bot? = null private lateinit var mBot: Bot
private var mCaptcha = "" private var mCaptcha = ""
set(value) { set(value) {
...@@ -46,9 +47,8 @@ class MiraiService : Service() { ...@@ -46,9 +47,8 @@ class MiraiService : Service() {
mBot = Bot(qq, pwd).apply { mBot = Bot(qq, pwd).apply {
val loginResult = login { val loginResult = login {
captchaSolver = { captchaSolver = {
val byteArray = byteArrayOf() val bytes = it.readBytes()
it.readFully(byteArray, 0, it.writeRemaining) val bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.size)
val bitmap = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.size)
mCallback?.get()?.onCaptcha(bitmap) mCallback?.get()?.onCaptcha(bitmap)
mCaptchaDeferred?.await() mCaptchaDeferred?.await()
} }
...@@ -61,7 +61,7 @@ class MiraiService : Service() { ...@@ -61,7 +61,7 @@ class MiraiService : Service() {
} }
mBot!!.subscribeMessages { mBot.subscribeMessages {
content({ true }) { content({ true }) {
mCallback?.get()?.onMessage("收到来自${sender.id}的消息") mCallback?.get()?.onMessage("收到来自${sender.id}的消息")
} }
......
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