mirror of
https://github.com/mamoe/mirai.git
synced 2025-03-24 14:30:09 +08:00
Mirai Console (Terminal)V0.01
This commit is contained in:
parent
758ea29caa
commit
33d5cf566e
@ -127,9 +127,17 @@ object MiraiConsole {
|
||||
override suspend fun read(question: String): String? {
|
||||
return frontEnd.requestInput(question)
|
||||
}
|
||||
})
|
||||
},
|
||||
SimpleLogger("Login Helper") { _, message, e ->
|
||||
logger("[Login Helper]", qqNumber, message)
|
||||
if (e != null) {
|
||||
logger("[NETWORK ERROR]", qqNumber, e.toString())//因为在一页 所以可以不打QQ
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
)
|
||||
this.botLoggerSupplier = {
|
||||
SimpleLogger("BOT $qqNumber") { _, message, e ->
|
||||
SimpleLogger("BOT $qqNumber]") { _, message, e ->
|
||||
logger("[BOT $qqNumber]", qqNumber, message)
|
||||
if (e != null) {
|
||||
logger("[NETWORK ERROR]", qqNumber, e.toString())//因为在一页 所以可以不打QQ
|
||||
|
@ -53,54 +53,65 @@ class DefaultLoginSolverInputReader: LoginSolverInputReader{
|
||||
}
|
||||
|
||||
class DefaultLoginSolver(
|
||||
val reader: LoginSolverInputReader = DefaultLoginSolverInputReader()
|
||||
val reader: LoginSolverInputReader = DefaultLoginSolverInputReader(),
|
||||
val overrideLogger:MiraiLogger? = null
|
||||
) : LoginSolver() {
|
||||
fun getLogger(bot: Bot):MiraiLogger{
|
||||
if(overrideLogger!=null){
|
||||
return overrideLogger
|
||||
}
|
||||
return bot.logger
|
||||
}
|
||||
|
||||
override suspend fun onSolvePicCaptcha(bot: Bot, data: IoBuffer): String? = loginSolverLock.withLock {
|
||||
val logger = getLogger(bot)
|
||||
val tempFile: File = createTempFile(suffix = ".png").apply { deleteOnExit() }
|
||||
withContext(Dispatchers.IO) {
|
||||
tempFile.createNewFile()
|
||||
bot.logger.info("需要图片验证码登录, 验证码为 4 字母")
|
||||
logger.info("需要图片验证码登录, 验证码为 4 字母")
|
||||
try {
|
||||
tempFile.writeChannel().apply { writeFully(data); close() }
|
||||
bot.logger.info("将会显示字符图片. 若看不清字符图片, 请查看文件 ${tempFile.absolutePath}")
|
||||
logger.info("将会显示字符图片. 若看不清字符图片, 请查看文件 ${tempFile.absolutePath}")
|
||||
} catch (e: Exception) {
|
||||
bot.logger.info("无法写出验证码文件(${e.message}), 请尝试查看以上字符图片")
|
||||
logger.info("无法写出验证码文件(${e.message}), 请尝试查看以上字符图片")
|
||||
}
|
||||
|
||||
tempFile.inputStream().use {
|
||||
val img = ImageIO.read(it)
|
||||
if (img == null) {
|
||||
bot.logger.info("无法创建字符图片. 请查看文件")
|
||||
logger.info("无法创建字符图片. 请查看文件")
|
||||
} else {
|
||||
bot.logger.info(img.createCharImg())
|
||||
logger.info(img.createCharImg())
|
||||
}
|
||||
}
|
||||
}
|
||||
bot.logger.info("请输入 4 位字母验证码. 若要更换验证码, 请直接回车")
|
||||
logger.info("请输入 4 位字母验证码. 若要更换验证码, 请直接回车")
|
||||
return reader("请输入 4 位字母验证码. 若要更换验证码, 请直接回车")!!.takeUnless { it.isEmpty() || it.length != 4 }.also {
|
||||
bot.logger.info("正在提交[$it]中...")
|
||||
logger.info("正在提交[$it]中...")
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun onSolveSliderCaptcha(bot: Bot, url: String): String? = loginSolverLock.withLock {
|
||||
bot.logger.info("需要滑动验证码")
|
||||
bot.logger.info("请在任意浏览器中打开以下链接并完成验证码. ")
|
||||
bot.logger.info("完成后请输入任意字符 ")
|
||||
bot.logger.info(url)
|
||||
val logger = getLogger(bot)
|
||||
logger.info("需要滑动验证码")
|
||||
logger.info("请在任意浏览器中打开以下链接并完成验证码. ")
|
||||
logger.info("完成后请输入任意字符 ")
|
||||
logger.info(url)
|
||||
return reader("完成后请输入任意字符").also {
|
||||
bot.logger.info("正在提交中...")
|
||||
logger.info("正在提交中...")
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun onSolveUnsafeDeviceLoginVerify(bot: Bot, url: String): String? = loginSolverLock.withLock {
|
||||
bot.logger.info("需要进行账户安全认证")
|
||||
bot.logger.info("该账户有[设备锁]/[不常用登陆地点]/[不常用设备登陆]的问题")
|
||||
bot.logger.info("完成以下账号认证即可成功登陆|理论本认证在mirai每个账户中最多出现1次")
|
||||
bot.logger.info("请将该链接在QQ浏览器中打开并完成认证, 成功后输入任意字符")
|
||||
bot.logger.info("这步操作将在后续的版本中优化")
|
||||
bot.logger.info(url)
|
||||
val logger = getLogger(bot)
|
||||
logger.info("需要进行账户安全认证")
|
||||
logger.info("该账户有[设备锁]/[不常用登陆地点]/[不常用设备登陆]的问题")
|
||||
logger.info("完成以下账号认证即可成功登陆|理论本认证在mirai每个账户中最多出现1次")
|
||||
logger.info("请将该链接在QQ浏览器中打开并完成认证, 成功后输入任意字符")
|
||||
logger.info("这步操作将在后续的版本中优化")
|
||||
logger.info(url)
|
||||
return reader("完成后请输入任意字符").also {
|
||||
bot.logger.info("正在提交中...")
|
||||
logger.info("正在提交中...")
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user