mirror of
https://github.com/whitechi73/OpenShamrock.git
synced 2024-08-14 13:12:17 +08:00
add retryCnt
This commit is contained in:
parent
0858395e60
commit
ba7058a838
@ -24,7 +24,11 @@ internal object SendForwardMessage : IActionHandler() {
|
||||
MessageHelper.obtainMessageTypeByDetailType(it)
|
||||
} ?: run {
|
||||
if (session.has("user_id")) {
|
||||
if (session.has("group_id")) {
|
||||
MsgConstant.KCHATTYPETEMPC2CFROMGROUP
|
||||
} else {
|
||||
MsgConstant.KCHATTYPEC2C
|
||||
}
|
||||
} else if (session.has("group_id")) {
|
||||
MsgConstant.KCHATTYPEGROUP
|
||||
} else {
|
||||
@ -32,23 +36,21 @@ internal object SendForwardMessage : IActionHandler() {
|
||||
}
|
||||
}
|
||||
val peerId = when(chatType) {
|
||||
MsgConstant.KCHATTYPEGROUP -> session.getStringOrNull("group_id") ?: return noParam(
|
||||
"group_id",
|
||||
session.echo
|
||||
)
|
||||
|
||||
MsgConstant.KCHATTYPEC2C -> session.getStringOrNull("user_id") ?: return noParam(
|
||||
"user_id",
|
||||
session.echo
|
||||
)
|
||||
|
||||
MsgConstant.KCHATTYPEGROUP -> session.getStringOrNull("group_id") ?: return noParam("group_id", session.echo)
|
||||
MsgConstant.KCHATTYPEC2C, MsgConstant.KCHATTYPETEMPC2CFROMGROUP -> session.getStringOrNull("user_id") ?: return noParam("user_id", session.echo)
|
||||
else -> error("unknown chat type: $chatType")
|
||||
}
|
||||
if (session.isArray("messages")) {
|
||||
val messages = session.getArray("messages")
|
||||
invoke(chatType, peerId, messages, echo = session.echo)
|
||||
val fromId = when(chatType) {
|
||||
MsgConstant.KCHATTYPEGROUP, MsgConstant.KCHATTYPETEMPC2CFROMGROUP -> session.getStringOrNull("group_id") ?: return noParam("group_id", session.echo)
|
||||
MsgConstant.KCHATTYPEC2C -> session.getStringOrNull("user_id") ?: return noParam("user_id", session.echo)
|
||||
else -> error("unknown chat type: $chatType")
|
||||
}
|
||||
return if (session.isArray("messages")) {
|
||||
val messages = session.getArray("messages")
|
||||
invoke(chatType, peerId, messages, fromId, echo = session.echo)
|
||||
} else {
|
||||
logic("未知格式合并转发消息", session.echo)
|
||||
}
|
||||
return logic("未知格式合并转发消息", session.echo)
|
||||
} catch (e: ParamsException) {
|
||||
return noParam(e.message!!, session.echo)
|
||||
} catch (e: Throwable) {
|
||||
@ -60,6 +62,7 @@ internal object SendForwardMessage : IActionHandler() {
|
||||
chatType: Int,
|
||||
peerId: String,
|
||||
messages: JsonArray,
|
||||
fromId: String = peerId,
|
||||
echo: JsonElement = EmptyJsonString
|
||||
): String {
|
||||
kotlin.runCatching {
|
||||
@ -148,7 +151,7 @@ internal object SendForwardMessage : IActionHandler() {
|
||||
}.filterNotNull()
|
||||
|
||||
val from = MessageHelper.generateContact(MsgConstant.KCHATTYPEC2C, selfUin)
|
||||
val to = MessageHelper.generateContact(chatType, peerId)
|
||||
val to = MessageHelper.generateContact(chatType, peerId, fromId)
|
||||
|
||||
val uniseq = MessageHelper.generateMsgId(chatType)
|
||||
msgService.multiForwardMsg(ArrayList<MultiMsgInfo>().apply {
|
||||
|
@ -9,7 +9,7 @@ internal object SendGroupForwardMessage: IActionHandler() {
|
||||
val groupId = session.getString("group_id")
|
||||
return if (session.isArray("messages")) {
|
||||
val messages = session.getArray("messages")
|
||||
SendForwardMessage(MsgConstant.KCHATTYPEGROUP, groupId, messages, session.echo)
|
||||
SendForwardMessage(MsgConstant.KCHATTYPEGROUP, groupId, messages, echo = session.echo)
|
||||
} else {
|
||||
logic("未知格式合并转发消息", session.echo)
|
||||
}
|
||||
|
@ -20,11 +20,15 @@ internal object SendMessage: IActionHandler() {
|
||||
override suspend fun internalHandle(session: ActionSession): String {
|
||||
val detailType = session.getStringOrNull("detail_type") ?: session.getStringOrNull("message_type")
|
||||
try {
|
||||
var chatType = detailType?.let {
|
||||
val chatType = detailType?.let {
|
||||
MessageHelper.obtainMessageTypeByDetailType(it)
|
||||
} ?: run {
|
||||
if (session.has("user_id")) {
|
||||
if (session.has("group_id")) {
|
||||
MsgConstant.KCHATTYPETEMPC2CFROMGROUP
|
||||
} else {
|
||||
MsgConstant.KCHATTYPEC2C
|
||||
}
|
||||
} else if (session.has("group_id")) {
|
||||
MsgConstant.KCHATTYPEGROUP
|
||||
} else {
|
||||
@ -33,16 +37,13 @@ internal object SendMessage: IActionHandler() {
|
||||
}
|
||||
val peerId = when(chatType) {
|
||||
MsgConstant.KCHATTYPEGROUP -> session.getStringOrNull("group_id") ?: return noParam("group_id", session.echo)
|
||||
MsgConstant.KCHATTYPEC2C -> session.getStringOrNull("user_id") ?: return noParam("user_id", session.echo)
|
||||
MsgConstant.KCHATTYPEC2C, MsgConstant.KCHATTYPETEMPC2CFROMGROUP -> session.getStringOrNull("user_id") ?: return noParam("user_id", session.echo)
|
||||
else -> error("unknown chat type: $chatType")
|
||||
}
|
||||
var fromId = peerId
|
||||
if (chatType == MsgConstant.KCHATTYPEC2C) {
|
||||
val groupId = session.getStringOrNull("group_id")
|
||||
if (groupId != null) {
|
||||
chatType = MsgConstant.KCHATTYPETEMPC2CFROMGROUP
|
||||
fromId = groupId
|
||||
}
|
||||
val fromId = when(chatType) {
|
||||
MsgConstant.KCHATTYPEGROUP, MsgConstant.KCHATTYPETEMPC2CFROMGROUP -> session.getStringOrNull("group_id") ?: return noParam("group_id", session.echo)
|
||||
MsgConstant.KCHATTYPEC2C -> session.getStringOrNull("user_id") ?: return noParam("user_id", session.echo)
|
||||
else -> error("unknown chat type: $chatType")
|
||||
}
|
||||
val retryCnt = session.getIntOrNull("retry_cnt")
|
||||
return if (session.isString("message")) {
|
||||
|
@ -9,7 +9,7 @@ internal object SendPrivateForwardMessage : IActionHandler() {
|
||||
val userId = session.getString("user_id")
|
||||
return if (session.isArray("messages")) {
|
||||
val messages = session.getArray("messages")
|
||||
SendForwardMessage(MsgConstant.KCHATTYPEC2C, userId, messages, session.echo)
|
||||
SendForwardMessage(MsgConstant.KCHATTYPEC2C, userId, messages, echo = session.echo)
|
||||
} else {
|
||||
logic("未知格式合并转发消息", session.echo)
|
||||
}
|
||||
|
@ -113,6 +113,7 @@ fun Routing.messageAction() {
|
||||
get {
|
||||
val msgType = fetchGetOrThrow("message_type")
|
||||
val message = fetchGetOrThrow("message")
|
||||
val retryCnt = fetchGetOrNull("retry_cnt")?.toInt() ?: 3
|
||||
val autoEscape = fetchGetOrNull("auto_escape")?.toBooleanStrict() ?: false
|
||||
val chatType = MessageHelper.obtainMessageTypeByDetailType(msgType)
|
||||
|
||||
@ -124,12 +125,14 @@ fun Routing.messageAction() {
|
||||
peerId = if (chatType == MsgConstant.KCHATTYPEC2C) userId!! else groupId!!,
|
||||
message = message,
|
||||
autoEscape = autoEscape,
|
||||
fromId = groupId ?: userId ?: ""
|
||||
fromId = groupId ?: userId ?: "",
|
||||
retryCnt = retryCnt
|
||||
), ContentType.Application.Json)
|
||||
}
|
||||
post {
|
||||
val msgType = fetchPostOrThrow("message_type")
|
||||
val chatType = MessageHelper.obtainMessageTypeByDetailType(msgType)
|
||||
val retryCnt = fetchPostOrNull("retry_cnt")?.toInt() ?: 3
|
||||
|
||||
val userId = fetchPostOrNull("user_id")
|
||||
val groupId = fetchPostOrNull("group_id")
|
||||
@ -141,14 +144,16 @@ fun Routing.messageAction() {
|
||||
chatType = chatType,
|
||||
peerId = peerId,
|
||||
message = listOf(fetchPostJsonObject("message")).jsonArray,
|
||||
fromId = groupId ?: userId ?: ""
|
||||
fromId = groupId ?: userId ?: "",
|
||||
retryCnt = retryCnt
|
||||
)
|
||||
} else {
|
||||
SendMessage(
|
||||
chatType = chatType,
|
||||
peerId = peerId,
|
||||
message = fetchPostJsonArray("message"),
|
||||
fromId = groupId ?: userId ?: ""
|
||||
fromId = groupId ?: userId ?: "",
|
||||
retryCnt = retryCnt
|
||||
)
|
||||
}
|
||||
} else {
|
||||
@ -159,7 +164,8 @@ fun Routing.messageAction() {
|
||||
peerId = peerId,
|
||||
message = fetchPostOrThrow("message"),
|
||||
autoEscape = autoEscape,
|
||||
fromId = groupId ?: userId ?: ""
|
||||
fromId = groupId ?: userId ?: "",
|
||||
retryCnt = retryCnt
|
||||
)
|
||||
}, ContentType.Application.Json)
|
||||
}
|
||||
@ -169,34 +175,38 @@ fun Routing.messageAction() {
|
||||
get {
|
||||
val groupId = fetchGetOrThrow("group_id")
|
||||
val message = fetchGetOrThrow("message")
|
||||
val retryCnt = fetchGetOrNull("retry_cnt")?.toInt() ?: 3
|
||||
val autoEscape = fetchGetOrNull("auto_escape")?.toBooleanStrict() ?: false
|
||||
call.respondText(SendMessage(MsgConstant.KCHATTYPEGROUP, groupId, message, autoEscape))
|
||||
call.respondText(SendMessage(MsgConstant.KCHATTYPEGROUP, groupId, message, autoEscape, retryCnt = retryCnt))
|
||||
}
|
||||
post {
|
||||
val groupId = fetchPostOrThrow("group_id")
|
||||
|
||||
val retryCnt = fetchPostOrNull("retry_cnt")?.toInt() ?: 3
|
||||
val autoEscape = fetchPostOrNull("auto_escape")?.toBooleanStrict() ?: false
|
||||
|
||||
val result = if (isJsonData()) {
|
||||
if (isJsonString("message")) {
|
||||
SendMessage(MsgConstant.KCHATTYPEGROUP, groupId, fetchPostJsonString("message"), autoEscape)
|
||||
SendMessage(MsgConstant.KCHATTYPEGROUP, groupId, fetchPostJsonString("message"), autoEscape, retryCnt = retryCnt)
|
||||
} else {
|
||||
if (isJsonObject("message")) {
|
||||
SendMessage(
|
||||
chatType = MsgConstant.KCHATTYPEGROUP,
|
||||
peerId = groupId,
|
||||
message = listOf(fetchPostJsonObject("message")).jsonArray
|
||||
message = listOf(fetchPostJsonObject("message")).jsonArray,
|
||||
retryCnt = retryCnt
|
||||
)
|
||||
} else {
|
||||
SendMessage(
|
||||
chatType = MsgConstant.KCHATTYPEGROUP,
|
||||
peerId = groupId,
|
||||
message = fetchPostJsonArray("message")
|
||||
message = fetchPostJsonArray("message"),
|
||||
retryCnt = retryCnt
|
||||
)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
SendMessage(MsgConstant.KCHATTYPEGROUP, groupId, fetchPostOrThrow("message"), autoEscape)
|
||||
SendMessage(MsgConstant.KCHATTYPEGROUP, groupId, fetchPostOrThrow("message"), autoEscape, retryCnt = retryCnt)
|
||||
}
|
||||
|
||||
call.respondText(result, ContentType.Application.Json)
|
||||
@ -208,18 +218,21 @@ fun Routing.messageAction() {
|
||||
val userId = fetchGetOrThrow("user_id")
|
||||
val groupId = fetchGetOrNull("group_id")
|
||||
val message = fetchGetOrThrow("message")
|
||||
val retryCnt = fetchGetOrNull("retry_cnt")?.toInt() ?: 3
|
||||
val autoEscape = fetchGetOrNull("auto_escape")?.toBooleanStrict() ?: false
|
||||
call.respondText(SendMessage(
|
||||
chatType = if (groupId == null) MsgConstant.KCHATTYPEC2C else MsgConstant.KCHATTYPETEMPC2CFROMGROUP,
|
||||
peerId = userId,
|
||||
message = message,
|
||||
autoEscape = autoEscape,
|
||||
fromId = groupId ?: userId
|
||||
fromId = groupId ?: userId,
|
||||
retryCnt = retryCnt
|
||||
), ContentType.Application.Json)
|
||||
}
|
||||
post {
|
||||
val userId = fetchPostOrThrow("user_id")
|
||||
val groupId = fetchPostOrNull("group_id")
|
||||
val retryCnt = fetchPostOrNull("retry_cnt")?.toInt() ?: 3
|
||||
val autoEscape = fetchPostOrNull("auto_escape")?.toBooleanStrict() ?: false
|
||||
|
||||
val chatType = if (groupId == null) MsgConstant.KCHATTYPEC2C else MsgConstant.KCHATTYPETEMPC2CFROMGROUP
|
||||
@ -233,7 +246,8 @@ fun Routing.messageAction() {
|
||||
peerId = userId,
|
||||
message = fetchPostJsonString("message"),
|
||||
autoEscape = autoEscape,
|
||||
fromId = fromId
|
||||
fromId = fromId,
|
||||
retryCnt = retryCnt
|
||||
)
|
||||
} else {
|
||||
if (isJsonObject("message")) {
|
||||
@ -241,14 +255,16 @@ fun Routing.messageAction() {
|
||||
chatType = chatType,
|
||||
peerId = userId,
|
||||
message = listOf(fetchPostJsonObject("message")).jsonArray,
|
||||
fromId = fromId
|
||||
fromId = fromId,
|
||||
retryCnt = retryCnt
|
||||
)
|
||||
} else {
|
||||
SendMessage(
|
||||
chatType = chatType,
|
||||
peerId = userId,
|
||||
message = fetchPostJsonArray("message"),
|
||||
fromId = fromId
|
||||
fromId = fromId,
|
||||
retryCnt = retryCnt
|
||||
)
|
||||
}
|
||||
}
|
||||
@ -258,7 +274,8 @@ fun Routing.messageAction() {
|
||||
peerId = userId,
|
||||
message = fetchPostOrThrow("message"),
|
||||
autoEscape = autoEscape,
|
||||
fromId = fromId
|
||||
fromId = fromId,
|
||||
retryCnt = retryCnt
|
||||
)
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user