|
@@ -80,6 +80,7 @@ data class FlashImageDTO(
|
|
|
@Serializable
|
|
@Serializable
|
|
|
@SerialName("Voice")
|
|
@SerialName("Voice")
|
|
|
data class VoiceDTO(
|
|
data class VoiceDTO(
|
|
|
|
|
+ val voiceId: String? = null,
|
|
|
val url: String? = null,
|
|
val url: String? = null,
|
|
|
val path: String? = null
|
|
val path: String? = null
|
|
|
) : MessageDTO()
|
|
) : MessageDTO()
|
|
@@ -167,7 +168,7 @@ suspend fun Message.toDTO() = when (this) {
|
|
|
is PlainText -> PlainDTO(content)
|
|
is PlainText -> PlainDTO(content)
|
|
|
is Image -> ImageDTO(imageId, queryUrl())
|
|
is Image -> ImageDTO(imageId, queryUrl())
|
|
|
is FlashImage -> FlashImageDTO(image.imageId, image.queryUrl())
|
|
is FlashImage -> FlashImageDTO(image.imageId, image.queryUrl())
|
|
|
- is Voice -> VoiceDTO(url, fileName)
|
|
|
|
|
|
|
+ is Voice -> VoiceDTO(fileName, url)
|
|
|
is ServiceMessage -> XmlDTO(content)
|
|
is ServiceMessage -> XmlDTO(content)
|
|
|
is LightApp -> AppDTO(content)
|
|
is LightApp -> AppDTO(content)
|
|
|
is QuoteReply -> QuoteDTO(source.id, source.fromId, source.targetId,
|
|
is QuoteReply -> QuoteDTO(source.id, source.fromId, source.targetId,
|
|
@@ -213,9 +214,8 @@ suspend fun MessageDTO.toMessage(contact: Contact) = when (this) {
|
|
|
}?.flash()
|
|
}?.flash()
|
|
|
is VoiceDTO -> when {
|
|
is VoiceDTO -> when {
|
|
|
contact !is Group -> null
|
|
contact !is Group -> null
|
|
|
- !url.isNullOrBlank() -> contact.uploadVoice(withContext(Dispatchers.IO) { URL(url).openStream() }).also {
|
|
|
|
|
- println("${it.url} ${it.fileName} ${it.fileSize} ${it.md5}")
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ !voiceId.isNullOrBlank() -> Voice(voiceId, ByteArray(0), 0, "")
|
|
|
|
|
+ !url.isNullOrBlank() -> contact.uploadVoice(withContext(Dispatchers.IO) { URL(url).openStream() })
|
|
|
!path.isNullOrBlank() -> with(HttpApiPluginBase.voice(path)) {
|
|
!path.isNullOrBlank() -> with(HttpApiPluginBase.voice(path)) {
|
|
|
if (exists()) {
|
|
if (exists()) {
|
|
|
contact.uploadVoice(this.inputStream())
|
|
contact.uploadVoice(this.inputStream())
|
|
@@ -233,4 +233,3 @@ suspend fun MessageDTO.toMessage(contact: Contact) = when (this) {
|
|
|
is UnknownMessageDTO
|
|
is UnknownMessageDTO
|
|
|
-> null
|
|
-> null
|
|
|
}
|
|
}
|
|
|
-
|
|
|