From f63a077e21b7f9c69f3ebff83e6bab9bc7275c7e Mon Sep 17 00:00:00 2001 From: "jiahua.liu" Date: Mon, 3 Feb 2020 14:54:13 +0800 Subject: [PATCH 1/2] to merge --- .../network/QQAndroidBotNetworkHandler.kt | 5 +- .../mamoe/mirai/qqandroid/HowFastisKotlin.kt | 60 +++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 mirai-core-qqandroid/src/jvmMain/kotlin/net/mamoe/mirai/qqandroid/HowFastisKotlin.kt diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt index 2c06a7c17..48d4cbffb 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt @@ -222,8 +222,11 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler } } bot.logger.info("====================Mirai Bot List初始化完毕====================") + bot.qqs.forEach { + println(it.id) + } + println(bot.qqs.size) return - MessageSvc.PbGetMsg(bot.client, MsgSvc.SyncFlag.START, currentTimeSeconds).sendWithoutExpect() } diff --git a/mirai-core-qqandroid/src/jvmMain/kotlin/net/mamoe/mirai/qqandroid/HowFastisKotlin.kt b/mirai-core-qqandroid/src/jvmMain/kotlin/net/mamoe/mirai/qqandroid/HowFastisKotlin.kt new file mode 100644 index 000000000..aa3928bcb --- /dev/null +++ b/mirai-core-qqandroid/src/jvmMain/kotlin/net/mamoe/mirai/qqandroid/HowFastisKotlin.kt @@ -0,0 +1,60 @@ +package net.mamoe.mirai.qqandroid + +import io.ktor.client.HttpClient +import io.ktor.client.request.get +import io.ktor.client.request.header +import io.ktor.client.request.headers +import io.ktor.client.request.post +import io.ktor.client.response.HttpResponse +import io.ktor.http.URLProtocol +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.coroutineScope +import kotlinx.coroutines.io.readRemaining +import kotlinx.coroutines.launch +import kotlinx.io.core.readBytes + + +suspend fun main(){ + val lst = listOf("N","n","M","m","S","s","L","l","1","2","3","4","5","0") + fun rdm(l:Int):String{ + var s = "Pp"; + repeat(l){ + s+=lst.random() + } + return s + } + val lst2 = listOf("1","2","3","4","5","6","7") + fun rdmQQ(){ + var s = "1" + repeat(8){ + s+=lst2.random() + } + } + coroutineScope { + repeat(1000) { + launch { + val r = HttpClient().get() { + url { + protocol = URLProtocol.HTTPS + host = "papl.lfdevs.com" + path("/check/regcheck") + parameters["c"] = "reg" + parameters["username"] = rdm(12) + parameters["email"] = rdm(5) + "@126.com" + parameters["pwd"] = rdm(10) + parameters["qq"] = rdmQQ().toString() + parameters["sex"] = "1" + } + headers { + header("referer","https://papl.lfdevs.com/index/login") + header("user-agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36") + } + } + if(r.status.value==200) { + println(r.status.toString() + "|" + String(r.content.readRemaining().readBytes())) + } + } + } + } +} + From 584cdd7d6e44b940052e746cfd69d2ab421b45e3 Mon Sep 17 00:00:00 2001 From: "jiahua.liu" Date: Mon, 3 Feb 2020 15:21:03 +0800 Subject: [PATCH 2/2] to merge --- .../network/QQAndroidBotNetworkHandler.kt | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt index 14b249287..f11edde32 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt @@ -31,6 +31,7 @@ import net.mamoe.mirai.qqandroid.network.protocol.packet.login.StatSvc import net.mamoe.mirai.utils.* import net.mamoe.mirai.utils.io.* import kotlin.coroutines.CoroutineContext +import kotlin.coroutines.EmptyCoroutineContext import kotlin.jvm.Volatile @Suppress("MemberVisibilityCanBePrivate") @@ -130,14 +131,14 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler 150, 0, 0 - ).sendAndExpect(timeoutMillis = 1000) + ).sendAndExpect(timeoutMillis = 5000, retry = 2) totalFriendCount = data.totalFriendCount data.friendList.forEach { // atomic add - bot.qqs.delegate.addLast(bot.getFriend(it.friendUin).also { + bot.qqs.delegate.addLast(QQImpl(bot, bot.coroutineContext, it.friendUin)).also { currentFriendCount++ - }) + } } bot.logger.verbose("正在加载好友列表 ${currentFriendCount}/${totalFriendCount}") if (currentFriendCount >= totalFriendCount) { @@ -147,7 +148,7 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler } bot.logger.info("好友列表加载完成, 共 ${currentFriendCount}个") } catch (e: Exception) { - bot.logger.info("加载好友列表失败|一般这是由于加载过于频繁导致/将以热加载方式加载好友列表") + bot.logger.error("加载好友列表失败|一般这是由于加载过于频繁导致/将以热加载方式加载好友列表") } val friendLoadFinish = currentTimeMillis @@ -156,7 +157,7 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler bot.logger.info("开始加载群组列表与群成员列表") val troopData = FriendList.GetTroopListSimplify( bot.client - ).sendAndExpect(timeoutMillis = 1000) + ).sendAndExpect(timeoutMillis = 5000) // println("获取到群数量" + troopData.groups.size) val toGet: MutableMap> = mutableMapOf() troopData.groups.forEach { @@ -197,7 +198,7 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler } bot.logger.info("群组列表与群成员加载完成, 共 ${troopData.groups.size}个") } catch (e: Exception) { - bot.logger.info("加载组信息失败|一般这是由于加载过于频繁导致/将以热加载方式加载群列表") + bot.logger.error("加载组信息失败|一般这是由于加载过于频繁导致/将以热加载方式加载群列表") } //===log===// @@ -223,10 +224,6 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler } } bot.logger.info("====================Mirai Bot List初始化完毕====================") - bot.qqs.forEach { - println(it.id) - } - println(bot.qqs.size) return MessageSvc.PbGetMsg(bot.client, MsgSvc.SyncFlag.START, currentTimeSeconds).sendWithoutExpect() }