java-wechaty icon indicating copy to clipboard operation
java-wechaty copied to clipboard

[BUG]查找群聊方法查找聊天室不全

Open LuSingTea opened this issue 4 years ago • 1 comments

问题描述

当我使用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

LuSingTea avatar Sep 16 '20 15:09 LuSingTea

我也有类似的情况。
重启hostie gateway 和 bot 后 findAll 的结果是空。 当房间有新信息后, 就可以查找的到该房间。
此后重启bot,也能查找的该房间的结果。

只有重启hostie gateway后, 房间列表会清零。 不确定这是bug 还是微信的默认功能。

Charles-Wu-Chen avatar Sep 21 '20 07:09 Charles-Wu-Chen