优化:Webhook通道新增成功应答关键字(置空则http状态200即为成功) #346

This commit is contained in:
pppscn 2023-10-14 14:46:26 +08:00
parent 2bebb44fb8
commit 354393a231
6 changed files with 36 additions and 8 deletions

View File

@ -7,6 +7,7 @@ data class WebhookSetting(
val method: String? = "POST", val method: String? = "POST",
var webServer: String = "", var webServer: String = "",
val secret: String? = "", val secret: String? = "",
val response: String? = "",
val webParams: String? = "", val webParams: String? = "",
val headers: Map<String, String>?, val headers: Map<String, String>?,
) : Serializable { ) : Serializable {

View File

@ -128,6 +128,7 @@ class WebhookFragment : BaseFragment<FragmentSendersWebhookBinding?>(), View.OnC
binding!!.rgMethod.check(settingVo.getMethodCheckId()) binding!!.rgMethod.check(settingVo.getMethodCheckId())
binding!!.etWebServer.setText(settingVo.webServer) binding!!.etWebServer.setText(settingVo.webServer)
binding!!.etSecret.setText(settingVo.secret) binding!!.etSecret.setText(settingVo.secret)
binding!!.etResponse.setText(settingVo.response)
binding!!.etWebParams.setText(settingVo.webParams) binding!!.etWebParams.setText(settingVo.webParams)
//set header //set header
if (settingVo.headers != null) { if (settingVo.headers != null) {
@ -241,10 +242,11 @@ class WebhookFragment : BaseFragment<FragmentSendersWebhookBinding?>(), View.OnC
else -> "POST" else -> "POST"
} }
val secret = binding!!.etSecret.text.toString().trim() val secret = binding!!.etSecret.text.toString().trim()
val response = binding!!.etResponse.text.toString().trim()
val webParams = binding!!.etWebParams.text.toString().trim() val webParams = binding!!.etWebParams.text.toString().trim()
val headers = getHeadersFromHeaderItemMap(headerItemMap) val headers = getHeadersFromHeaderItemMap(headerItemMap)
return WebhookSetting(method, webServer, secret, webParams, headers) return WebhookSetting(method, webServer, secret, response, webParams, headers)
} }

View File

@ -199,8 +199,9 @@ class WebhookUtils {
override fun onSuccess(response: String) { override fun onSuccess(response: String) {
Log.i(TAG, response) Log.i(TAG, response)
SendUtils.updateLogs(logId, 2, response) val status = if (!setting.response.isNullOrEmpty() && !response.contains(setting.response)) 0 else 2
SendUtils.senderLogic(2, msgInfo, rule, senderIndex, msgId) SendUtils.updateLogs(logId, status, response)
SendUtils.senderLogic(status, msgInfo, rule, senderIndex, msgId)
} }
}) })

View File

@ -201,6 +201,28 @@
</LinearLayout> </LinearLayout>
<LinearLayout
style="@style/senderBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/webhook_response"
android:textStyle="bold" />
<com.xuexiang.xui.widget.edittext.materialedittext.MaterialEditText
android:id="@+id/et_Response"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/optional"
android:singleLine="true"
app:met_clearButton="true" />
</LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/layout_Headers" android:id="@+id/layout_Headers"
style="@style/senderBarStyle" style="@style/senderBarStyle"

View File

@ -768,17 +768,18 @@
<string name="socket">Socket</string> <string name="socket">Socket</string>
<string name="socket_tips">Examplemyapp://api/add?&amp;type=0&amp;msg=[msg]</string> <string name="socket_tips">Examplemyapp://api/add?&amp;type=0&amp;msg=[msg]</string>
<string name="socket_address">服务地址</string> <string name="socket_address">Service Address</string>
<string name="socket_address_tips">IP 或 域名</string> <string name="socket_address_tips">"IP or Domain"</string>
<string name="socket_port">端口</string> <string name="socket_port">Port</string>
<string name="socket_port_tips">取值范围1-65535</string> <string name="socket_port_tips">Value Range1-65535</string>
<string name="webhook_server">Webhook Server</string> <string name="webhook_server">Webhook Server</string>
<string name="webhook_server_tips">For example: https://a.b.com/msg?token=xyz</string> <string name="webhook_server_tips">For example: https://a.b.com/msg?token=xyz</string>
<string name="webhook_params">Params</string> <string name="webhook_params">Params</string>
<string name="msg_template">Msg Template</string> <string name="msg_template">Msg Template</string>
<string name="webhook_params_tips" formatted="false">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</string> <string name="webhook_params_tips" formatted="false">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</string>
<string name="webhook_secret">Secret: If it is empty, the sign will not be calculated</string> <string name="webhook_secret">Secret: If left empty, the sign will not be calculated</string>
<string name="webhook_response">Successful Response KeywordIf left empty, HTTP status 200 represents success</string>
<string name="headers">Headers</string> <string name="headers">Headers</string>
<string name="header_key">Key</string> <string name="header_key">Key</string>
<string name="header_value">Value</string> <string name="header_value">Value</string>

View File

@ -780,6 +780,7 @@
<string name="msg_template">Params</string> <string name="msg_template">Params</string>
<string name="webhook_params_tips" formatted="false">例如payload=%7B%22text%22%3A%22[msg]%22%7D [msg]将被替换成短信内容。\n支持Json格式例如{\"text\":\"[msg]\"}。\n注意除JSON格式外msg会自动进行URLEncoder</string> <string name="webhook_params_tips" formatted="false">例如payload=%7B%22text%22%3A%22[msg]%22%7D [msg]将被替换成短信内容。\n支持Json格式例如{\"text\":\"[msg]\"}。\n注意除JSON格式外msg会自动进行URLEncoder</string>
<string name="webhook_secret">Secret置空则不计算sign</string> <string name="webhook_secret">Secret置空则不计算sign</string>
<string name="webhook_response">成功应答关键字置空则http状态200即为成功</string>
<string name="headers">Headers</string> <string name="headers">Headers</string>
<string name="header_key">Key</string> <string name="header_key">Key</string>
<string name="header_value">Value</string> <string name="header_value">Value</string>