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