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