From 2575363c38c2738ec92d61ac130ec7487dbc75f9 Mon Sep 17 00:00:00 2001 From: pppscn <35696959@qq.com> Date: Sat, 29 Jul 2023 23:02:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9AwebParams=20?= =?UTF-8?q?=E7=9A=84=20`[receive=5Ftime]`=20=E6=A0=87=E7=AD=BE=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89=E6=97=B6=E9=97=B4=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=20#327?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../idormy/sms/forwarder/entity/MsgInfo.kt | 3 +++ .../forwarder/utils/sender/WebhookUtils.kt | 20 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/MsgInfo.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/MsgInfo.kt index 831667899e..f6bb63be75 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/MsgInfo.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/MsgInfo.kt @@ -131,6 +131,9 @@ data class MsgInfo( //替换{{APP名称}}标签 private fun replaceAppName(content: String, packageName: String): String { + if (TextUtils.isEmpty(content)) return content + if (content.indexOf(getString(R.string.tag_app_name)) == -1) return content + var appName = "" if (SettingUtils.enableLoadUserAppList && App.UserAppList.isNotEmpty()) { for (appInfo in App.UserAppList) { diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WebhookUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WebhookUtils.kt index 51db1bbab0..5700a3f223 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WebhookUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WebhookUtils.kt @@ -101,6 +101,10 @@ class WebhookUtils { .replace("[title]", URLEncoder.encode(simInfo, "UTF-8")) .replace("[card_slot]", URLEncoder.encode(simInfo, "UTF-8")) .replace("[receive_time]", URLEncoder.encode(receiveTime, "UTF-8")) + .replace(Regex("\\[receive_time:(.*?)\\]")) { + val format = it.groups[1]?.value ?: "" + formatDateTime(format) + } .replace("\n", "%0A") if (!TextUtils.isEmpty(setting.secret)) { webParams = webParams.replace("[timestamp]", timestamp.toString()) @@ -123,6 +127,10 @@ class WebhookUtils { .replace("[title]", escapeJson(simInfo)) .replace("[card_slot]", escapeJson(simInfo)) .replace("[receive_time]", receiveTime) + .replace(Regex("\\[receive_time:(.*?)\\]")) { + val format = it.groups[1]?.value ?: "" + formatDateTime(format) + } .replace("[timestamp]", timestamp.toString()) .replace("[sign]", sign) Log.d(TAG, "method = ${setting.method}, Url = $requestUrl, bodyMsg = $bodyMsg") @@ -155,6 +163,10 @@ class WebhookUtils { .replace("[title]", simInfo) .replace("[card_slot]", simInfo) .replace("[receive_time]", receiveTime) + .replace(Regex("\\[receive_time:(.*?)\\]")) { + val format = it.groups[1]?.value ?: "" + formatDateTime(format) + } .replace("[timestamp]", timestamp.toString()) .replace("[sign]", sign) ) @@ -206,5 +218,13 @@ class WebhookUtils { return if (jsonStr.length >= 2) jsonStr.substring(1, jsonStr.length - 1) else jsonStr } + @SuppressLint("SimpleDateFormat") + fun formatDateTime(format: String): String { + val currentTime = Date() + val dateFormat = SimpleDateFormat(format) + dateFormat.timeZone = TimeZone.getTimeZone("UTC") // Optional: Set the desired timezone here + return dateFormat.format(currentTime) + } + } } \ No newline at end of file