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