update 合并转发
This commit is contained in:
@@ -41,6 +41,7 @@ public class WeworkMessageBean {
|
||||
* 修改群成员信息 MODIFY_GROUP_MEMBER_INFO
|
||||
* 撤回消息 RECALL_MESSAGE
|
||||
* 批量转发 RELAY_MULTI_MESSAGE
|
||||
* 合并转发 RELAY_MERGE_MESSAGE
|
||||
* <p>
|
||||
* 非操作类型 300
|
||||
* 机器人普通日志记录 ROBOT_LOG
|
||||
@@ -87,6 +88,7 @@ public class WeworkMessageBean {
|
||||
public static final int MODIFY_GROUP_MEMBER_INFO = 225;
|
||||
public static final int RECALL_MESSAGE = 226;
|
||||
public static final int RELAY_MULTI_MESSAGE = 227;
|
||||
public static final int RELAY_MERGE_MESSAGE = 228;
|
||||
|
||||
public static final int ROBOT_LOG = 301;
|
||||
public static final int ROBOT_ERROR_LOG = 302;
|
||||
|
||||
@@ -180,6 +180,9 @@ object MyLooper {
|
||||
WeworkMessageBean.RELAY_MULTI_MESSAGE -> {
|
||||
WeworkController.relayMultiMessage(message)
|
||||
}
|
||||
WeworkMessageBean.RELAY_MERGE_MESSAGE -> {
|
||||
WeworkController.relayMergeMessage(message)
|
||||
}
|
||||
WeworkMessageBean.DISMISS_GROUP -> {
|
||||
WeworkController.dismissGroup(message)
|
||||
}
|
||||
|
||||
@@ -419,6 +419,27 @@ object WeworkController {
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 合并转发
|
||||
* @see WeworkMessageBean.RELAY_MERGE_MESSAGE
|
||||
* @param message#titleList 房间名称
|
||||
* @param message#messageList 消息列表
|
||||
* @param message#nameList 待转发姓名列表
|
||||
* @param message#extraText 附加留言 选填
|
||||
* @see WeworkMessageBean.TEXT_TYPE
|
||||
*/
|
||||
@RequestMapping
|
||||
fun relayMergeMessage(message: WeworkMessageBean): Boolean {
|
||||
LogUtils.d("relayMergeMessage(): ${message.titleList} ${message.messageList} ${message.nameList} ${message.extraText}")
|
||||
return WeworkOperationImpl.relayMergeMessage(
|
||||
message,
|
||||
message.titleList,
|
||||
message.messageList,
|
||||
message.nameList,
|
||||
message.extraText
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 按手机号添加好友
|
||||
* @see WeworkMessageBean.ADD_FRIEND_BY_PHONE
|
||||
|
||||
@@ -844,6 +844,39 @@ object WeworkOperationImpl {
|
||||
messageList: List<WeworkMessageBean.SubMessageBean>,
|
||||
nameList: List<String>,
|
||||
extraText: String? = null
|
||||
): Boolean {
|
||||
return relayMultiMessage(message, titleList, messageList, nameList, extraText, "逐条转发")
|
||||
}
|
||||
|
||||
/**
|
||||
* 合并转发
|
||||
* @see WeworkMessageBean.RELAY_MERGE_MESSAGE
|
||||
* @param titleList 房间名称
|
||||
* @param messageList 消息列表
|
||||
* @param nameList 待转发姓名列表
|
||||
* @param extraText 附加留言 选填
|
||||
* @see WeworkMessageBean.TEXT_TYPE
|
||||
*/
|
||||
fun relayMergeMessage(
|
||||
message: WeworkMessageBean,
|
||||
titleList: List<String>,
|
||||
messageList: List<WeworkMessageBean.SubMessageBean>,
|
||||
nameList: List<String>,
|
||||
extraText: String? = null
|
||||
): Boolean {
|
||||
return relayMultiMessage(message, titleList, messageList, nameList, extraText, "合并转发")
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量转发 合并转发
|
||||
*/
|
||||
private fun relayMultiMessage(
|
||||
message: WeworkMessageBean,
|
||||
titleList: List<String>,
|
||||
messageList: List<WeworkMessageBean.SubMessageBean>,
|
||||
nameList: List<String>,
|
||||
extraText: String? = null,
|
||||
key: String
|
||||
): Boolean {
|
||||
val startTime = System.currentTimeMillis()
|
||||
if (messageList.isEmpty()) {
|
||||
@@ -883,7 +916,8 @@ object WeworkOperationImpl {
|
||||
hasOpenMulti = true
|
||||
} else {
|
||||
LogUtils.e("$title: 多选失败")
|
||||
error("$title: 多选失败 $originalContent")
|
||||
uploadCommandResult(message, ExecCallbackBean.ERROR_BUTTON, "多选失败 $$originalContent", startTime, listOf(), titleList)
|
||||
return false
|
||||
}
|
||||
} else {
|
||||
if (WeworkTextUtil.longClickMyMessageItem(
|
||||
@@ -898,7 +932,8 @@ object WeworkOperationImpl {
|
||||
hasOpenMulti = true
|
||||
} else {
|
||||
LogUtils.e("$title: 多选失败")
|
||||
error("$title: 多选失败 $originalContent")
|
||||
uploadCommandResult(message, ExecCallbackBean.ERROR_BUTTON, "多选失败 $$originalContent", startTime, listOf(), titleList)
|
||||
return false
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -912,7 +947,8 @@ object WeworkOperationImpl {
|
||||
"单击"
|
||||
)
|
||||
) {
|
||||
LogUtils.d("单击成功")
|
||||
LogUtils.d("单击成功 $originalContent")
|
||||
sleep(3000)
|
||||
hasOpenMulti = true
|
||||
} else {
|
||||
LogUtils.e("$title: 单击失败")
|
||||
@@ -927,7 +963,8 @@ object WeworkOperationImpl {
|
||||
"单击"
|
||||
)
|
||||
) {
|
||||
LogUtils.d("单击成功")
|
||||
LogUtils.d("单击成功 $originalContent")
|
||||
sleep(3000)
|
||||
hasOpenMulti = true
|
||||
} else {
|
||||
LogUtils.e("$title: 单击失败")
|
||||
@@ -936,6 +973,25 @@ object WeworkOperationImpl {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (hasOpenMulti) {
|
||||
val list = AccessibilityUtil.findOnceByClazz(getRoot(), Views.ViewGroup, minChildCount = 4)
|
||||
if (AccessibilityUtil.performClickWithSon(list)) {
|
||||
if (AccessibilityUtil.findTextAndClick(getRoot(), key)) {
|
||||
if (relaySelectTarget(nameList, extraText)) {
|
||||
LogUtils.d("$title: 转发成功")
|
||||
} else {
|
||||
LogUtils.e("$title: 转发失败")
|
||||
error("$title: 转发失败")
|
||||
}
|
||||
} else {
|
||||
LogUtils.e("未找到逐条转发按钮")
|
||||
error("未找到逐条转发按钮")
|
||||
}
|
||||
} else {
|
||||
LogUtils.e("未找到转发按钮")
|
||||
error("未找到转发按钮")
|
||||
}
|
||||
}
|
||||
} else {
|
||||
LogUtils.d("$title: 转发失败 未找到房间")
|
||||
error("$title: 转发失败 未找到房间")
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.view.accessibility.AccessibilityNodeInfo
|
||||
import com.blankj.utilcode.util.LogUtils
|
||||
import org.yameida.worktool.Constant
|
||||
import org.yameida.worktool.model.WeworkMessageBean
|
||||
import org.yameida.worktool.service.WeworkController
|
||||
import org.yameida.worktool.service.getRoot
|
||||
import org.yameida.worktool.service.sleep
|
||||
import org.yameida.worktool.utils.AccessibilityUtil.findAllByClazz
|
||||
@@ -457,7 +458,7 @@ object WeworkTextUtil {
|
||||
private fun longClickMessageItem(item: AccessibilityNodeInfo, roomType: Int, key: String): Boolean {
|
||||
val backNode = getMessageListNode(item, roomType)
|
||||
if (key == "单击") {
|
||||
return AccessibilityUtil.performClickWithSon(backNode)
|
||||
return AccessibilityUtil.clickByNode(WeworkController.weworkService, backNode)
|
||||
}
|
||||
AccessibilityUtil.performLongClickWithSon(backNode)
|
||||
sleep(Constant.POP_WINDOW_INTERVAL)
|
||||
@@ -475,7 +476,7 @@ object WeworkTextUtil {
|
||||
private fun longClickMyMessageItem(item: AccessibilityNodeInfo, roomType: Int, key: String): Boolean {
|
||||
val frontNode = getMyMessageListNode(item)
|
||||
if (key == "单击") {
|
||||
return AccessibilityUtil.performClickWithSon(frontNode)
|
||||
return AccessibilityUtil.clickByNode(WeworkController.weworkService, frontNode)
|
||||
}
|
||||
AccessibilityUtil.performLongClickWithSon(frontNode)
|
||||
sleep(Constant.POP_WINDOW_INTERVAL)
|
||||
|
||||
Reference in New Issue
Block a user