update 转发结果回调优化

This commit is contained in:
gallonyin
2023-09-17 01:07:41 +08:00
parent 8b3f5043ab
commit c6774ad211
2 changed files with 62 additions and 33 deletions

View File

@@ -0,0 +1,11 @@
package org.yameida.worktool.model.operation
class RelaySelectResult {
var successList = arrayListOf<String>()
var failList = arrayListOf<String>()
var result = false
}

View File

@@ -8,6 +8,7 @@ import com.github.yoojia.qrcode.qrcode.QRCodeDecoder
import com.blankj.utilcode.util.* import com.blankj.utilcode.util.*
import com.lzy.okgo.OkGo import com.lzy.okgo.OkGo
import org.yameida.worktool.model.ExecCallbackBean import org.yameida.worktool.model.ExecCallbackBean
import org.yameida.worktool.model.operation.RelaySelectResult
import org.yameida.worktool.utils.* import org.yameida.worktool.utils.*
import java.io.File import java.io.File
import java.lang.Exception import java.lang.Exception
@@ -193,9 +194,10 @@ object WeworkOperationImpl {
) )
) { ) {
LogUtils.d("开始转发") LogUtils.d("开始转发")
if (relaySelectTarget(nameList, extraText)) { val relaySelectResult = relaySelectTarget(nameList, extraText)
if (relaySelectResult.result) {
LogUtils.d("$title: 转发成功") LogUtils.d("$title: 转发成功")
uploadCommandResult(message, ExecCallbackBean.SUCCESS, "$title: 转发成功", startTime, titleList, listOf()) uploadCommandResult(message, ExecCallbackBean.SUCCESS, "$title: 转发成功", startTime, relaySelectResult.successList, relaySelectResult.failList)
goHome() goHome()
return true return true
} else { } else {
@@ -219,9 +221,10 @@ object WeworkOperationImpl {
) )
) { ) {
LogUtils.d("开始转发") LogUtils.d("开始转发")
if (relaySelectTarget(nameList, extraText)) { val relaySelectResult = relaySelectTarget(nameList, extraText)
if (relaySelectResult.result) {
LogUtils.d("$title: 转发成功") LogUtils.d("$title: 转发成功")
uploadCommandResult(message, ExecCallbackBean.SUCCESS, "$title: 转发成功", startTime, titleList, listOf()) uploadCommandResult(message, ExecCallbackBean.SUCCESS, "$title: 转发成功", startTime, relaySelectResult.successList, relaySelectResult.failList)
goHome() goHome()
return true return true
} else { } else {
@@ -483,10 +486,11 @@ object WeworkOperationImpl {
uploadCommandResult(message, ExecCallbackBean.ERROR_RELAY, "未找到发送给同事: $objectName", startTime, listOf(), titleList) uploadCommandResult(message, ExecCallbackBean.ERROR_RELAY, "未找到发送给同事: $objectName", startTime, listOf(), titleList)
return false return false
} }
if (relaySelectTarget(titleList, extraText, timeout = 10000)) { val relaySelectResult = relaySelectTarget(titleList, extraText, timeout = 10000)
if (relaySelectResult.result) {
AccessibilityExtraUtil.loadingPage("CommonSelectActivity", "ExternalGroupMessageListActivity", "ExternalWechatUserMessageListActivity", "MessageListActivity") AccessibilityExtraUtil.loadingPage("CommonSelectActivity", "ExternalGroupMessageListActivity", "ExternalWechatUserMessageListActivity", "MessageListActivity")
AccessibilityUtil.waitForPageMissing("CommonSelectActivity") AccessibilityUtil.waitForPageMissing("CommonSelectActivity")
uploadCommandResult(message, ExecCallbackBean.SUCCESS, "", startTime, titleList, listOf()) uploadCommandResult(message, ExecCallbackBean.SUCCESS, "", startTime, relaySelectResult.successList, relaySelectResult.failList)
goHome() goHome()
return true return true
} else { } else {
@@ -553,8 +557,9 @@ object WeworkOperationImpl {
AccessibilityUtil.performClick(imageViewList[1]) AccessibilityUtil.performClick(imageViewList[1])
val shareFileButton = AccessibilityUtil.findOneByDesc(getRoot(), "转发") val shareFileButton = AccessibilityUtil.findOneByDesc(getRoot(), "转发")
AccessibilityUtil.performClick(shareFileButton) AccessibilityUtil.performClick(shareFileButton)
if (relaySelectTarget(titleList, extraText)) { val relaySelectResult = relaySelectTarget(titleList, extraText)
uploadCommandResult(message, ExecCallbackBean.SUCCESS, "", startTime, titleList, listOf()) if (relaySelectResult.result) {
uploadCommandResult(message, ExecCallbackBean.SUCCESS, "", startTime, relaySelectResult.successList, relaySelectResult.failList)
goHome() goHome()
return true return true
} else { } else {
@@ -603,8 +608,9 @@ object WeworkOperationImpl {
val retryCount = maxRetryCount ?: 2 val retryCount = maxRetryCount ?: 2
val startTime = System.currentTimeMillis() val startTime = System.currentTimeMillis()
if (IWWAPIUtil.sendMicroProgram(fileUrl, originalContent, objectName, receivedContent)) { if (IWWAPIUtil.sendMicroProgram(fileUrl, originalContent, objectName, receivedContent)) {
if (relaySelectTarget(titleList, extraText)) { val relaySelectResult = relaySelectTarget(titleList, extraText)
uploadCommandResult(message, ExecCallbackBean.SUCCESS, "", startTime, titleList, listOf()) if (relaySelectResult.result) {
uploadCommandResult(message, ExecCallbackBean.SUCCESS, "", startTime, relaySelectResult.successList, relaySelectResult.failList)
goHome() goHome()
return true return true
} else { } else {
@@ -661,8 +667,9 @@ object WeworkOperationImpl {
AccessibilityUtil.performClick(imageViewList[1]) AccessibilityUtil.performClick(imageViewList[1])
val shareFileButton = AccessibilityUtil.findOneByDesc(getRoot(), "转发") val shareFileButton = AccessibilityUtil.findOneByDesc(getRoot(), "转发")
AccessibilityUtil.performClick(shareFileButton) AccessibilityUtil.performClick(shareFileButton)
if (relaySelectTarget(titleList, extraText)) { val relaySelectResult = relaySelectTarget(titleList, extraText)
uploadCommandResult(message, ExecCallbackBean.SUCCESS, "", startTime, titleList, listOf()) if (relaySelectResult.result) {
uploadCommandResult(message, ExecCallbackBean.SUCCESS, "", startTime, relaySelectResult.successList, relaySelectResult.failList)
goHome() goHome()
return true return true
} else { } else {
@@ -765,10 +772,11 @@ object WeworkOperationImpl {
uploadCommandResult(message, ExecCallbackBean.ERROR_RELAY, "未找到发送给同事: $objectName", startTime, listOf(), titleList) uploadCommandResult(message, ExecCallbackBean.ERROR_RELAY, "未找到发送给同事: $objectName", startTime, listOf(), titleList)
return false return false
} }
if (relaySelectTarget(titleList, extraText, timeout = 10000)) { val relaySelectResult = relaySelectTarget(titleList, extraText, timeout = 10000)
if (relaySelectResult.result) {
AccessibilityExtraUtil.loadingPage("CommonSelectActivity", "ExternalGroupMessageListActivity", "ExternalWechatUserMessageListActivity", "MessageListActivity") AccessibilityExtraUtil.loadingPage("CommonSelectActivity", "ExternalGroupMessageListActivity", "ExternalWechatUserMessageListActivity", "MessageListActivity")
AccessibilityUtil.waitForPageMissing("CommonSelectActivity") AccessibilityUtil.waitForPageMissing("CommonSelectActivity")
uploadCommandResult(message, ExecCallbackBean.SUCCESS, "", startTime, titleList, listOf()) uploadCommandResult(message, ExecCallbackBean.SUCCESS, "", startTime, relaySelectResult.successList, relaySelectResult.failList)
goHome() goHome()
return true return true
} else { } else {
@@ -847,10 +855,11 @@ object WeworkOperationImpl {
uploadCommandResult(message, ExecCallbackBean.ERROR_RELAY, "未找到发送给同事: $objectName", startTime, listOf(), titleList) uploadCommandResult(message, ExecCallbackBean.ERROR_RELAY, "未找到发送给同事: $objectName", startTime, listOf(), titleList)
return false return false
} }
if (relaySelectTarget(titleList, extraText, timeout = 10000)) { val relaySelectResult = relaySelectTarget(titleList, extraText, timeout = 10000)
if (relaySelectResult.result) {
AccessibilityExtraUtil.loadingPage("CommonSelectActivity", "ExternalGroupMessageListActivity", "ExternalWechatUserMessageListActivity", "MessageListActivity") AccessibilityExtraUtil.loadingPage("CommonSelectActivity", "ExternalGroupMessageListActivity", "ExternalWechatUserMessageListActivity", "MessageListActivity")
AccessibilityUtil.waitForPageMissing("CommonSelectActivity") AccessibilityUtil.waitForPageMissing("CommonSelectActivity")
uploadCommandResult(message, ExecCallbackBean.SUCCESS, "", startTime, titleList, listOf()) uploadCommandResult(message, ExecCallbackBean.SUCCESS, "", startTime, relaySelectResult.successList, relaySelectResult.failList)
goHome() goHome()
return true return true
} else { } else {
@@ -904,8 +913,9 @@ object WeworkOperationImpl {
val retryCount = maxRetryCount ?: 2 val retryCount = maxRetryCount ?: 2
val startTime = System.currentTimeMillis() val startTime = System.currentTimeMillis()
if (IWWAPIUtil.sendLink(fileUrl, originalContent, objectName, receivedContent)) { if (IWWAPIUtil.sendLink(fileUrl, originalContent, objectName, receivedContent)) {
if (relaySelectTarget(titleList, extraText)) { val relaySelectResult = relaySelectTarget(titleList, extraText)
uploadCommandResult(message, ExecCallbackBean.SUCCESS, "", startTime, titleList, listOf()) if (relaySelectResult.result) {
uploadCommandResult(message, ExecCallbackBean.SUCCESS, "", startTime, relaySelectResult.successList, relaySelectResult.failList)
goHome() goHome()
return true return true
} else { } else {
@@ -1266,9 +1276,10 @@ object WeworkOperationImpl {
val bottomList = AccessibilityUtil.findOnceByClazz(getRoot(), Views.ViewGroup, minChildCount = 4) val bottomList = AccessibilityUtil.findOnceByClazz(getRoot(), Views.ViewGroup, minChildCount = 4)
if (AccessibilityUtil.performClickWithSon(bottomList)) { if (AccessibilityUtil.performClickWithSon(bottomList)) {
if (AccessibilityUtil.findTextAndClick(getRoot(), key)) { if (AccessibilityUtil.findTextAndClick(getRoot(), key)) {
if (relaySelectTarget(nameList, extraText)) { val relaySelectResult = relaySelectTarget(nameList, extraText)
if (relaySelectResult.result) {
LogUtils.d("$groupName: 转发成功") LogUtils.d("$groupName: 转发成功")
uploadCommandResult(message, ExecCallbackBean.SUCCESS, "$groupName: 转发成功", startTime, nameList, listOf()) uploadCommandResult(message, ExecCallbackBean.SUCCESS, "$groupName: 转发成功", startTime, relaySelectResult.successList, relaySelectResult.failList)
goHome() goHome()
return true return true
} else { } else {
@@ -1424,9 +1435,10 @@ object WeworkOperationImpl {
val bottomList = AccessibilityUtil.findOnceByClazz(getRoot(), Views.ViewGroup, minChildCount = 4) val bottomList = AccessibilityUtil.findOnceByClazz(getRoot(), Views.ViewGroup, minChildCount = 4)
if (AccessibilityUtil.performClickWithSon(bottomList)) { if (AccessibilityUtil.performClickWithSon(bottomList)) {
if (AccessibilityUtil.findTextAndClick(getRoot(), key)) { if (AccessibilityUtil.findTextAndClick(getRoot(), key)) {
if (relaySelectTarget(nameList, extraText)) { val relaySelectResult = relaySelectTarget(nameList, extraText)
if (relaySelectResult.result) {
LogUtils.d("$title: 转发成功") LogUtils.d("$title: 转发成功")
uploadCommandResult(message, ExecCallbackBean.SUCCESS, "$title: 转发成功", startTime, nameList, listOf()) uploadCommandResult(message, ExecCallbackBean.SUCCESS, "$title: 转发成功", startTime, relaySelectResult.successList, relaySelectResult.failList)
goHome() goHome()
return true return true
} else { } else {
@@ -1823,10 +1835,11 @@ object WeworkOperationImpl {
AccessibilityUtil.performClick(addButton) AccessibilityUtil.performClick(addButton)
AccessibilityUtil.findTextInput(getRoot(), receivedContent) AccessibilityUtil.findTextInput(getRoot(), receivedContent)
AccessibilityUtil.findTextAndClick(getRoot(), "参与人") AccessibilityUtil.findTextAndClick(getRoot(), "参与人")
if (relaySelectTarget(titleList, needSend = false)) { val relaySelectResult = relaySelectTarget(titleList, needSend = false)
if (relaySelectResult.result) {
LogUtils.e("添加参与人成功") LogUtils.e("添加参与人成功")
if (AccessibilityUtil.findTextAndClick(getRoot(), "保存并发送到聊天", "保存并建群发送")) { if (AccessibilityUtil.findTextAndClick(getRoot(), "保存并发送到聊天", "保存并建群发送")) {
uploadCommandResult(message, ExecCallbackBean.SUCCESS, "", startTime, titleList, listOf()) uploadCommandResult(message, ExecCallbackBean.SUCCESS, "", startTime, relaySelectResult.successList, relaySelectResult.failList)
goHome() goHome()
return true return true
} else { } else {
@@ -2131,11 +2144,12 @@ object WeworkOperationImpl {
* selectList 昵称或群名列表 * selectList 昵称或群名列表
* extraText 转发是否附加一条文本 * extraText 转发是否附加一条文本
*/ */
private fun relaySelectTarget(selectList: List<String>, extraText: String? = null, needSend: Boolean = true, timeout: Long = 5000): Boolean { private fun relaySelectTarget(selectList: List<String>, extraText: String? = null, needSend: Boolean = true, timeout: Long = 5000): RelaySelectResult {
val relaySelectResult = RelaySelectResult()
if (AccessibilityUtil.findOneByText(getRoot(), "选择联系人", "选择参与人", exact = true, timeout = timeout) == null) { if (AccessibilityUtil.findOneByText(getRoot(), "选择联系人", "选择参与人", exact = true, timeout = timeout) == null) {
LogUtils.e("未找到选择联系人/选择参与人") LogUtils.e("未找到选择联系人/选择参与人")
error("未找到选择联系人/选择参与人") error("未找到选择联系人/选择参与人")
return false return relaySelectResult
} }
//聊天消息列表 1ListView 0RecycleView xViewGroup //聊天消息列表 1ListView 0RecycleView xViewGroup
val list = AccessibilityUtil.findOneByClazz(getRoot(), Views.ListView) val list = AccessibilityUtil.findOneByClazz(getRoot(), Views.ListView)
@@ -2180,8 +2194,10 @@ object WeworkOperationImpl {
} }
} }
if (matchSelect != null) { if (matchSelect != null) {
relaySelectResult.successList.add(select)
LogUtils.d("找到搜索结果: $select") LogUtils.d("找到搜索结果: $select")
} else { } else {
relaySelectResult.failList.add(select)
LogUtils.e("未搜索到结果: $select") LogUtils.e("未搜索到结果: $select")
error("未搜索到结果: $select") error("未搜索到结果: $select")
val noResult = AccessibilityUtil.findOnceByText(getRoot(), "无搜索结果", exact = true) != null val noResult = AccessibilityUtil.findOnceByText(getRoot(), "无搜索结果", exact = true) != null
@@ -2192,7 +2208,7 @@ object WeworkOperationImpl {
if (!isSelect) { if (!isSelect) {
LogUtils.e("未选择接收者") LogUtils.e("未选择接收者")
error("未选择接收者") error("未选择接收者")
return false return relaySelectResult
} }
val confirmButton = val confirmButton =
AccessibilityUtil.findOneByTextRegex(getRoot(), "^确定(\\(.*?\\))?\$") AccessibilityUtil.findOneByTextRegex(getRoot(), "^确定(\\(.*?\\))?\$")
@@ -2200,7 +2216,8 @@ object WeworkOperationImpl {
AccessibilityUtil.performClick(confirmButton) AccessibilityUtil.performClick(confirmButton)
sleep(Constant.POP_WINDOW_INTERVAL) sleep(Constant.POP_WINDOW_INTERVAL)
if (!needSend) { if (!needSend) {
return true relaySelectResult.result = true
return relaySelectResult
} }
if (!extraText.isNullOrBlank()) { if (!extraText.isNullOrBlank()) {
LogUtils.d("extraText: $extraText") LogUtils.d("extraText: $extraText")
@@ -2209,25 +2226,26 @@ object WeworkOperationImpl {
val sendButton = AccessibilityUtil.findOneByTextRegex(getRoot(), "^发送(\\(.*?\\))?\$") val sendButton = AccessibilityUtil.findOneByTextRegex(getRoot(), "^发送(\\(.*?\\))?\$")
if (sendButton != null) { if (sendButton != null) {
AccessibilityUtil.performClick(sendButton) AccessibilityUtil.performClick(sendButton)
return true relaySelectResult.result = true
return relaySelectResult
} }
LogUtils.e("未发现发送按钮") LogUtils.e("未发现发送按钮")
error("未发现发送按钮") error("未发现发送按钮")
return false return relaySelectResult
} else { } else {
LogUtils.e("未发现确认按钮") LogUtils.e("未发现确认按钮")
error("未发现确认按钮") error("未发现确认按钮")
return false return relaySelectResult
} }
} else { } else {
LogUtils.e("未发现搜索和多选按钮") LogUtils.e("未发现搜索和多选按钮")
error("未发现搜索和多选按钮") error("未发现搜索和多选按钮")
return false return relaySelectResult
} }
} }
LogUtils.e("未知错误") LogUtils.e("未知错误")
error("未知错误") error("未知错误")
return false return relaySelectResult
} }
/** /**