Android Protocol - Chatting packet

This commit is contained in:
jiahua.liu 2020-01-23 20:01:35 +08:00
parent c8a68ab5b1
commit 4d67c2e475
4 changed files with 47 additions and 14 deletions

View File

@ -0,0 +1,25 @@
package net.mamoe.mirai.qqandroid.network.protocol.packet.chat
/**
* TROOP仍然不知道是什么
*/
enum class ChatType(val internalID: Int) {
FRIEND(2),//可以为任何数字
CONTACT(1006),
//未知,推测为"组"
TROOP(1),
TROOP_HCTOPIC(1026),
//坦白说
CONFESS_A(1033),
CONFESS_B(1034),
CM_GAME_TEMP(1036),
DISCUSSION(3000),
DEVICE_MSG(9501),
}

View File

@ -1,4 +1,4 @@
package net.mamoe.mirai.qqandroid.network.protocol.packet.image
package net.mamoe.mirai.qqandroid.network.protocol.packet.chat
import kotlinx.io.core.ByteReadPacket
import kotlinx.serialization.SerialId
@ -23,12 +23,25 @@ internal object ImagePacket : PacketFactory<ImagePacket.RequestImgUrlResponse>()
fun createCmd0x325Packet(req: ImgReq, networkType: Int = 5): Cmd0x352Packet {
if (req is UploadImgReq)
return Cmd0x352Packet(1, req, null, null, networkType)
return Cmd0x352Packet(
1,
req,
null,
null,
networkType
)
if (req is GetImgUrlReq)
return Cmd0x352Packet(2, null, req, null, networkType)
return Cmd0x352Packet(
2,
null,
req,
null,
networkType
)
error("Unknown ImgReq")
}
@Serializable
internal class Cmd0x352Packet(
@SerialId(1) val subCommand: Int, //2是GetImgUrlReq 1是UploadImgReq
@ -72,7 +85,7 @@ internal object ImagePacket : PacketFactory<ImagePacket.RequestImgUrlResponse>()
@SerialId(2) val dstUni: Int,
@SerialId(3) val fileResID: String,//UUID
/**
* UUID例子:
* UUID例子: 没有找到
*/
@SerialId(4) val urlFlag: Int = 1,
//5 unknown, 好像没用
@ -81,15 +94,7 @@ internal object ImagePacket : PacketFactory<ImagePacket.RequestImgUrlResponse>()
@SerialId(8) val requestPlatformType: Int = 9,//确定
@SerialId(9) val srcFileType: Int = 1,//2=ftn1=picplatform255
@SerialId(10) val innerIP: Int = 0,//确定
@SerialId(11) val addressBook: Int = 0,//chatType == 1006为1 我觉得发0没问题
/**
* chattype
* 1008时为Troop
* 1 时为?
* 9999时为
* 1036时为
* 1006时为
*/
@SerialId(11) val addressBook: Int = 0,//[ChatType.internalID]== 1006为1[为CONTACT时] 我觉得发0没问题
@SerialId(12) val buType: Int = 1,//确定
@SerialId(13) val buildVer: String = "8.2.0.1296",//版本号
@SerialId(14) val timestamp: Int = currentTimeSeconds.toInt(),//(pic_up_timestamp)

View File

@ -0,0 +1,2 @@
package net.mamoe.mirai.qqandroid.network.protocol.packet.chat

View File

@ -12,4 +12,5 @@ internal actual class QQAndroidBot actual constructor(
context: Context,
account: BotAccount,
configuration: BotConfiguration
) : QQAndroidBotBase(context, account, configuration)
) : QQAndroidBotBase(context, account, configuration)