java-wechaty
java-wechaty copied to clipboard
[BUG]查找群聊方法查找聊天室不全
问题描述
当我使用finAll方法的时候,传入一个空的RoomQueryFilter,只会查找到我的第一个群聊
问题代码
public void roomQueryFilter() {
Wechaty bot = Wechaty.instance(Token.token)
.onScan((qrcode, statusScanStatus, data) -> System.out.println(QrcodeUtils.getQr(qrcode)))
.onLogin(user -> System.out.println("User logined :" + user.name()))
.onMessage(message -> {
String text = message.text();
Contact from = message.from();
Contact to = message.to();
System.out.println("收到来自" + from.name() + "的消息:" + text);
RoomManager roomManager = new RoomManager(from.getWechaty());
// 房间找不全
// 其他功能应该没问题
RoomQueryFilter queryFilter = new RoomQueryFilter();
// 查找全部房间
List<Room> all = roomManager.findAll(queryFilter);
System.out.println("查找到的房间个数为" + all.size());
for (Room room : all) {
try {
System.out.println("房间名为" + room.topic(null).get());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
})
.onLogout((contactId, reason) -> {
System.out.println("用户id为:" + contactId);
System.out.println("理由为:" + reason);
})
.start(true);
}
控制台输出
查找到的房间个数为1 房间名为Wechaty Summer of Code - Announce
我也有类似的情况。
重启hostie gateway 和 bot 后 findAll 的结果是空。
当房间有新信息后, 就可以查找的到该房间。
此后重启bot,也能查找的该房间的结果。
只有重启hostie gateway后, 房间列表会清零。 不确定这是bug 还是微信的默认功能。