mirror of
https://github.com/mamoe/mirai.git
synced 2025-03-24 06:10:09 +08:00
Rename protocol.tim to protocol.timpc
This commit is contained in:
parent
20f529871f
commit
0c6e09361d
mirai-core/src
androidMain/kotlin/net/mamoe/mirai
network
utils
commonMain/kotlin/net.mamoe.mirai
Bot.ktBotAddFriend.ktBotHelper.ktBotImpl.kt
contact
event
message
network
BotNetworkHandler.ktBotSession.kt
protocol
tim/packet/event
timpc
TIMBotNetworkHandler.ktTIMProtocol.kt
handler
packet
Annotations.ktDecrypters.ktOutgoingPacket.ktPacket.ktPacketFactory.ktPacketId.kt
action
AddContact.ktFriendImage.ktFriendList.ktGradeInfo.ktGroupImage.ktGroupPacket.ktHttpAPIAccessor.ktImage.ktProfile.ktRemark.ktRequestFriendListPacket.ktSendFriendMessagePacket.kt
event
AndroidOnlineStatusChange.ktConnectionOccupiedEvent.ktEventPacket.ktEventPacketFactory.ktFriendAddRequestEventPacket.ktFriendConversationIniliaze.ktFriendOnlineStatusChanged.ktGroupFileUpload.ktIgnored.ktMemberJoin.ktMemberKickEvent.ktMemberMute.ktMemberPermission.ktMessageEvent.ktMuteEvent.ktPhoneMessage.ktQuitGroup.ktUnknown.kt
login
utils
jvmMain/kotlin/net/mamoe/mirai
message
network
utils
jvmTest/kotlin/mirai/test
mirai-debug/src/main/kotlin/test
mirai-demos
mirai-demo-1/src/main/java/demo/subscribe
mirai-demo-android/src/main/kotlin/net/mamoe/mirai/demo
mirai-demo-gentleman/src/main/kotlin/demo/gentleman
@ -8,7 +8,7 @@ import kotlinx.io.core.use
|
||||
import kotlinx.io.streams.inputStream
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.message.Image
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.SessionKey
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.SessionKey
|
||||
import net.mamoe.mirai.utils.MiraiInternalAPI
|
||||
import java.io.InputStream
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.mamoe.mirai.network.protocol.tim
|
||||
package net.mamoe.mirai.network.protocol.timpc
|
||||
|
||||
import kotlinx.coroutines.CoroutineDispatcher
|
||||
import kotlinx.coroutines.asCoroutineDispatcher
|
@ -1,4 +1,4 @@
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.event
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.event
|
||||
|
||||
import net.mamoe.mirai.contact.Contact
|
||||
import net.mamoe.mirai.contact.QQ
|
@ -3,12 +3,16 @@ package net.mamoe.mirai.utils
|
||||
import io.ktor.client.HttpClient
|
||||
import io.ktor.client.engine.cio.CIO
|
||||
import io.ktor.util.KtorExperimentalAPI
|
||||
import kotlinx.io.core.IoBuffer
|
||||
import kotlinx.io.core.readBytes
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.io.DataInput
|
||||
import java.io.EOFException
|
||||
import java.io.InputStream
|
||||
import java.net.InetAddress
|
||||
import java.security.MessageDigest
|
||||
import java.util.zip.CRC32
|
||||
import java.util.zip.Inflater
|
||||
|
||||
|
||||
/**
|
||||
@ -74,4 +78,17 @@ actual fun crc32(key: ByteArray): Int = CRC32().apply { update(key) }.value.toIn
|
||||
/**
|
||||
* hostname 解析 ipv4
|
||||
*/
|
||||
actual fun solveIpAddress(hostname: String): String = InetAddress.getByName(hostname).hostAddress
|
||||
actual fun solveIpAddress(hostname: String): String = InetAddress.getByName(hostname).hostAddress
|
||||
|
||||
actual fun ByteArray.unzip(): ByteArray {
|
||||
val inflater = Inflater()
|
||||
inflater.reset()
|
||||
val output = ByteArrayOutputStream()
|
||||
inflater.setInput(this)
|
||||
val buffer = ByteArray(128)
|
||||
while (!inflater.finished()) {
|
||||
output.write(buffer, 0, inflater.inflate(buffer))
|
||||
}
|
||||
inflater.end()
|
||||
return output.toByteArray()
|
||||
}
|
@ -7,7 +7,7 @@ import kotlinx.coroutines.Deferred
|
||||
import kotlinx.coroutines.Job
|
||||
import net.mamoe.mirai.contact.*
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.LoginResult
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.LoginResult
|
||||
import net.mamoe.mirai.utils.BotConfiguration
|
||||
import net.mamoe.mirai.utils.GroupNotFoundException
|
||||
import net.mamoe.mirai.utils.MiraiLogger
|
||||
|
@ -4,10 +4,10 @@
|
||||
|
||||
package net.mamoe.mirai
|
||||
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.AddFriendPacket
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.CanAddFriendPacket
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.CanAddFriendResponse
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.RequestFriendAdditionKeyPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.AddFriendPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.CanAddFriendPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.CanAddFriendResponse
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.RequestFriendAdditionKeyPacket
|
||||
import net.mamoe.mirai.network.sessionKey
|
||||
import kotlin.contracts.ExperimentalContracts
|
||||
import kotlin.jvm.JvmMultifileClass
|
||||
|
@ -7,10 +7,10 @@ package net.mamoe.mirai
|
||||
import net.mamoe.mirai.contact.*
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.BotSession
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMBotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.OutgoingPacket
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.LoginResult
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.requireSuccess
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMBotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.OutgoingPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.LoginResult
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.requireSuccess
|
||||
import net.mamoe.mirai.utils.BotConfiguration
|
||||
import net.mamoe.mirai.utils.internal.PositiveNumbers
|
||||
import net.mamoe.mirai.utils.internal.coerceAtLeastOrFail
|
||||
|
@ -7,13 +7,13 @@ import net.mamoe.mirai.contact.*
|
||||
import net.mamoe.mirai.contact.internal.Group
|
||||
import net.mamoe.mirai.contact.internal.QQ
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMBotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.KnownPacketId
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.GroupNotFound
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.GroupPacket
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.RawGroupInfo
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.LoginResult
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.isSuccess
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMBotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.KnownPacketId
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.GroupNotFound
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.GroupPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.RawGroupInfo
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.LoginResult
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.isSuccess
|
||||
import net.mamoe.mirai.network.qqAccount
|
||||
import net.mamoe.mirai.utils.*
|
||||
import net.mamoe.mirai.utils.internal.PositiveNumbers
|
||||
|
@ -3,8 +3,8 @@
|
||||
package net.mamoe.mirai.contact
|
||||
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.GroupInfo
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.QuitGroupResponse
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.GroupInfo
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.QuitGroupResponse
|
||||
import net.mamoe.mirai.utils.MiraiExperimentalAPI
|
||||
import net.mamoe.mirai.utils.internal.PositiveNumbers
|
||||
import net.mamoe.mirai.utils.internal.coerceAtLeastOrFail
|
||||
|
@ -6,9 +6,9 @@ import kotlinx.coroutines.CoroutineScope
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.contact.data.Profile
|
||||
import net.mamoe.mirai.network.BotSession
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.AvatarLink
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.FriendNameRemark
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.PreviousNameList
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.AvatarLink
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.FriendNameRemark
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.PreviousNameList
|
||||
import net.mamoe.mirai.utils.MiraiExperimentalAPI
|
||||
|
||||
/**
|
||||
|
@ -10,9 +10,9 @@ import net.mamoe.mirai.contact.*
|
||||
import net.mamoe.mirai.contact.data.Profile
|
||||
import net.mamoe.mirai.event.subscribeAlways
|
||||
import net.mamoe.mirai.message.MessageChain
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.*
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.event.MemberJoinEventPacket
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.event.MemberQuitEvent
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.event.MemberJoinEventPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.event.MemberQuitEvent
|
||||
import net.mamoe.mirai.network.qqAccount
|
||||
import net.mamoe.mirai.network.sessionKey
|
||||
import net.mamoe.mirai.qqAccount
|
||||
|
@ -8,9 +8,9 @@ import net.mamoe.mirai.contact.isOperator
|
||||
import net.mamoe.mirai.contact.isOwner
|
||||
import net.mamoe.mirai.message.Message
|
||||
import net.mamoe.mirai.message.any
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.event.FriendMessage
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.event.GroupMessage
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.event.MessagePacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.event.FriendMessage
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.event.GroupMessage
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.event.MessagePacket
|
||||
import kotlin.contracts.ExperimentalContracts
|
||||
import kotlin.contracts.InvocationKind
|
||||
import kotlin.contracts.contract
|
||||
|
@ -2,8 +2,8 @@ package net.mamoe.mirai.event.events
|
||||
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.event.Cancellable
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.OutgoingPacket
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.Packet
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.OutgoingPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.Packet
|
||||
|
||||
/* Abstract */
|
||||
|
||||
|
@ -4,7 +4,7 @@ package net.mamoe.mirai.message
|
||||
|
||||
import net.mamoe.mirai.contact.Contact
|
||||
import net.mamoe.mirai.contact.sendMessage
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.FriendImagePacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.FriendImagePacket
|
||||
import net.mamoe.mirai.utils.ExternalImage
|
||||
|
||||
|
||||
|
@ -16,6 +16,7 @@ enum class MessageType(val value: UByte) {
|
||||
* [ImageId.value] 长度为 37 的图片
|
||||
*/
|
||||
IMAGE_37(0x06u),
|
||||
XML(0x19u)
|
||||
;
|
||||
|
||||
|
||||
|
@ -5,6 +5,7 @@ package net.mamoe.mirai.message.internal
|
||||
import kotlinx.io.core.*
|
||||
import net.mamoe.mirai.message.*
|
||||
import net.mamoe.mirai.utils.io.*
|
||||
import net.mamoe.mirai.utils.unzip
|
||||
|
||||
internal fun IoBuffer.parseMessageFace(): Face {
|
||||
//00 01 AF 0B 00 08 00 01 00 04 52 CC F5 D0 FF 00 02 14 F0
|
||||
@ -53,6 +54,40 @@ internal fun IoBuffer.parseMessageImage0x06(): Image {
|
||||
//return Image("{${readString(length)}}.$suffix")
|
||||
}
|
||||
|
||||
internal fun IoBuffer.parseMessageXML(): XMLMessage {
|
||||
discardExact(1)
|
||||
discardExact(readUShort())
|
||||
discardExact(1)
|
||||
/*
|
||||
网易云音乐分享
|
||||
19
|
||||
[01 BB]
|
||||
01
|
||||
[01 B8] 9A 03 B4 03 0A B1 03 01 78 9C 6D 51 CB 8A 14 31 14 FD 95 21 2B 85 A6 AA D2 F5 EA 34 88 B8 92 41 DD F9 58 88 34 31 95 2A E3 74 25 21 8F 19 A6 87 DE 54 83 C8 AC 1C 74 E1 6E 36 EE 86 01 C1 8D D3 20 7E 4C B5 0E FE 85 37 D5 4E 83 28 59 84 7B EE C9 B9 E7 9E 9C 20 AA 35 9A 22 A6 DA C8 71 C9 B8 74 91 75 C6 33 D7 DA 06 8D 00 97 B5 68 D0 F4 04 51 EF 94 15 0B 8E A6 D0 E6 D0 71 A2 85 02 E7 65 91 25 05 C1 78 84 6A 65 8E A8 A9 6E 18 4E 1D 70 09 DA A4 CE D3 62 5C BE 24 78 4C 38 AD 6B 56 67 39 CB 26 39 A1 09 61 A4 A4 30 C6 1D 6B D0 42 52 99 96 CE D1 72 84 2A 6E 19 00 BF CE BF 6C AE DE 01 A1 E5 8E 06 17 AD B7 82 0D 76 60 BE 0A EA D0 A4 B2 32 4A 54 33 7D D0 CC 24 0D AE 06 54 EB D9 56 17 0F 85 00 63 38 49 32 92 27 93 7C 37 E1 81 58 78 49 F7 EE ED C7 9B AF 97 D7 1F 3E F7 AB 4F 7D 77 D5 77 DF FB EE 02 44 5E FB 56 3F 31 73 20 BE 72 4E 4F E3 78 30 10 E1 22 8D 20 B2 D8 2A D9 C4 38 9D A4 24 4B 49 3A 8E EF 7A CB 8D A8 EE A4 E3 2C 29 8B 34 29 83 F5 F0 E2 2F 0D 6F E6 11 93 71 4E 26 CF 16 4F 1F 03 45 1B 7E 28 F8 D1 BF 8C E3 E6 7E FA B0 05 86 55 DE 30 FE C8 36 FB B0 05 4A 76 C8 4C B0 9B 14 FE 00 7E 98 14 32 A5 F0 6F E8 FA DB D9 CF 8F EF 37 EB B3 5D 94 4E B8 79 88 A8 EF 2E FB 6E DD AF 4E FB D5 F9 DE 2D A6 0E B9 B9 8D 96 CB E0 46 B5 DA 01 E3 F9 8F B7 6F 36 EB 8B 17 FF 65 8E 10 5C C1 4B 14 0E 0E F5 76 85 ED 17 2D 7F 03 2B B9 D5 0A
|
||||
01
|
||||
[00 8B]
|
||||
01
|
||||
[00 88] 5B E5 88 86 E4 BA AB 5D E3 82 AD E3 82 BA E3 83 8A E3 83 9F 20 28 63 6F 76 65 72 29 0A 4B 69 7A 75 6E 61 20 41 49 2F E4 B8 AD E7 94 B0 E3 83 A4 E3 82 B9 E3 82 BF E3 82 AB 0A 68 74 74 70 3A 2F 2F 6D 75 73 69 63 2E 31 36 33 2E 63 6F 6D 2F 73 6F 6E 67 2F 31 33 38 33 39 34 33 39 33 32 2F 3F 75 73 65 72 69 64 3D 33 32 34 30 37 36 33 30 37 0A E6 9D A5 E8 87 AA 3A 20 E7 BD 91 E6 98 93 E4 BA 91 E9 9F B3 E4 B9 90
|
||||
|
||||
19
|
||||
[00 41]
|
||||
01
|
||||
[00 3E] AA 02 3B 08 00 50 03 60 00 68 00 88 01 00 9A 01 2D 08 09 20 CB 50 78 00 A0 01 81 DC 01 C8 01 00 F0 01 00 F8 01 00 90 02 00 98 03 00 A0 03 20 B0 03 00 C0 03 00 D0 03 00 E8 03 00 90 04 00
|
||||
0E
|
||||
[00 0E]
|
||||
01
|
||||
[00 04] 00 00 00 09
|
||||
0A
|
||||
[00 04] 00 00 00 00
|
||||
12
|
||||
[00 25]
|
||||
05 00 04 00 00 00 03 08 00 04 00 00 00 04 01 00
|
||||
[09] 48 69 6D 31 38 38 6D 6F 65
|
||||
03 00 01 01 04 00 04 00 00 00 08
|
||||
|
||||
*/
|
||||
return XMLMessage(readBytes().unzip().encodeToString())
|
||||
}
|
||||
|
||||
//00 1B filenameLength
|
||||
// 43 37 46 29 5F 34 32 34 4E 33 55 37 7B 4C 47 36 7D 4F 25 5A 51 58 51 2E 6A 70 67 get suffix
|
||||
@ -147,23 +182,7 @@ internal fun ByteReadPacket.readMessage(): Message? {
|
||||
*
|
||||
* 19 00 42 01 00 3F AA 02 3C 08 00 50 03 60 00 68 00 88 01 00 9A 01 2E 08 09 20 BF 50 78 00 A0 01 81 DC 01 C8 01 00 F0 01 00 F8 01 00 90 02 00 98 03 00 A0 03 20 B0 03 00 C0 03 00 D0 03 00 E8 03 00 90 04 80 0B 0E 00 0E 01 00 04 00 00 00 09 0A 00 04 00 00 00 00 12 00 25 05 00 04 00 00 00 01 08 00 04 00 00 00 01 01 00 09 48 69 6D 31 38 38 6D 6F 65 03 00 01 04 04 00 04 00 00 00 10
|
||||
*/
|
||||
|
||||
|
||||
0x14 -> {//长文本的后一部分? 总长度 0x0175=373, body长度=0x016B=363
|
||||
//14 01 75 01 01 6B 01 78 9C CD 92 4D 4F C2 30 18 C7 EF 7E 8A A6 1E C9 64 83 B1 CD A4 1B E1 4D 19 8A C6 20 11 BC 98 39 3A A8 EE C5 74 1D 20 37 6E 46 0F C6 83 37 8D 31 D1 83 89 51 4F DE F8 38 4C 3E 86 1D 62 3C 7A D4 7F 93 26 7D DA 7F 9F A7 BF A7 28 3F F4 5C D0 C7 34 24 81 AF 43 69 45 84 00 FB 76 D0 21 7E 57 87 11 73 04 0D E6 8D 25 C0 85 BC B0 0B 0E 29 C1 8E 0E 57 FE B9 20 F0 0E 1C E2 E2 2D CB C3 3A D4 A4 D5 72 A9 58 58 13 24 AD A4 0A B2 22 E5 84 42 59 91 85 9C 52 C8 2A 62 46 14 65 59 FD 76 34 C8 88 3B 38 05 CB 66 73 24 7D 82 07 F5 C8 65 A4 1E 76 21 70 5C 8B 73 C9 42 10 62 DA 27 36 36 CB 7C 95 4B CC 14 87 A4 A3 C3 AA B4 CE 82 63 B5 46 54 8D A4 EC F6 20 F4 68 D8 21 C5 ED 7D B5 B9 A1 0D 46 4D 33 E5 8F 86 47 AD DA 6E 73 2F D3 3B 91 2B 55 53 A9 6C B6 76 AC 96 DD 20 38 DB 36 21 30 00 22 0C 7B C0 B5 4E 83 88 F1 9E 40 1E 61 84 B9 D8 00 7F CD F5 37 01 94 5E 54 0A 50 8F 1A 28 CD A7 45 F1 C0 0E DC 80 EA 70 59 13 93 C1 1F 15 DF 3D 7E DC 5C 48 F1 ED FD 6C F2 3C BD BC 8A DF CF E2 F1 2B F8 B9 03 A5 13 10 06 0A 83 88 DA 18 F8 F3 66 CE C6 E7 D3 87 A7 D9 CB DB 74 72 0D 79 86 AF CD E4 30 FF 9F C6 27 23 A2 C1 36 02 00 04 00 00 00 23 0E 00 07 01 00 04 00 00 00 09
|
||||
|
||||
discardExact(1)
|
||||
val value = readUShortLVByteArray()
|
||||
println(value.size)
|
||||
println("0x14的未知压缩的data=" + value.toUHexString())
|
||||
//todo 未知压缩算法
|
||||
|
||||
return PlainText("")
|
||||
|
||||
//后面似乎还有一节?
|
||||
//discardExact(7)//02 00 04 00 00 00 23
|
||||
//return PlainText(value.toUHexString())
|
||||
}
|
||||
0x14 -> sectionData.parseMessageXML()
|
||||
|
||||
0x0E -> {
|
||||
null
|
||||
@ -180,7 +199,7 @@ internal fun ByteReadPacket.readMessage(): Message? {
|
||||
}
|
||||
}
|
||||
|
||||
fun ByteReadPacket.readMessageChain(): MessageChain {
|
||||
internal fun ByteReadPacket.readMessageChain(): MessageChain {
|
||||
val chain = MessageChain()
|
||||
do {
|
||||
if (this.remaining == 0L) {
|
||||
@ -190,10 +209,18 @@ fun ByteReadPacket.readMessageChain(): MessageChain {
|
||||
return chain
|
||||
}
|
||||
|
||||
fun MessageChain.toPacket(): ByteReadPacket = buildPacket {
|
||||
internal fun MessageChain.toPacket(): ByteReadPacket = buildPacket {
|
||||
this@toPacket.forEach { message ->
|
||||
writePacket(with(message) {
|
||||
when (this) {
|
||||
is XMLMessage -> buildPacket {
|
||||
writeUByte(MessageType.XML.value)
|
||||
writeShortLVPacket {
|
||||
writeByte(0x01)
|
||||
//writeUByte()
|
||||
}
|
||||
}
|
||||
|
||||
is Face -> buildPacket {
|
||||
writeUByte(MessageType.FACE.value)
|
||||
|
||||
|
@ -4,13 +4,13 @@ import kotlinx.coroutines.CancellationException
|
||||
import kotlinx.coroutines.CompletableJob
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.network.protocol.tim.handler.DataPacketSocketAdapter
|
||||
import net.mamoe.mirai.network.protocol.tim.handler.TemporaryPacketHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.OutgoingPacket
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.Packet
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.HeartbeatPacket
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.LoginResult
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.RequestSKeyPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.handler.DataPacketSocketAdapter
|
||||
import net.mamoe.mirai.network.protocol.timpc.handler.TemporaryPacketHandler
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.OutgoingPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.Packet
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.HeartbeatPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.RequestSKeyPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.LoginResult
|
||||
import net.mamoe.mirai.utils.MiraiInternalAPI
|
||||
import net.mamoe.mirai.utils.io.PlatformDatagramChannel
|
||||
|
||||
|
@ -12,13 +12,13 @@ import net.mamoe.mirai.contact.QQ
|
||||
import net.mamoe.mirai.message.Image
|
||||
import net.mamoe.mirai.message.ImageId0x03
|
||||
import net.mamoe.mirai.message.ImageId0x06
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMBotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.handler.DataPacketSocketAdapter
|
||||
import net.mamoe.mirai.network.protocol.tim.handler.TemporaryPacketHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.OutgoingPacket
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.Packet
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.SessionKey
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMBotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.timpc.handler.DataPacketSocketAdapter
|
||||
import net.mamoe.mirai.network.protocol.timpc.handler.TemporaryPacketHandler
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.OutgoingPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.Packet
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.SessionKey
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.*
|
||||
import net.mamoe.mirai.utils.MiraiInternalAPI
|
||||
import net.mamoe.mirai.utils.assertUnreachable
|
||||
import net.mamoe.mirai.utils.getGTK
|
||||
@ -120,7 +120,7 @@ abstract class BotSessionBase internal constructor(
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
* @sample net.mamoe.mirai.network.protocol.tim.packet.action.uploadImage
|
||||
* @sample net.mamoe.mirai.network.protocol.timpc.packet.action.uploadImage
|
||||
*
|
||||
* @param checkSequence 是否筛选 `sequenceId`, 即是否筛选发出的包对应的返回包.
|
||||
* @param P 期待的包
|
||||
@ -191,8 +191,8 @@ internal inline val Bot.sessionKey: SessionKey get() = this.session.sessionKey
|
||||
internal suspend inline fun BotSession.sendPacket(packet: OutgoingPacket) = this.bot.sendPacket(packet)
|
||||
|
||||
|
||||
suspend inline fun BotSession.getQQ(@PositiveNumbers number: Long): QQ = this.bot.getQQ(number)
|
||||
suspend inline fun BotSession.getQQ(number: UInt): QQ = this.bot.getQQ(number)
|
||||
inline fun BotSession.getQQ(@PositiveNumbers number: Long): QQ = this.bot.getQQ(number)
|
||||
inline fun BotSession.getQQ(number: UInt): QQ = this.bot.getQQ(number)
|
||||
|
||||
suspend inline fun BotSession.getGroup(id: UInt): Group = this.bot.getGroup(id)
|
||||
suspend inline fun BotSession.getGroup(@PositiveNumbers id: Long): Group = this.bot.getGroup(id)
|
||||
|
@ -1,4 +0,0 @@
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.event
|
||||
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim
|
||||
package net.mamoe.mirai.network.protocol.timpc
|
||||
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.sync.Mutex
|
||||
@ -15,10 +15,10 @@ import net.mamoe.mirai.event.events.PacketSentEvent
|
||||
import net.mamoe.mirai.event.events.ServerPacketReceivedEvent
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.BotSession
|
||||
import net.mamoe.mirai.network.protocol.tim.handler.DataPacketSocketAdapter
|
||||
import net.mamoe.mirai.network.protocol.tim.handler.TemporaryPacketHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.*
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.handler.DataPacketSocketAdapter
|
||||
import net.mamoe.mirai.network.protocol.timpc.handler.TemporaryPacketHandler
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.*
|
||||
import net.mamoe.mirai.qqAccount
|
||||
import net.mamoe.mirai.utils.OnlineStatus
|
||||
import net.mamoe.mirai.utils.currentBotConfiguration
|
@ -1,6 +1,6 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim
|
||||
package net.mamoe.mirai.network.protocol.timpc
|
||||
|
||||
import net.mamoe.mirai.utils.io.hexToBytes
|
||||
import net.mamoe.mirai.utils.solveIpAddress
|
@ -1,13 +1,13 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.handler
|
||||
package net.mamoe.mirai.network.protocol.timpc.handler
|
||||
|
||||
import kotlinx.io.core.Closeable
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.event.events.ServerPacketReceivedEvent
|
||||
import net.mamoe.mirai.network.BotSession
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMBotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.OutgoingPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMBotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.OutgoingPacket
|
||||
import net.mamoe.mirai.utils.MiraiInternalAPI
|
||||
import net.mamoe.mirai.utils.io.PlatformDatagramChannel
|
||||
|
@ -1,12 +1,12 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.handler
|
||||
package net.mamoe.mirai.network.protocol.timpc.handler
|
||||
|
||||
import kotlinx.coroutines.CompletableDeferred
|
||||
import kotlinx.coroutines.withContext
|
||||
import net.mamoe.mirai.network.BotSession
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.OutgoingPacket
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.Packet
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.OutgoingPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.Packet
|
||||
import net.mamoe.mirai.network.sendPacket
|
||||
import kotlin.coroutines.CoroutineContext
|
||||
import kotlin.reflect.KClass
|
@ -1,6 +1,6 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE", "unused")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet
|
||||
|
||||
/**
|
||||
* 包的最后一次修改时间, 和分析时使用的 TIM 版本
|
@ -1,4 +1,4 @@
|
||||
package net.mamoe.mirai.network.protocol.tim.packet
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.IoBuffer
|
@ -1,12 +1,12 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE", "EXPERIMENTAL_UNSIGNED_LITERALS", "unused", "MemberVisibilityCanBePrivate")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet
|
||||
|
||||
import kotlinx.io.core.*
|
||||
import kotlinx.serialization.SerializationStrategy
|
||||
import kotlinx.serialization.protobuf.ProtoBuf
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMProtocol
|
||||
import net.mamoe.mirai.utils.io.encryptAndWrite
|
||||
import net.mamoe.mirai.utils.io.hexToBytes
|
||||
import net.mamoe.mirai.utils.io.writeQQ
|
@ -1,4 +1,4 @@
|
||||
package net.mamoe.mirai.network.protocol.tim.packet
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.readBytes
|
@ -1,6 +1,6 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE", "EXPERIMENTAL_UNSIGNED_LITERALS")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet
|
||||
|
||||
import kotlinx.atomicfu.atomic
|
||||
import kotlinx.io.core.ByteReadPacket
|
@ -1,11 +1,11 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE", "EXPERIMENTAL_UNSIGNED_LITERALS")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet
|
||||
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.*
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.event.EventPacketFactory
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.event.FriendOnlineStatusChangedPacket
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.event.EventPacketFactory
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.event.FriendOnlineStatusChangedPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.*
|
||||
import net.mamoe.mirai.utils.io.toUHexString
|
||||
|
||||
|
@ -1,13 +1,13 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE", "EXPERIMENTAL_UNSIGNED_LITERALS")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.action
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.action
|
||||
|
||||
import kotlinx.io.core.*
|
||||
import net.mamoe.mirai.contact.QQ
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.*
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.event.EventPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.event.EventPacket
|
||||
import net.mamoe.mirai.utils.io.*
|
||||
import net.mamoe.mirai.withSession
|
||||
|
@ -1,6 +1,6 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE", "EXPERIMENTAL_UNSIGNED_LITERALS")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.action
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.action
|
||||
|
||||
import kotlinx.io.charsets.Charsets
|
||||
import kotlinx.io.core.*
|
||||
@ -9,9 +9,9 @@ import net.mamoe.mirai.message.ImageId
|
||||
import net.mamoe.mirai.message.ImageId0x06
|
||||
import net.mamoe.mirai.message.requireLength
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.*
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.event.EventPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.event.EventPacket
|
||||
import net.mamoe.mirai.network.qqAccount
|
||||
import net.mamoe.mirai.qqAccount
|
||||
import net.mamoe.mirai.utils.ExternalImage
|
@ -1,12 +1,12 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.action
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.action
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.Packet
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.PacketId
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.SessionPacketFactory
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.Packet
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.PacketId
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.SessionPacketFactory
|
||||
|
||||
|
||||
// 0001
|
@ -1,13 +1,13 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE", "EXPERIMENTAL_UNSIGNED_LITERALS")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.action
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.action
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.writeFully
|
||||
import kotlinx.io.core.writeUByte
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.*
|
||||
import net.mamoe.mirai.utils.io.encryptAndWrite
|
||||
import net.mamoe.mirai.utils.io.writeQQ
|
||||
|
@ -1,6 +1,6 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE", "EXPERIMENTAL_UNSIGNED_LITERALS", "RUNTIME_ANNOTATION_NOT_SUPPORTED")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.action
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.action
|
||||
|
||||
import kotlinx.coroutines.withContext
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
@ -14,8 +14,8 @@ import net.mamoe.mirai.message.ImageId
|
||||
import net.mamoe.mirai.message.ImageId0x03
|
||||
import net.mamoe.mirai.message.requireLength
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.*
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.event.EventPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.event.EventPacket
|
||||
import net.mamoe.mirai.qqAccount
|
||||
import net.mamoe.mirai.utils.ExternalImage
|
||||
import net.mamoe.mirai.utils.Http
|
||||
@ -113,6 +113,28 @@ internal object GroupImagePacket : SessionPacketFactory<GroupImageResponse>() {
|
||||
@SerialId(2) val unknown4: Byte = 1,
|
||||
@SerialId(3) var body: Body
|
||||
) {
|
||||
/*
|
||||
"uint64_group_code"
|
||||
"uint64_dst_uin"
|
||||
"uint64_fileid"
|
||||
"bytes_file_md5"
|
||||
"uint32_url_flag"
|
||||
"uint32_url_type"
|
||||
"uint32_req_term"
|
||||
"uint32_req_platform_type"
|
||||
"uint32_inner_ip"
|
||||
"uint32_bu_type"
|
||||
"bytes_build_ver"
|
||||
"uint64_file_id"
|
||||
"uint64_file_size"
|
||||
"uint32_original_pic"
|
||||
"uint32_retry_req"
|
||||
"uint32_file_height"
|
||||
"uint32_file_width"
|
||||
"uint32_pic_type"
|
||||
"uint32_pic_up_timestamp"
|
||||
"uint32_req_transfer_type"
|
||||
*/
|
||||
@Serializable
|
||||
internal class Body(
|
||||
@SerialId(1) val group: Int,
|
@ -1,6 +1,6 @@
|
||||
@file:Suppress("EXPERIMENTAL_UNSIGNED_LITERALS", "EXPERIMENTAL_API_USAGE")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.action
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.action
|
||||
|
||||
import kotlinx.io.core.*
|
||||
import net.mamoe.mirai.contact.*
|
||||
@ -8,8 +8,8 @@ import net.mamoe.mirai.contact.internal.Member
|
||||
import net.mamoe.mirai.message.MessageChain
|
||||
import net.mamoe.mirai.message.internal.toPacket
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.*
|
||||
import net.mamoe.mirai.utils.LockFreeLinkedList
|
||||
import net.mamoe.mirai.utils.MiraiInternalAPI
|
||||
import net.mamoe.mirai.utils.io.*
|
@ -1,6 +1,6 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.action
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.action
|
||||
|
||||
import io.ktor.client.HttpClient
|
||||
import io.ktor.client.request.post
|
@ -1,6 +1,6 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE", "EXPERIMENTAL_UNSIGNED_LITERALS", "unused", "NO_REFLECTION_IN_CLASS_PATH")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.action
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.action
|
||||
|
||||
import io.ktor.client.request.get
|
||||
import kotlinx.io.core.ByteReadPacket
|
@ -1,13 +1,13 @@
|
||||
@file:Suppress("EXPERIMENTAL_UNSIGNED_LITERALS", "EXPERIMENTAL_API_USAGE")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.action
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.action
|
||||
|
||||
import io.ktor.util.date.GMTDate
|
||||
import kotlinx.io.core.*
|
||||
import net.mamoe.mirai.contact.data.Gender
|
||||
import net.mamoe.mirai.contact.data.Profile
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.*
|
||||
import net.mamoe.mirai.utils.io.*
|
||||
|
||||
inline class AvatarLink(val value: String) : Packet
|
@ -1,11 +1,11 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.action
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.action
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.discardExact
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.*
|
||||
import net.mamoe.mirai.utils.io.readUShortLVString
|
||||
import net.mamoe.mirai.utils.io.writeQQ
|
||||
import net.mamoe.mirai.utils.io.writeZero
|
@ -1,11 +1,11 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.action
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.action
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.*
|
||||
import net.mamoe.mirai.utils.io.writeZero
|
||||
|
||||
class FriendList : Packet
|
@ -1,13 +1,13 @@
|
||||
@file:Suppress("EXPERIMENTAL_UNSIGNED_LITERALS", "EXPERIMENTAL_API_USAGE")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.action
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.action
|
||||
|
||||
import kotlinx.io.core.*
|
||||
import net.mamoe.mirai.message.MessageChain
|
||||
import net.mamoe.mirai.message.internal.toPacket
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.*
|
||||
import net.mamoe.mirai.utils.io.*
|
||||
import net.mamoe.mirai.utils.md5
|
||||
|
@ -1,12 +1,12 @@
|
||||
@file:Suppress("EXPERIMENTAL_UNSIGNED_LITERALS")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.event
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.event
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.discardExact
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.Packet
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.PacketVersion
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.Packet
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.PacketVersion
|
||||
import net.mamoe.mirai.utils.io.readBoolean
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE", "EXPERIMENTAL_UNSIGNED_LITERALS")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.event
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.event
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.discardExact
|
@ -1,7 +1,7 @@
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.event
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.event
|
||||
|
||||
import net.mamoe.mirai.event.Subscribable
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.Packet
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.Packet
|
||||
|
||||
/**
|
||||
* 事件包. 可被监听.
|
@ -1,12 +1,12 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE", "EXPERIMENTAL_UNSIGNED_LITERALS")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.event
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.event
|
||||
|
||||
import kotlinx.io.core.*
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMBotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMBotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.*
|
||||
import net.mamoe.mirai.network.sessionKey
|
||||
import net.mamoe.mirai.qqAccount
|
||||
import net.mamoe.mirai.utils.io.readIoBuffer
|
@ -1,14 +1,14 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE", "EXPERIMENTAL_UNSIGNED_LITERALS")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.event
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.event
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.discardExact
|
||||
import kotlinx.io.core.readUInt
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.contact.QQ
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.PacketVersion
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.AddFriendPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.PacketVersion
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.AddFriendPacket
|
||||
import net.mamoe.mirai.network.qqAccount
|
||||
import net.mamoe.mirai.utils.io.readUShortLVString
|
||||
import net.mamoe.mirai.withSession
|
@ -1,12 +1,12 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE", "EXPERIMENTAL_UNSIGNED_LITERALS")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.event
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.event
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.discardExact
|
||||
import kotlinx.io.core.readUInt
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.PacketVersion
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.PacketVersion
|
||||
|
||||
|
||||
data class FriendConversationInitialize(
|
@ -1,6 +1,6 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE", "EXPERIMENTAL_UNSIGNED_LITERALS", "JoinDeclarationAndAssignment")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.event
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.event
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.discardExact
|
||||
@ -8,9 +8,9 @@ import kotlinx.io.core.readUByte
|
||||
import kotlinx.io.core.readUInt
|
||||
import net.mamoe.mirai.contact.QQ
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.KnownPacketId
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.PacketId
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.SessionPacketFactory
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.KnownPacketId
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.PacketId
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.SessionPacketFactory
|
||||
import net.mamoe.mirai.utils.OnlineStatus
|
||||
|
||||
data class FriendStatusChanged(
|
@ -1,10 +1,10 @@
|
||||
@file:Suppress("EXPERIMENTAL_UNSIGNED_LITERALS")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.event
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.event
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.PacketVersion
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.PacketVersion
|
||||
import net.mamoe.mirai.utils.io.debugPrint
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE", "EXPERIMENTAL_UNSIGNED_LITERALS")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.event
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.event
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import net.mamoe.mirai.Bot
|
@ -1,6 +1,6 @@
|
||||
@file:Suppress("EXPERIMENTAL_UNSIGNED_LITERALS", "EXPERIMENTAL_API_USAGE", "unused", "MemberVisibilityCanBePrivate")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.event
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.event
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.readUInt
|
@ -1,6 +1,6 @@
|
||||
@file:Suppress("EXPERIMENTAL_UNSIGNED_LITERALS", "EXPERIMENTAL_API_USAGE")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.event
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.event
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.readUByte
|
@ -1,6 +1,6 @@
|
||||
@file:Suppress("EXPERIMENTAL_UNSIGNED_LITERALS", "EXPERIMENTAL_API_USAGE", "MemberVisibilityCanBePrivate")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.event
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.event
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.discardExact
|
@ -1,13 +1,13 @@
|
||||
@file:Suppress("EXPERIMENTAL_UNSIGNED_LITERALS", "EXPERIMENTAL_API_USAGE")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.event
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.event
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.discardExact
|
||||
import kotlinx.io.core.readUInt
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.Packet
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.PacketVersion
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.Packet
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.PacketVersion
|
||||
|
||||
|
||||
data class MemberPermissionChangePacket(
|
@ -1,6 +1,6 @@
|
||||
@file:Suppress("EXPERIMENTAL_UNSIGNED_LITERALS", "EXPERIMENTAL_API_USAGE")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.event
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.event
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.String
|
||||
@ -13,8 +13,8 @@ import net.mamoe.mirai.event.events.BotEvent
|
||||
import net.mamoe.mirai.getGroup
|
||||
import net.mamoe.mirai.message.*
|
||||
import net.mamoe.mirai.message.internal.readMessageChain
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.PacketVersion
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.ImageLink
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.PacketVersion
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.ImageLink
|
||||
import net.mamoe.mirai.utils.*
|
||||
import net.mamoe.mirai.utils.internal.coerceAtLeastOrFail
|
||||
import net.mamoe.mirai.utils.io.printTLVMap
|
@ -0,0 +1,4 @@
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.event
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.event
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.event
|
||||
|
||||
//来自 Android 给我的电脑发消息, ID 0211, 内容 "你好"
|
||||
//00 00 00 20 00 05 00 02 00 01 00 06 00 04 00 01 01 01 00 09 00 06 03 E9 20 02 EB 94 00 0A 00 04 01 00 00 00 00 00 00 54 00 00 00 3E 08 12 1A 16 08 07 10 91 04 18 DD F1 92 B7 07 20 83 76 38 DD F1 92 B7 07 50 04 42 21 08 DD F1 92 B7 07 10 DD F1 92 B7 07 18 01 20 07 40 DC 85 96 EE 05 48 DC 85 96 EE 05 50 FA AF FD 18 52 15 0A 06 08 01 10 00 50 01 1A 0B 08 E9 07 10 94 D7 8B 80 02 50 02 08 04 12 1D 08 E9 07 10 94 D7 8B 80 02 18 01 20 01 28 DD F1 92 B7 07 30 DD F1 92 B7 07 48 02 50 01 32 1B 08 80 80 B8 AE B5 02 10 01 18 00 20 01 2A 0C 0A 0A 08 01 12 06 E4 BD A0 E5 A5 BD
|
@ -1,4 +1,4 @@
|
||||
@file:Suppress("EXPERIMENTAL_UNSIGNED_LITERALS", "EXPERIMENTAL_API_USAGE")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.event
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.event
|
||||
|
@ -1,6 +1,6 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.event
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.event
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.readBytes
|
@ -1,11 +1,11 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE", "EXPERIMENTAL_UNSIGNED_LITERALS", "unused", "FunctionName")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.login
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.login
|
||||
|
||||
import kotlinx.io.core.*
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.*
|
||||
import net.mamoe.mirai.utils.io.*
|
||||
|
||||
internal object CaptchaKey : DecrypterByteArray, DecrypterType<CaptchaKey> {
|
@ -1,13 +1,13 @@
|
||||
@file:Suppress("EXPERIMENTAL_API_USAGE", "EXPERIMENTAL_UNSIGNED_LITERALS")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.login
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.login
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.writeFully
|
||||
import kotlinx.io.core.writeUByte
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.*
|
||||
import net.mamoe.mirai.utils.OnlineStatus
|
||||
import net.mamoe.mirai.utils.io.encryptAndWrite
|
||||
import net.mamoe.mirai.utils.io.writeHex
|
@ -1,13 +1,13 @@
|
||||
@file:Suppress("EXPERIMENTAL_UNSIGNED_LITERALS", "EXPERIMENTAL_API_USAGE")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.login
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.login
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.writeFully
|
||||
import net.mamoe.mirai.event.Subscribable
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.*
|
||||
import net.mamoe.mirai.utils.io.encryptAndWrite
|
||||
import net.mamoe.mirai.utils.io.writeHex
|
||||
import net.mamoe.mirai.utils.io.writeQQ
|
@ -1,8 +1,8 @@
|
||||
@file:Suppress("unused")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.login
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.login
|
||||
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.LoginResult.SUCCESS
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.LoginResult.SUCCESS
|
||||
import net.mamoe.mirai.utils.BotConfiguration
|
||||
import kotlin.contracts.ExperimentalContracts
|
||||
import kotlin.contracts.InvocationKind
|
@ -1,12 +1,12 @@
|
||||
@file:Suppress("EXPERIMENTAL_UNSIGNED_LITERALS", "EXPERIMENTAL_API_USAGE")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.login
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.login
|
||||
|
||||
import kotlinx.io.core.*
|
||||
import net.mamoe.mirai.contact.data.Gender
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.*
|
||||
import net.mamoe.mirai.utils.MiraiLogger
|
||||
import net.mamoe.mirai.utils.decryptBy
|
||||
import net.mamoe.mirai.utils.encryptBy
|
@ -1,14 +1,14 @@
|
||||
@file:Suppress("EXPERIMENTAL_UNSIGNED_LITERALS", "EXPERIMENTAL_API_USAGE", "FunctionName")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.login
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.login
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.discardExact
|
||||
import kotlinx.io.core.writeFully
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.BotSession
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.*
|
||||
import net.mamoe.mirai.network.qqAccount
|
||||
import net.mamoe.mirai.utils.io.*
|
||||
import net.mamoe.mirai.withSession
|
@ -1,11 +1,11 @@
|
||||
@file:Suppress("EXPERIMENTAL_UNSIGNED_LITERALS", "EXPERIMENTAL_API_USAGE")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.login
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.login
|
||||
|
||||
import kotlinx.io.core.*
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.*
|
||||
import net.mamoe.mirai.utils.io.*
|
||||
import net.mamoe.mirai.utils.localIpAddress
|
||||
|
@ -1,14 +1,14 @@
|
||||
@file:Suppress("EXPERIMENTAL_UNSIGNED_LITERALS", "EXPERIMENTAL_API_USAGE")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.login
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.login
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.discardExact
|
||||
import kotlinx.io.core.readBytes
|
||||
import kotlinx.io.core.writeFully
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.*
|
||||
import net.mamoe.mirai.utils.io.*
|
||||
|
||||
internal object TouchKey : DecrypterByteArray, DecrypterType<TouchKey> {
|
@ -2,7 +2,7 @@ package net.mamoe.mirai.utils
|
||||
|
||||
import kotlinx.io.core.IoBuffer
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.TouchPacket.TouchResponse
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.TouchPacket.TouchResponse
|
||||
import kotlin.coroutines.CoroutineContext
|
||||
import kotlin.coroutines.coroutineContext
|
||||
import kotlin.jvm.JvmStatic
|
||||
|
@ -8,7 +8,7 @@ import net.mamoe.mirai.contact.Contact
|
||||
import net.mamoe.mirai.contact.Group
|
||||
import net.mamoe.mirai.contact.QQ
|
||||
import net.mamoe.mirai.message.*
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.uploadImage
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.uploadImage
|
||||
import net.mamoe.mirai.utils.io.toUHexString
|
||||
|
||||
@Suppress("FunctionName")
|
||||
|
@ -8,7 +8,7 @@ import kotlin.jvm.JvmStatic
|
||||
* QQ 在线状态
|
||||
*
|
||||
* @author Him188moe
|
||||
* @see net.mamoe.mirai.network.protocol.tim.packet.login.ChangeOnlineStatusPacket
|
||||
* @see net.mamoe.mirai.network.protocol.timpc.packet.login.ChangeOnlineStatusPacket
|
||||
*/
|
||||
inline class OnlineStatus(
|
||||
inline val id: UByte
|
||||
|
@ -4,6 +4,7 @@ package net.mamoe.mirai.utils
|
||||
|
||||
import io.ktor.client.HttpClient
|
||||
import io.ktor.util.date.GMTDate
|
||||
import kotlinx.io.core.IoBuffer
|
||||
|
||||
/**
|
||||
* 时间戳
|
||||
@ -21,6 +22,8 @@ expect val deviceName: String
|
||||
*/
|
||||
expect fun crc32(key: ByteArray): Int
|
||||
|
||||
expect fun ByteArray.unzip(): ByteArray
|
||||
|
||||
/**
|
||||
* MD5 算法
|
||||
*
|
||||
|
@ -3,8 +3,8 @@ package net.mamoe.mirai.utils
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.IoBuffer
|
||||
import kotlinx.io.pool.useInstance
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.Decrypter
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.DecrypterByteArray
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.Decrypter
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.DecrypterByteArray
|
||||
import net.mamoe.mirai.utils.io.ByteArrayPool
|
||||
import net.mamoe.mirai.utils.io.toByteArray
|
||||
import net.mamoe.mirai.utils.io.toUHexString
|
||||
|
@ -3,7 +3,7 @@
|
||||
package net.mamoe.mirai.utils.internal
|
||||
|
||||
import kotlinx.io.core.toByteArray
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMProtocol
|
||||
import net.mamoe.mirai.utils.MiraiInternalAPI
|
||||
import net.mamoe.mirai.utils.io.hexToBytes
|
||||
import net.mamoe.mirai.utils.io.read
|
||||
|
@ -8,9 +8,9 @@ import kotlinx.serialization.SerializationStrategy
|
||||
import kotlinx.serialization.protobuf.ProtoBuf
|
||||
import net.mamoe.mirai.contact.GroupId
|
||||
import net.mamoe.mirai.contact.GroupInternalId
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.DecrypterByteArray
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.PrivateKey
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.DecrypterByteArray
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.PrivateKey
|
||||
import net.mamoe.mirai.utils.*
|
||||
import net.mamoe.mirai.utils.internal.coerceAtMostOrFail
|
||||
import kotlin.random.Random
|
||||
|
@ -6,7 +6,7 @@ import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import kotlinx.io.core.Input
|
||||
import net.mamoe.mirai.contact.Contact
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.OverFileSizeMaxException
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.OverFileSizeMaxException
|
||||
import net.mamoe.mirai.utils.sendTo
|
||||
import net.mamoe.mirai.utils.toExternalImage
|
||||
import net.mamoe.mirai.utils.upload
|
||||
|
@ -10,7 +10,7 @@ import kotlinx.io.streams.asOutput
|
||||
import kotlinx.io.streams.inputStream
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.message.Image
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.SessionKey
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.SessionKey
|
||||
import net.mamoe.mirai.utils.ExternalImage
|
||||
import net.mamoe.mirai.utils.MiraiInternalAPI
|
||||
import net.mamoe.mirai.utils.toExternalImage
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.mamoe.mirai.network.protocol.tim
|
||||
package net.mamoe.mirai.network.protocol.timpc
|
||||
|
||||
import kotlinx.coroutines.CoroutineDispatcher
|
||||
import kotlinx.coroutines.asCoroutineDispatcher
|
@ -1,6 +1,6 @@
|
||||
@file:Suppress("unused")
|
||||
|
||||
package net.mamoe.mirai.network.protocol.tim.packet.event
|
||||
package net.mamoe.mirai.network.protocol.timpc.packet.event
|
||||
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
@ -4,17 +4,17 @@ package net.mamoe.mirai.utils
|
||||
|
||||
import io.ktor.client.HttpClient
|
||||
import io.ktor.client.engine.cio.CIO
|
||||
import kotlinx.io.core.IoBuffer
|
||||
import kotlinx.io.core.Output
|
||||
import kotlinx.io.core.copyTo
|
||||
import kotlinx.io.core.readBytes
|
||||
import kotlinx.io.streams.asInput
|
||||
import kotlinx.io.streams.asOutput
|
||||
import java.io.DataInput
|
||||
import java.io.EOFException
|
||||
import java.io.InputStream
|
||||
import java.io.OutputStream
|
||||
import java.io.*
|
||||
import java.net.InetAddress
|
||||
import java.security.MessageDigest
|
||||
import java.util.zip.CRC32
|
||||
import java.util.zip.Inflater
|
||||
|
||||
actual val deviceName: String = InetAddress.getLocalHost().hostName
|
||||
|
||||
@ -54,4 +54,18 @@ actual fun solveIpAddress(hostname: String): String = InetAddress.getByName(host
|
||||
|
||||
actual fun localIpAddress(): String = InetAddress.getLocalHost().hostAddress
|
||||
|
||||
actual val Http: HttpClient get() = HttpClient(CIO)
|
||||
actual val Http: HttpClient get() = HttpClient(CIO)
|
||||
|
||||
actual fun ByteArray.unzip(): ByteArray {
|
||||
val inflater = Inflater()
|
||||
inflater.reset()
|
||||
val input = this
|
||||
val output = ByteArrayOutputStream()
|
||||
inflater.setInput(input)
|
||||
val buffer = ByteArray(128)
|
||||
while (!inflater.finished()) {
|
||||
output.write(buffer, 0, inflater.inflate(buffer))
|
||||
}
|
||||
inflater.end()
|
||||
return output.toByteArray()
|
||||
}
|
@ -8,7 +8,7 @@ import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.coroutines.withContext
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.login
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.LoginResult
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.LoginResult
|
||||
import java.util.*
|
||||
|
||||
/**
|
||||
|
@ -16,14 +16,14 @@ import mirai.test.packetdebugger.PacketDebugger.sessionKey
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.network.BotSession
|
||||
import net.mamoe.mirai.network.protocol.tim.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.tim.handler.DataPacketSocketAdapter
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.*
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.event.IgnoredEventPacket
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.CaptchaKey
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.LoginResult
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.ShareKey
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.TouchKey
|
||||
import net.mamoe.mirai.network.protocol.timpc.TIMProtocol
|
||||
import net.mamoe.mirai.network.protocol.timpc.handler.DataPacketSocketAdapter
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.*
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.event.IgnoredEventPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.CaptchaKey
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.LoginResult
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.ShareKey
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.TouchKey
|
||||
import net.mamoe.mirai.utils.DecryptionFailedException
|
||||
import net.mamoe.mirai.utils.decryptBy
|
||||
import net.mamoe.mirai.utils.io.*
|
||||
|
@ -3,9 +3,9 @@ package mirai.test.packetdebugger
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.discardExact
|
||||
import kotlinx.io.core.readUShort
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.PacketId
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.CaptchaPacket
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.matchPacketId
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.PacketId
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.CaptchaPacket
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.matchPacketId
|
||||
import kotlin.contracts.ExperimentalContracts
|
||||
import kotlin.contracts.InvocationKind
|
||||
import kotlin.contracts.contract
|
||||
|
@ -1,6 +1,6 @@
|
||||
package test
|
||||
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.LoginResult
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.LoginResult
|
||||
|
||||
@Suppress("RedundantSuspendModifier")
|
||||
suspend fun suspendPrintln(arg: String) = println(arg)
|
||||
|
@ -11,9 +11,9 @@ import net.mamoe.mirai.contact.QQ
|
||||
import net.mamoe.mirai.contact.sendMessage
|
||||
import net.mamoe.mirai.event.*
|
||||
import net.mamoe.mirai.message.*
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.action.uploadImage
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.event.FriendMessage
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.event.GroupMessage
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.action.uploadImage
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.event.FriendMessage
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.event.GroupMessage
|
||||
import net.mamoe.mirai.utils.suspendToExternalImage
|
||||
import java.io.File
|
||||
|
||||
|
@ -17,8 +17,8 @@ import net.mamoe.mirai.contact.sendMessage
|
||||
import net.mamoe.mirai.event.subscribeMessages
|
||||
import net.mamoe.mirai.login
|
||||
import net.mamoe.mirai.message.Image
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.event.GroupMessage
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.login.LoginResult
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.event.GroupMessage
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.login.LoginResult
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
class MiraiService : Service() {
|
||||
|
@ -7,19 +7,16 @@ import kotlinx.coroutines.GlobalScope
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.BotAccount
|
||||
import net.mamoe.mirai.addFriend
|
||||
import net.mamoe.mirai.alsoLogin
|
||||
import net.mamoe.mirai.*
|
||||
import net.mamoe.mirai.contact.MemberPermission
|
||||
import net.mamoe.mirai.event.Subscribable
|
||||
import net.mamoe.mirai.event.subscribeAlways
|
||||
import net.mamoe.mirai.event.subscribeGroupMessages
|
||||
import net.mamoe.mirai.event.subscribeMessages
|
||||
import net.mamoe.mirai.message.*
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.event.FriendMessage
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.event.GroupMessage
|
||||
import net.mamoe.mirai.network.protocol.tim.packet.event.ReceiveFriendAddRequestEvent
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.event.FriendMessage
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.event.GroupMessage
|
||||
import net.mamoe.mirai.network.protocol.timpc.packet.event.ReceiveFriendAddRequestEvent
|
||||
import java.io.File
|
||||
import java.util.*
|
||||
import javax.swing.filechooser.FileSystemView
|
||||
@ -94,6 +91,12 @@ suspend fun main() {
|
||||
sender
|
||||
}.queryProfile().toString().reply()
|
||||
}
|
||||
"grouplist" reply {
|
||||
|
||||
//"https://ssl.ptlogin2.qq.com/jump?pt_clientver=5509&pt_src=1&keyindex=9&clientuin=" + bot.qqAccount + "&clientkey=" + com.tick_tock.pctim.utils.Util.byte2HexString(
|
||||
// user.txprotocol.serviceTicketHttp
|
||||
//).replace(" ", "").toString() + "&u1=http%3A%2F%2Fqun.qq.com%2Fmember.html%23gid%3D168209441"
|
||||
}
|
||||
|
||||
"xml" reply {
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user