From 354393a231ed9299d9a2ef760fd8078ad781d467 Mon Sep 17 00:00:00 2001
From: pppscn <35696959@qq.com>
Date: Sat, 14 Oct 2023 14:46:26 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A`Webhook`=E9=80=9A?=
=?UTF-8?q?=E9=81=93=E6=96=B0=E5=A2=9E=E6=88=90=E5=8A=9F=E5=BA=94=E7=AD=94?=
=?UTF-8?q?=E5=85=B3=E9=94=AE=E5=AD=97=EF=BC=88=E7=BD=AE=E7=A9=BA=E5=88=99?=
=?UTF-8?q?http=E7=8A=B6=E6=80=81200=E5=8D=B3=E4=B8=BA=E6=88=90=E5=8A=9F?=
=?UTF-8?q?=EF=BC=89=20#346?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../entity/setting/WebhookSetting.kt | 1 +
.../fragment/senders/WebhookFragment.kt | 4 +++-
.../forwarder/utils/sender/WebhookUtils.kt | 5 +++--
.../res/layout/fragment_senders_webhook.xml | 22 +++++++++++++++++++
app/src/main/res/values-en/strings.xml | 11 +++++-----
app/src/main/res/values/strings.xml | 1 +
6 files changed, 36 insertions(+), 8 deletions(-)
diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/WebhookSetting.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/WebhookSetting.kt
index bd23dbdc..37a4ef29 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/WebhookSetting.kt
+++ b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/WebhookSetting.kt
@@ -7,6 +7,7 @@ data class WebhookSetting(
val method: String? = "POST",
var webServer: String = "",
val secret: String? = "",
+ val response: String? = "",
val webParams: String? = "",
val headers: Map?,
) : Serializable {
diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WebhookFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WebhookFragment.kt
index 6f0ff47f..b962e7b0 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WebhookFragment.kt
+++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WebhookFragment.kt
@@ -128,6 +128,7 @@ class WebhookFragment : BaseFragment(), View.OnC
binding!!.rgMethod.check(settingVo.getMethodCheckId())
binding!!.etWebServer.setText(settingVo.webServer)
binding!!.etSecret.setText(settingVo.secret)
+ binding!!.etResponse.setText(settingVo.response)
binding!!.etWebParams.setText(settingVo.webParams)
//set header
if (settingVo.headers != null) {
@@ -241,10 +242,11 @@ class WebhookFragment : BaseFragment(), View.OnC
else -> "POST"
}
val secret = binding!!.etSecret.text.toString().trim()
+ val response = binding!!.etResponse.text.toString().trim()
val webParams = binding!!.etWebParams.text.toString().trim()
val headers = getHeadersFromHeaderItemMap(headerItemMap)
- return WebhookSetting(method, webServer, secret, webParams, headers)
+ return WebhookSetting(method, webServer, secret, response, webParams, headers)
}
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 4eae7a45..7ad21592 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
@@ -199,8 +199,9 @@ class WebhookUtils {
override fun onSuccess(response: String) {
Log.i(TAG, response)
- SendUtils.updateLogs(logId, 2, response)
- SendUtils.senderLogic(2, msgInfo, rule, senderIndex, msgId)
+ val status = if (!setting.response.isNullOrEmpty() && !response.contains(setting.response)) 0 else 2
+ SendUtils.updateLogs(logId, status, response)
+ SendUtils.senderLogic(status, msgInfo, rule, senderIndex, msgId)
}
})
diff --git a/app/src/main/res/layout/fragment_senders_webhook.xml b/app/src/main/res/layout/fragment_senders_webhook.xml
index 2a9d335a..30da94cb 100644
--- a/app/src/main/res/layout/fragment_senders_webhook.xml
+++ b/app/src/main/res/layout/fragment_senders_webhook.xml
@@ -201,6 +201,28 @@
+
+
+
+
+
+
+
+
Socket
Example:myapp://api/add?&type=0&msg=[msg]
- 服务地址
- IP 或 域名
- 端口
- 取值范围:1-65535
+ Service Address
+ "IP or Domain"
+ Port
+ Value Range:1-65535
Webhook Server
For example: https://a.b.com/msg?token=xyz
Params
Msg Template
For example: payload=%7B%22text%22%3A%22[msg]%22%7D [msg] will be replaced with SMS content.\nJson format is supported, e.g. {\"text\":\"[msg]\"}.\nNote: msg is automatically URLEncoder except in JSON format
- Secret: If it is empty, the sign will not be calculated
+ Secret: If left empty, the sign will not be calculated
+ Successful Response Keyword:If left empty, HTTP status 200 represents success
Headers
Key
Value
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 1fb78ab0..2f63239f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -780,6 +780,7 @@
Params
例如:payload=%7B%22text%22%3A%22[msg]%22%7D [msg]将被替换成短信内容。\n支持Json格式,例如:{\"text\":\"[msg]\"}。\n注意:除JSON格式外,msg会自动进行URLEncoder
Secret:置空则不计算sign
+ 成功应答关键字:置空则http状态200即为成功
Headers
Key
Value