add retryCnt

This commit is contained in:
Simplxs 2024-01-14 15:48:39 +08:00
parent fdd769d9ff
commit 0858395e60
No known key found for this signature in database
GPG Key ID: E23537FF14DD6507
3 changed files with 19 additions and 12 deletions

View File

@ -8,16 +8,17 @@ import moe.fuqiuluo.shamrock.tools.jsonArray
internal object SendGroupMessage: IActionHandler() {
override suspend fun internalHandle(session: ActionSession): String {
val groupId = session.getString("group_id")
val retryCnt = session.getIntOrNull("retry_cnt")
return if (session.isString("message")) {
val autoEscape = session.getBooleanOrDefault("auto_escape", false)
val message = session.getString("message")
SendMessage(MsgConstant.KCHATTYPEGROUP, groupId, message, autoEscape, echo = session.echo)
SendMessage(MsgConstant.KCHATTYPEGROUP, groupId, message, autoEscape, echo = session.echo, retryCnt = retryCnt ?: 3)
} else if (session.isObject("message")) {
val message = session.getObject("message")
SendMessage(MsgConstant.KCHATTYPEGROUP, groupId, listOf( message ).jsonArray, session.echo)
SendMessage(MsgConstant.KCHATTYPEGROUP, groupId, listOf( message ).jsonArray, session.echo, retryCnt = retryCnt ?: 3)
} else {
val message = session.getArray("message")
SendMessage(MsgConstant.KCHATTYPEGROUP, groupId, message, session.echo)
SendMessage(MsgConstant.KCHATTYPEGROUP, groupId, message, session.echo, retryCnt = retryCnt ?: 3)
}
}

View File

@ -44,16 +44,17 @@ internal object SendMessage: IActionHandler() {
fromId = groupId
}
}
val retryCnt = session.getIntOrNull("retry_cnt")
return if (session.isString("message")) {
val autoEscape = session.getBooleanOrDefault("auto_escape", false)
val message = session.getString("message")
invoke(chatType, peerId, message, autoEscape, echo = session.echo, fromId = fromId)
invoke(chatType, peerId, message, autoEscape, echo = session.echo, fromId = fromId, retryCnt = retryCnt ?: 3)
} else if (session.isArray("message")) {
val message = session.getArray("message")
invoke(chatType, peerId, message, session.echo, fromId = fromId)
invoke(chatType, peerId, message, session.echo, fromId = fromId, retryCnt ?: 3)
} else {
val message = session.getObject("message")
invoke(chatType, peerId, listOf( message ).jsonArray, session.echo, fromId = fromId)
invoke(chatType, peerId, listOf( message ).jsonArray, session.echo, fromId = fromId, retryCnt ?: 3)
}
} catch (e: ParamsException) {
return noParam(e.message!!, session.echo)
@ -69,6 +70,7 @@ internal object SendMessage: IActionHandler() {
message: String,
autoEscape: Boolean,
fromId: String = peerId,
retryCnt: Int,
echo: JsonElement = EmptyJsonString
): String {
//if (!ContactHelper.checkContactAvailable(chatType, peerId)) {
@ -89,7 +91,7 @@ internal object SendMessage: IActionHandler() {
LogCenter.log("CQ码不合法", Level.WARN)
return logic("CQCode is illegal", echo)
} else {
MsgSvc.sendToAio(chatType, peerId, msg, fromId = fromId)
MsgSvc.sendToAio(chatType, peerId, msg, fromId = fromId, retryCnt)
}
}
if (result.isFailure) {
@ -107,12 +109,12 @@ internal object SendMessage: IActionHandler() {
// 消息段格式消息
suspend operator fun invoke(
chatType: Int, peerId: String, message: JsonArray, echo: JsonElement = EmptyJsonString, fromId: String = peerId
chatType: Int, peerId: String, message: JsonArray, echo: JsonElement = EmptyJsonString, fromId: String = peerId, retryCnt: Int
): String {
//if (!ContactHelper.checkContactAvailable(chatType, peerId)) {
// return logic("contact is not found", echo = echo)
//}
val result = MsgSvc.sendToAio(chatType, peerId, message, fromId = fromId)
val result = MsgSvc.sendToAio(chatType, peerId, message, fromId = fromId, retryCnt)
if (result.isFailure) {
return logic(result.exceptionOrNull()?.message ?: "", echo)
}

View File

@ -10,6 +10,7 @@ internal object SendPrivateMessage: IActionHandler() {
val userId = session.getString("user_id")
val groupId = session.getStringOrNull("group_id")
val chatType = if (groupId == null) MsgConstant.KCHATTYPEC2C else MsgConstant.KCHATTYPETEMPC2CFROMGROUP
val retryCnt = session.getIntOrNull("retry_cnt")
return if (session.isString("message")) {
val autoEscape = session.getBooleanOrDefault("auto_escape", false)
val message = session.getString("message")
@ -19,7 +20,8 @@ internal object SendPrivateMessage: IActionHandler() {
message = message,
autoEscape = autoEscape,
echo = session.echo,
fromId = groupId ?: userId
fromId = groupId ?: userId,
retryCnt = retryCnt ?: 3
)
} else if (session.isArray("message")) {
val message = session.getArray("message")
@ -28,7 +30,8 @@ internal object SendPrivateMessage: IActionHandler() {
peerId = userId,
message = message,
echo = session.echo,
fromId = groupId ?: userId
fromId = groupId ?: userId,
retryCnt = retryCnt ?: 3
)
} else {
val message = session.getObject("message")
@ -37,7 +40,8 @@ internal object SendPrivateMessage: IActionHandler() {
peerId = userId,
message = listOf( message ).jsonArray,
echo = session.echo,
fromId = groupId ?: userId
fromId = groupId ?: userId,
retryCnt = retryCnt ?: 3
)
}
}