Shamrock: fix #149 again

This commit is contained in:
WhiteChi 2023-12-12 11:11:21 +08:00
parent dcb2b0a26f
commit 919c4a7d80
6 changed files with 33 additions and 34 deletions

View File

@ -279,9 +279,9 @@ object ShamrockConfig {
return preferences.getBoolean("enable_self_msg", false)
}
fun enableSyncMsg(ctx: Context): Boolean {
fun enableSyncMsgAsSentMsg(ctx: Context): Boolean {
val preferences = ctx.getSharedPreferences("config", 0)
return preferences.getBoolean("enable_sync_msg", false)
return preferences.getBoolean("enable_sync_msg_as_sent_msg", false)
}
fun setEnableSelfMsg(ctx: Context, v: Boolean) {
@ -289,9 +289,9 @@ object ShamrockConfig {
preferences.edit().putBoolean("enable_self_msg", v).apply()
}
fun setEnableSyncMsg(ctx: Context, v: Boolean) {
fun setEnableSyncMsgAsSentMsg(ctx: Context, v: Boolean) {
val preferences = ctx.getSharedPreferences("config", 0)
preferences.edit().putBoolean("enable_sync_msg", v).apply()
preferences.edit().putBoolean("enable_sync_msg_as_sent_msg", v).apply()
}
fun getConfigMap(ctx: Context): Map<String, Any?> {
@ -321,7 +321,7 @@ object ShamrockConfig {
"echo_number" to preferences.getBoolean("echo_number", false),
"shell" to preferences.getBoolean("shell", false),
"alive_reply" to preferences.getBoolean("alive_reply", false),
"enable_sync_msg" to preferences.getBoolean("enable_sync_msg", false),
"enable_sync_msg_as_sent_msg" to preferences.getBoolean("enable_sync_msg_as_sent_msg", false),
)
}

View File

@ -264,17 +264,6 @@ fun LabFragment() {
thickness = 0.2.dp
)
Function(
title = "同步消息推送",
desc = "推送来自同号异设备消息,未做特殊处理请勿打开。",
descColor = it,
isSwitch = ShamrockConfig.enableSyncMsg(ctx)
) {
ShamrockConfig.setEnableSyncMsg(ctx, it)
ShamrockConfig.pushUpdate(ctx)
return@Function true
}
Function(
title = "自发消息推送",
desc = "推送Bot发送的消息未做特殊处理请勿打开。",
@ -286,6 +275,17 @@ fun LabFragment() {
return@Function true
}
Function(
title = "同步消息推送类型异换",
desc = "推送来自同号异设备消息,将同步消息作为自发消息推送。",
descColor = it,
isSwitch = ShamrockConfig.enableSyncMsgAsSentMsg(ctx)
) {
ShamrockConfig.setEnableSyncMsgAsSentMsg(ctx, it)
ShamrockConfig.pushUpdate(ctx)
return@Function true
}
/*
Function(
title = "使用纯数字ECHO",

View File

@ -10,7 +10,7 @@ import kotlin.coroutines.resume
internal object ContactHelper {
suspend fun getUinByUidAsync(uid: String): String {
if (uid.isBlank() || uid == "0") {
return "0"
return "-1"
}
val kernelService = NTServiceFetcher.kernelService
@ -20,7 +20,7 @@ internal object ContactHelper {
sessionService.uixConvertService.getUin(hashSetOf(uid)) {
continuation.resume(it)
}
}[uid]?.toString() ?: "0"
}[uid]?.toString() ?: "-1"
}
suspend fun getUidByUinAsync(peerId: Long): String {

View File

@ -59,7 +59,7 @@ internal object GlobalEventTransmitter: BaseSvc() {
elements: ArrayList<MsgElement>,
rawMsg: String,
msgHash: Int,
postType: PostType = PostType.Msg
postType: PostType
): Boolean {
val uin = app.longAccountUin
transMessageEvent(record,
@ -107,7 +107,7 @@ internal object GlobalEventTransmitter: BaseSvc() {
elements: ArrayList<MsgElement>,
rawMsg: String,
msgHash: Int,
postType: PostType = PostType.Msg,
postType: PostType,
tempSource: MessageTempSource = MessageTempSource.Unknown
): Boolean {
val botUin = app.longAccountUin

View File

@ -76,7 +76,7 @@ internal object ShamrockConfig {
putBoolean("enable_self_msg", intent.getBooleanExtra("enable_self_msg", false)) // 推送自己发的消息
putBoolean("shell", intent.getBooleanExtra("shell", false)) // 开启Shell接口
putBoolean("enable_sync_msg", intent.getBooleanExtra("enable_sync_msg", false)) // 推送同步消息
putBoolean("enable_sync_msg_as_sent_msg", intent.getBooleanExtra("enable_sync_msg_as_sent_msg", false)) // 推送同步消息
putBoolean("isInit", true)
}
@ -102,8 +102,8 @@ internal object ShamrockConfig {
return Config.rules?.privateRule
}
fun enableSyncMsg(): Boolean {
return mmkv.getBoolean("enable_sync_msg", false)
fun enableSyncMsgAsSentMsg(): Boolean {
return mmkv.getBoolean("enable_sync_msg_as_sent_msg", false)
}
fun enableSelfMsg(): Boolean {

View File

@ -67,10 +67,10 @@ internal object AioListener : IKernelMsgListener {
MessageHelper.sendMessageWithoutMsgId(record.chatType, record.peerUin.toString(), "pong", { _, _ -> })
}
if (record.senderUin == TicketSvc.getLongUin() && !ShamrockConfig.enableSyncMsg()) {
// 不允许推送同步消息
return
}
val postType = if (record.senderUin == TicketSvc.getLongUin() && ShamrockConfig.enableSyncMsgAsSentMsg()) {
PostType.MsgSent
} else PostType.Msg
//if (rawMsg.contains("forward")) {
// LogCenter.log(record.extInfoForUI.decodeToString(), Level.WARN)
@ -85,7 +85,7 @@ internal object AioListener : IKernelMsgListener {
}
if(!GlobalEventTransmitter.MessageTransmitter.transGroupMessage(
record, record.elements, rawMsg, msgHash
record, record.elements, rawMsg, msgHash, postType
)) {
LogCenter.log("群消息推送失败 -> 推送目标可能不存在", Level.WARN)
}
@ -98,7 +98,7 @@ internal object AioListener : IKernelMsgListener {
}
if(!GlobalEventTransmitter.MessageTransmitter.transPrivateMessage(
record, record.elements, rawMsg, msgHash
record, record.elements, rawMsg, msgHash, postType
)) {
LogCenter.log("私聊消息推送失败 -> MessageTransmitter", Level.WARN)
}
@ -114,7 +114,7 @@ internal object AioListener : IKernelMsgListener {
}
if(!GlobalEventTransmitter.MessageTransmitter.transPrivateMessage(
record, record.elements, rawMsg, msgHash, tempSource = MessageTempSource.Group
record, record.elements, rawMsg, msgHash, tempSource = MessageTempSource.Group, postType = postType
)) {
LogCenter.log("私聊临时消息推送失败 -> MessageTransmitter", Level.WARN)
}
@ -188,8 +188,7 @@ internal object AioListener : IKernelMsgListener {
if (!ShamrockConfig.enableSelfMsg()
|| record.senderUin != TicketSvc.getLongUin()
|| record.peerUin == TicketSvc.getLongUin()
)
return@launch
) return@launch
val rawMsg = record.elements.toCQCode(record.chatType, record.peerUin.toString())
if (rawMsg.isEmpty()) return@launch