update 获取全部群成员

This commit is contained in:
gallonyin
2023-03-07 18:56:44 +08:00
parent afaa70d18c
commit 046ed0d0b2
4 changed files with 93 additions and 0 deletions

View File

@@ -50,6 +50,8 @@ public class WeworkMessageBean {
* 获取我的信息 GET_MY_INFO
* 获取最近聊天列表 GET_RECENT_LIST
* 获取企业列表 GET_CORP_LIST
* 获取全部好友信息 GET_ALL_FRIEND_INFO
* 获取全部群信息 GET_ALL_GROUP_INFO
*/
public static final int HEART_BEAT = 11;
public static final int TYPE_RECEIVE_MESSAGE_LIST = 101;
@@ -90,6 +92,8 @@ public class WeworkMessageBean {
public static final int GET_GROUP_QRCODE = 504;
public static final int GET_RECENT_LIST = 505;
public static final int GET_CORP_LIST = 506;
public static final int GET_ALL_FRIEND_INFO = 507;
public static final int GET_ALL_GROUP_INFO = 508;
/**
* roomType

View File

@@ -192,6 +192,12 @@ object MyLooper {
WeworkMessageBean.GET_RECENT_LIST -> {
WeworkController.getRecentList(message)
}
WeworkMessageBean.GET_ALL_FRIEND_INFO -> {
WeworkController.getAllFriendInfo(message)
}
WeworkMessageBean.GET_ALL_GROUP_INFO -> {
WeworkController.getAllGroupInfo(message)
}
WeworkMessageBean.GET_CORP_LIST -> {
WeworkController.getCorpList(message)
}

View File

@@ -417,6 +417,26 @@ object WeworkController {
return WeworkGetImpl.getFriendInfo(message, message.selectList)
}
/**
* 获取全部好友信息
* @see WeworkMessageBean.GET_ALL_FRIEND_INFO
*/
@RequestMapping
fun getAllFriendInfo(message: WeworkMessageBean): Boolean {
LogUtils.d("getAllFriendInfo():")
return WeworkGetImpl.getAllFriendInfo(message)
}
/**
* 获取全部群信息
* @see WeworkMessageBean.GET_ALL_GROUP_INFO
*/
@RequestMapping
fun getAllGroupInfo(message: WeworkMessageBean): Boolean {
LogUtils.d("getAllGroupInfo():")
return WeworkGetImpl.getAllGroupInfo(message)
}
/**
* 获取我的信息
* @see WeworkMessageBean.GET_MY_INFO

View File

@@ -3,7 +3,9 @@ package org.yameida.worktool.service
import com.blankj.utilcode.util.GsonUtils
import com.blankj.utilcode.util.LogUtils
import org.yameida.worktool.Constant
import org.yameida.worktool.model.ExecCallbackBean
import org.yameida.worktool.model.WeworkMessageBean
import org.yameida.worktool.utils.AccessibilityExtraUtil
import org.yameida.worktool.utils.AccessibilityUtil
import org.yameida.worktool.utils.Views
import org.yameida.worktool.utils.WeworkRoomUtil
@@ -36,6 +38,67 @@ object WeworkGetImpl {
return true
}
/**
* 获取全部好友信息
* @see WeworkMessageBean.GET_ALL_FRIEND_INFO
*/
fun getAllFriendInfo(message: WeworkMessageBean): Boolean {
return true
}
/**
* 获取全部群信息
* @see WeworkMessageBean.GET_ALL_GROUP_INFO
*/
fun getAllGroupInfo(message: WeworkMessageBean): Boolean {
val startTime = System.currentTimeMillis()
goHomeTab("通讯录")
sleep(Constant.CHANGE_PAGE_INTERVAL)
AccessibilityUtil.scrollToTop(WeworkController.weworkService, getRoot())
if (AccessibilityUtil.findTextAndClick(getRoot(), "群聊", exact = true)) {
AccessibilityExtraUtil.loadingPage("GroupSavedListActivity")
val list = AccessibilityUtil.findOneByClazz(getRoot(), Views.ListView)
if (list == null) {
LogUtils.e("未找到群聊列表")
uploadCommandResult(message, ExecCallbackBean.ERROR_BUTTON, "未找到群聊列表", startTime)
return false
}
val set = linkedSetOf<String>()
val onScrollListener = object : AccessibilityUtil.OnScrollListener() {
override fun onScroll(): Boolean {
if (!AccessibilityExtraUtil.loadingPage("GroupSavedListActivity")) {
return true
}
list.refresh()
AccessibilityUtil.findAllOnceByClazz(list, Views.TextView).map {
val groupName = it.text?.toString()
if (groupName != null && !groupName.matches("(.*个)?群聊".toRegex()) && set.add(groupName)) {
//无需处理
}
false
}
return false
}
}
//滚动前先获取一次
onScrollListener.onScroll()
AccessibilityUtil.scrollToBottom(WeworkController.weworkService, list, listener = onScrollListener, maxRetry = 100)
LogUtils.d("群数量: ${set.size} 群列表: ${set.joinToString()}")
for (groupName in set) {
if (WeworkRoomUtil.intoRoom(groupName) && WeworkRoomUtil.intoGroupManager()) {
val groupInfo = getGroupInfoDetail(saveAddress = false, saveMembers = true)
WeworkController.weworkService.webSocketManager.send(groupInfo)
}
}
uploadCommandResult(message, ExecCallbackBean.SUCCESS, "", startTime)
return true
} else {
LogUtils.e("未找到群聊入口")
uploadCommandResult(message, ExecCallbackBean.ERROR_BUTTON, "未找到群聊入口", startTime)
return false
}
}
/**
* 获取我的信息
*/