修改群成员信息
This commit is contained in:
@@ -38,6 +38,7 @@ public class WeworkMessageBean {
|
||||
* 打卡 CLOCK_IN
|
||||
* 切换企业 SWITCH_CORP
|
||||
* 推送链接 PUSH_LINK
|
||||
* 修改群成员信息 MODIFY_GROUP_MEMBER_INFO
|
||||
* <p>
|
||||
* 非操作类型 300
|
||||
* 机器人普通日志记录 ROBOT_LOG
|
||||
@@ -81,6 +82,7 @@ public class WeworkMessageBean {
|
||||
public static final int CLOCK_IN = 222;
|
||||
public static final int SWITCH_CORP = 223;
|
||||
public static final int PUSH_LINK = 224;
|
||||
public static final int MODIFY_GROUP_MEMBER_INFO = 225;
|
||||
|
||||
public static final int ROBOT_LOG = 301;
|
||||
public static final int ROBOT_ERROR_LOG = 302;
|
||||
|
||||
@@ -171,6 +171,9 @@ object MyLooper {
|
||||
WeworkMessageBean.ADD_FRIEND_BY_GROUP -> {
|
||||
WeworkController.addFriendByGroup(message)
|
||||
}
|
||||
WeworkMessageBean.MODIFY_GROUP_MEMBER_INFO -> {
|
||||
WeworkController.modifyGroupMemberInfo(message)
|
||||
}
|
||||
WeworkMessageBean.ADD_NEED_DEAL -> {
|
||||
WeworkController.addNeedDeal(message)
|
||||
}
|
||||
|
||||
@@ -204,6 +204,22 @@ object WeworkController {
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 给群成员添加备注
|
||||
* @see WeworkMessageBean.MODIFY_GROUP_MEMBER_INFO
|
||||
* @param message#groupName 外部群
|
||||
* @param message#friend 待添加用户
|
||||
*/
|
||||
@RequestMapping
|
||||
fun modifyGroupMemberInfo(message: WeworkMessageBean): Boolean {
|
||||
LogUtils.d("modifyGroupMemberInfo(): ${message.groupName} ${message.friend}")
|
||||
return WeworkOperationImpl.modifyGroupMemberInfo(
|
||||
message,
|
||||
message.groupName,
|
||||
message.friend
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加待办
|
||||
* @see WeworkMessageBean.ADD_NEED_DEAL
|
||||
|
||||
@@ -999,6 +999,86 @@ object WeworkOperationImpl {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 给群成员添加备注
|
||||
* @see WeworkMessageBean.MODIFY_GROUP_MEMBER_INFO
|
||||
* @param groupName 外部群
|
||||
* @param friend 待添加用户
|
||||
*/
|
||||
fun modifyGroupMemberInfo(
|
||||
message: WeworkMessageBean,
|
||||
groupName: String,
|
||||
friend: WeworkMessageBean.Friend
|
||||
): Boolean {
|
||||
val startTime = System.currentTimeMillis()
|
||||
if (WeworkRoomUtil.intoRoom(groupName) && WeworkRoomUtil.intoGroupManager()) {
|
||||
if (AccessibilityUtil.findTextAndClick(getRoot(), "查看全部群成员")) {
|
||||
val title = friend.name
|
||||
val list = AccessibilityUtil.findOneByClazz(getRoot(), Views.ListView)
|
||||
if (list != null) {
|
||||
val frontNode = AccessibilityUtil.findFrontNode(list)
|
||||
val textViewList = AccessibilityUtil.findAllOnceByClazz(frontNode, Views.TextView)
|
||||
.filter { it.text == null }
|
||||
if (textViewList.size >= 2) {
|
||||
val searchButton: AccessibilityNodeInfo = textViewList[textViewList.size - 1]
|
||||
AccessibilityUtil.performClick(searchButton)
|
||||
val needTrim = title.contains(Constant.regTrimTitle)
|
||||
val trimTitle = title.replace(Constant.regTrimTitle, "")
|
||||
AccessibilityUtil.findTextInput(getRoot(), trimTitle)
|
||||
sleep(Constant.CHANGE_PAGE_INTERVAL)
|
||||
//消息页搜索结果列表
|
||||
val selectListView = AccessibilityUtil.findOneByClazz(getRoot(), Views.ListView)
|
||||
val reverseRegexTitle = RegexHelper.reverseRegexTitle(trimTitle)
|
||||
val regex1 = (if (Constant.friendRemarkStrict) "^$reverseRegexTitle" else "^(微信昵称:)?$reverseRegexTitle") +
|
||||
(if (needTrim) ".*?" else "(-.*)?(…)?(\\(.*?\\))?$")
|
||||
val regex2 = ".*?\\($reverseRegexTitle\\)$"
|
||||
val regex = "($regex1)|($regex2)"
|
||||
val matchSelect = AccessibilityUtil.findOneByTextRegex(
|
||||
selectListView,
|
||||
regex,
|
||||
timeout = 2000,
|
||||
root = false
|
||||
)
|
||||
if (selectListView != null && matchSelect != null) {
|
||||
for (i in 0 until selectListView.childCount) {
|
||||
val item = selectListView.getChild(i)
|
||||
val searchResult = AccessibilityUtil.findOnceByTextRegex(item, regex)
|
||||
//过滤异常好友
|
||||
if (searchResult?.parent != null && searchResult.parent.childCount < 3) {
|
||||
item.refresh()
|
||||
val imageView =
|
||||
AccessibilityUtil.findOneByClazz(item, Views.ImageView, root = false)
|
||||
AccessibilityUtil.performClick(imageView)
|
||||
break
|
||||
}
|
||||
}
|
||||
modifyFriendInfo(friend)
|
||||
return false
|
||||
} else {
|
||||
LogUtils.e("未搜索到结果: ${friend.name}")
|
||||
uploadCommandResult(message, ExecCallbackBean.ERROR_BUTTON, "未搜索到结果: ${friend.name}", startTime, listOf(), listOf(friend.name))
|
||||
return false
|
||||
}
|
||||
} else {
|
||||
LogUtils.e("未发现搜索按钮")
|
||||
uploadCommandResult(message, ExecCallbackBean.ERROR_BUTTON, "未发现搜索按钮", startTime, listOf(), listOf(friend.name))
|
||||
return false
|
||||
}
|
||||
} else {
|
||||
LogUtils.e("未发现通讯录列表")
|
||||
uploadCommandResult(message, ExecCallbackBean.ERROR_BUTTON, "未发现通讯录列表", startTime, listOf(), listOf(friend.name))
|
||||
return false
|
||||
}
|
||||
} else {
|
||||
uploadCommandResult(message, ExecCallbackBean.ERROR_BUTTON, "未找到查看全部群成员按钮 $groupName", startTime, listOf(), listOf(friend.name))
|
||||
return false
|
||||
}
|
||||
} else {
|
||||
uploadCommandResult(message, ExecCallbackBean.ERROR_INTO_ROOM, "进入房间失败 $groupName", startTime, listOf(), listOf(friend.name))
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加待办
|
||||
* @see WeworkMessageBean.ADD_NEED_DEAL
|
||||
|
||||
Reference in New Issue
Block a user