mirror of
https://github.com/whitechi73/OpenShamrock.git
synced 2024-08-14 05:12:17 +00:00
Compare commits
3 Commits
a3171b3111
...
4dc83fdeba
Author | SHA1 | Date | |
---|---|---|---|
4dc83fdeba | |||
541422a43e | |||
cb7bf00e17 |
@ -983,6 +983,7 @@ internal object GroupSvc: BaseSvc() {
|
||||
operatorTime = obj["add_digest_time"].asLong,
|
||||
messageId = 0,
|
||||
messageSeq = msgSeq,
|
||||
realId = msgSeq,
|
||||
messageContent = obj["msg_content"] ?: EmptyJsonArray
|
||||
)
|
||||
val mapping = MessageHelper.getMsgMappingBySeq(MsgConstant.KCHATTYPEGROUP, groupId.toString(), msgSeq)
|
||||
|
@ -98,7 +98,7 @@ internal object MsgSvc : BaseSvc() {
|
||||
}
|
||||
continuation.invokeOnCancellation {
|
||||
continuation.resume(null)
|
||||
} // 貌似不会被取消,写了也没什么鸟用啊?
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -298,6 +298,7 @@ internal object MsgSvc : BaseSvc() {
|
||||
msgType = MessageHelper.obtainDetailTypeByMsgType(chatType),
|
||||
msgId = 0, // MessageHelper.generateMsgIdHash(chatType, msg.content!!.msgViaRandom), msgViaRandom 为空
|
||||
msgSeq = msg.contentHead!!.msgSeq ?: 0,
|
||||
realId = msg.contentHead!!.msgSeq ?: 0,
|
||||
sender = MessageSender(
|
||||
msg.msgHead?.peer ?: 0,
|
||||
msg.msgHead?.responseGrp?.memberCard?.ifEmpty { msg.msgHead?.forward?.friendName }
|
||||
|
@ -18,6 +18,8 @@ import moe.fuqiuluo.shamrock.helper.db.MessageDB
|
||||
import moe.fuqiuluo.shamrock.tools.asJsonObject
|
||||
import moe.fuqiuluo.shamrock.tools.asString
|
||||
import moe.fuqiuluo.shamrock.tools.hex2ByteArray
|
||||
import moe.fuqiuluo.shamrock.utils.PlatformUtils
|
||||
import moe.fuqiuluo.shamrock.utils.PlatformUtils.QQ_9_0_8_VER
|
||||
|
||||
internal typealias IMsgElementConverter = suspend (Int, String, String, MsgElement) -> MessageSegment
|
||||
|
||||
@ -167,6 +169,11 @@ internal object NtMsgElementConverter {
|
||||
val originalUrl = image.originImageUrl ?: ""
|
||||
LogCenter.log({ "receive image: $image" }, Level.DEBUG)
|
||||
|
||||
var storeId = 0
|
||||
if (PlatformUtils.getQQVersionCode() > QQ_9_0_8_VER) {
|
||||
storeId = image.storeID
|
||||
}
|
||||
|
||||
return MessageSegment(
|
||||
type = "image",
|
||||
data = hashMapOf(
|
||||
@ -192,6 +199,7 @@ internal object NtMsgElementConverter {
|
||||
sha = "",
|
||||
fileSize = image.fileSize.toULong(),
|
||||
peer = peerId,
|
||||
storeId = storeId
|
||||
)
|
||||
|
||||
MsgConstant.KCHATTYPEGUILD -> RichProtoSvc.getGuildPicDownUrl(
|
||||
|
@ -296,7 +296,12 @@ internal object NtV2RichMediaSvc: BaseSvc() {
|
||||
contact = contact,
|
||||
message = ArrayList(messages),
|
||||
uniseq = uniseq.qqMsgId
|
||||
) { _, _ -> }
|
||||
) { _, _ ->
|
||||
val kernelService = NTServiceFetcher.kernelService
|
||||
val sessionService = kernelService.wrapperSession
|
||||
val msgService = sessionService.msgService
|
||||
msgService.deleteMsg(contact, arrayListOf(uniseq.qqMsgId), null)
|
||||
}
|
||||
it.invokeOnCancellation {
|
||||
RichMediaUploadHandler.removeListener(uniseq.qqMsgId)
|
||||
}
|
||||
|
@ -208,9 +208,10 @@ internal object RichProtoSvc: BaseSvc() {
|
||||
sha: String = "",
|
||||
fileSize: ULong = 0uL,
|
||||
width: UInt = 0u,
|
||||
height: UInt = 0u
|
||||
height: UInt = 0u,
|
||||
storeId: Int = 0
|
||||
): String {
|
||||
val isNtServer = originalUrl.startsWith("/download")
|
||||
val isNtServer = storeId == 1 || originalUrl.startsWith("/download")
|
||||
val domain = if (isNtServer) MULTIMEDIA_DOMAIN else C2C_PIC
|
||||
if (originalUrl.isNotEmpty()) {
|
||||
if (fileId.isNotEmpty()) getNtPicRKey(
|
||||
@ -238,7 +239,7 @@ internal object RichProtoSvc: BaseSvc() {
|
||||
}
|
||||
return "https://$domain$originalUrl"
|
||||
}
|
||||
return "https://$domain/offpic_new/0/123-0-${md5}/0?term=2"
|
||||
return "https://$domain/offpic_new/0/0-0-${md5}/0?term=2"
|
||||
}
|
||||
|
||||
suspend fun getGuildPicDownUrl(
|
||||
|
@ -70,6 +70,7 @@ internal object GetHistoryMsg : IActionHandler() {
|
||||
msgType = MessageHelper.obtainDetailTypeByMsgType(msg.chatType),
|
||||
msgId = msgHash,
|
||||
msgSeq = msg.msgSeq,
|
||||
realId = msg.msgSeq,
|
||||
sender = MessageSender(
|
||||
msg.senderUin, msg.sendNickName, "unknown", 0, msg.senderUid, msg.senderUid
|
||||
),
|
||||
@ -92,6 +93,7 @@ internal object GetHistoryMsg : IActionHandler() {
|
||||
msgType = MessageHelper.obtainDetailTypeByMsgType(msg.chatType),
|
||||
msgId = MessageHelper.generateMsgIdHash(msg.chatType, msg.msgId),
|
||||
msgSeq = msg.msgSeq,
|
||||
realId = msg.msgSeq,
|
||||
sender = MessageSender(
|
||||
msg.senderUin, msg.sendNickName
|
||||
.ifEmpty { msg.sendMemberName }
|
||||
|
@ -30,6 +30,7 @@ internal object GetMsg: IActionHandler() {
|
||||
msgType = MessageHelper.obtainDetailTypeByMsgType(msg.chatType),
|
||||
msgId = msgHash,
|
||||
msgSeq = msg.msgSeq,
|
||||
realId = msg.msgSeq,
|
||||
sender = MessageSender(
|
||||
msg.senderUin, msg.sendNickName
|
||||
.ifEmpty { msg.sendMemberName }
|
||||
|
@ -21,6 +21,7 @@ internal data class MessageDetail(
|
||||
@SerialName("message_type") val msgType: String,
|
||||
@SerialName("message_id") val msgId: Int,
|
||||
@SerialName("message_seq") val msgSeq: Long,
|
||||
@SerialName("real_id") val realId: Long,
|
||||
@SerialName("sender") val sender: MessageSender,
|
||||
@SerialName("message") val message: List<Map<String, JsonElement>>,
|
||||
@SerialName("group_id") val groupId: Long = 0,
|
||||
@ -48,5 +49,6 @@ internal data class EssenceMessage(
|
||||
@SerialName("operator_time") val operatorTime: Long,
|
||||
@SerialName("message_id") var messageId: Int,
|
||||
@SerialName("message_seq") val messageSeq: Int,
|
||||
@SerialName("real_id") val realId: Int,
|
||||
@SerialName("message_content") val messageContent: JsonElement,
|
||||
)
|
Reference in New Issue
Block a user