Commit d51678fa authored by Him188's avatar Him188

Misc improvements

parent 474e5481
...@@ -12,8 +12,7 @@ ...@@ -12,8 +12,7 @@
package net.mamoe.mirai.qqandroid package net.mamoe.mirai.qqandroid
import io.ktor.client.request.* import io.ktor.client.request.*
import io.ktor.client.request.forms.MultiPartFormDataContent import io.ktor.client.request.forms.*
import io.ktor.client.request.forms.formData
import kotlinx.coroutines.CoroutineName import kotlinx.coroutines.CoroutineName
import kotlinx.coroutines.async import kotlinx.coroutines.async
import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.Mutex
...@@ -56,7 +55,6 @@ import kotlin.coroutines.CoroutineContext ...@@ -56,7 +55,6 @@ import kotlin.coroutines.CoroutineContext
import kotlin.jvm.JvmField import kotlin.jvm.JvmField
import kotlin.jvm.JvmSynthetic import kotlin.jvm.JvmSynthetic
import kotlin.math.absoluteValue import kotlin.math.absoluteValue
import kotlin.math.log
import kotlin.random.Random import kotlin.random.Random
import net.mamoe.mirai.qqandroid.network.protocol.data.jce.FriendInfo as JceFriendInfo import net.mamoe.mirai.qqandroid.network.protocol.data.jce.FriendInfo as JceFriendInfo
...@@ -793,8 +791,7 @@ internal abstract class QQAndroidBotBase constructor( ...@@ -793,8 +791,7 @@ internal abstract class QQAndroidBotBase constructor(
} }
} }
@ExperimentalStdlibApi @OptIn(ExperimentalStdlibApi::class)
@MiraiExperimentalAPI
@LowLevelAPI @LowLevelAPI
override suspend fun _lowLevelQueryGroupVoiceDownloadUrl( override suspend fun _lowLevelQueryGroupVoiceDownloadUrl(
md5: ByteArray, md5: ByteArray,
......
...@@ -230,14 +230,13 @@ internal fun MsgComm.Msg.toMessageChain( ...@@ -230,14 +230,13 @@ internal fun MsgComm.Msg.toMessageChain(
isTemp: Boolean = false isTemp: Boolean = false
): MessageChain { ): MessageChain {
val elements = this.msgBody.richText.elems val elements = this.msgBody.richText.elems
val ptt = this.msgBody.richText.ptt
val pptMsg = ptt?.run { val pptMsg = msgBody.richText.ptt?.run {
// when (fileType) { // when (fileType) {
// 4 -> Voice(String(fileName), fileMd5, fileSize.toLong(),String(downPara)) // 4 -> Voice(String(fileName), fileMd5, fileSize.toLong(),String(downPara))
// else -> null // else -> null
// } // }
Voice(String(fileName), fileMd5, fileSize.toLong(),String(downPara)) Voice(String(fileName), fileMd5, fileSize.toLong(), String(downPara))
} }
return buildMessageChain(elements.size + 1 + if (pptMsg == null) 0 else 1) { return buildMessageChain(elements.size + 1 + if (pptMsg == null) 0 else 1) {
......
...@@ -9,13 +9,9 @@ import net.mamoe.mirai.qqandroid.network.protocol.data.proto.Cmd0x388 ...@@ -9,13 +9,9 @@ import net.mamoe.mirai.qqandroid.network.protocol.data.proto.Cmd0x388
import net.mamoe.mirai.qqandroid.network.protocol.packet.OutgoingPacket import net.mamoe.mirai.qqandroid.network.protocol.packet.OutgoingPacket
import net.mamoe.mirai.qqandroid.network.protocol.packet.OutgoingPacketFactory import net.mamoe.mirai.qqandroid.network.protocol.packet.OutgoingPacketFactory
import net.mamoe.mirai.qqandroid.network.protocol.packet.buildOutgoingUniPacket import net.mamoe.mirai.qqandroid.network.protocol.packet.buildOutgoingUniPacket
import net.mamoe.mirai.qqandroid.network.protocol.packet.chat.image.ImgStore
import net.mamoe.mirai.qqandroid.network.protocol.packet.chat.image.getRandomString
import net.mamoe.mirai.qqandroid.utils._miraiContentToString
import net.mamoe.mirai.qqandroid.utils.encodeToString import net.mamoe.mirai.qqandroid.utils.encodeToString
import net.mamoe.mirai.qqandroid.utils.io.serialization.readProtoBuf import net.mamoe.mirai.qqandroid.utils.io.serialization.readProtoBuf
import net.mamoe.mirai.qqandroid.utils.io.serialization.writeProtoBuf import net.mamoe.mirai.qqandroid.utils.io.serialization.writeProtoBuf
import net.mamoe.mirai.qqandroid.utils.toUHexString
internal class PttStore { internal class PttStore {
object GroupPttUp : OutgoingPacketFactory<GroupPttUp.Response>("PttStore.GroupPttUp") { object GroupPttUp : OutgoingPacketFactory<GroupPttUp.Response>("PttStore.GroupPttUp") {
...@@ -35,15 +31,14 @@ internal class PttStore { ...@@ -35,15 +31,14 @@ internal class PttStore {
} }
} }
@OptIn(ExperimentalStdlibApi::class)
@ExperimentalStdlibApi
operator fun invoke( operator fun invoke(
client: QQAndroidClient, client: QQAndroidClient,
uin: Long, uin: Long,
groupCode: Long, groupCode: Long,
md5: ByteArray, md5: ByteArray,
size: Long, size: Long = 0,
voiceLength: Int, voiceLength: Int = 0,
fileId: Long = 0 fileId: Long = 0
): OutgoingPacket { ): OutgoingPacket {
val pack = Cmd0x388.ReqBody( val pack = Cmd0x388.ReqBody(
...@@ -96,26 +91,26 @@ internal class PttStore { ...@@ -96,26 +91,26 @@ internal class PttStore {
object GroupPttDown : OutgoingPacketFactory<GroupPttDown.Response>("PttStore.GroupPttDown") { object GroupPttDown : OutgoingPacketFactory<GroupPttDown.Response>("PttStore.GroupPttDown") {
sealed class Response() : Packet { sealed class Response : Packet {
class DownLoadInfo( class DownLoadInfo(
val downDomain: ByteArray, val downDomain: ByteArray,
val downPara:ByteArray, val downPara: ByteArray,
val strDomain:String, val strDomain: String,
val uint32DownIp:List<Int>, val uint32DownIp: List<Int>,
val uint32DownPort:List<Int> val uint32DownPort: List<Int>
) : GroupPttDown.Response() { ) : GroupPttDown.Response() {
override fun toString(): String { override fun toString(): String {
return "GroupPttDown(downPara=${downPara.encodeToString()},strDomain=$strDomain})" return "GroupPttDown(downPara=${downPara.encodeToString()},strDomain=$strDomain})"
} }
} }
} }
@ExperimentalStdlibApi @OptIn(ExperimentalStdlibApi::class)
operator fun invoke( operator fun invoke(
client: QQAndroidClient, client: QQAndroidClient,
groupCode: Long, groupCode: Long,
dstUin:Long, dstUin: Long,
md5: ByteArray md5: ByteArray
): OutgoingPacket = buildOutgoingUniPacket(client) { ): OutgoingPacket = buildOutgoingUniPacket(client) {
...@@ -144,7 +139,7 @@ internal class PttStore { ...@@ -144,7 +139,7 @@ internal class PttStore {
val resp0 = readProtoBuf(Cmd0x388.RspBody.serializer()) val resp0 = readProtoBuf(Cmd0x388.RspBody.serializer())
resp0.msgGetpttUrlRsp ?: error("cannot find `msgGetpttUrlRsp` from `Cmd0x388.RspBody`") resp0.msgGetpttUrlRsp ?: error("cannot find `msgGetpttUrlRsp` from `Cmd0x388.RspBody`")
val resp = resp0.msgGetpttUrlRsp.first() val resp = resp0.msgGetpttUrlRsp.first()
if (!resp.failMsg.contentEquals(EMPTY_BYTE_ARRAY)){ if (!resp.failMsg.contentEquals(EMPTY_BYTE_ARRAY)) {
throw IllegalStateException(resp.failMsg.encodeToString()) throw IllegalStateException(resp.failMsg.encodeToString())
} }
return Response.DownLoadInfo( return Response.DownLoadInfo(
......
package net.mamoe.mirai.message.data package net.mamoe.mirai.message.data
import net.mamoe.mirai.utils.MiraiExperimentalAPI import net.mamoe.mirai.utils.MiraiExperimentalAPI
import net.mamoe.mirai.utils.MiraiInternalAPI
import net.mamoe.mirai.utils.SinceMirai
/** /**
* 需要通过上传到服务器的消息,如语音、文件 * 需要通过上传到服务器的消息,如语音、文件
...@@ -22,8 +24,8 @@ public abstract class PttMessage : MessageContent { ...@@ -22,8 +24,8 @@ public abstract class PttMessage : MessageContent {
/** /**
* 语音消息, 目前只支持接收和转发 * 语音消息, 目前只支持接收和转发
*/ */
@MiraiExperimentalAPI @SinceMirai("1.2.0")
public class Voice( public class Voice @MiraiInternalAPI constructor(
public override val fileName: String, public override val fileName: String,
public override val md5: ByteArray, public override val md5: ByteArray,
public override val fileSize: Long, public override val fileSize: Long,
......
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