wechaty / puppet-padlocal

Puppet PadLocal is a Pad Protocol for WeChat
https://wechaty.js.org/docs/puppet-providers/padlocal
Apache License 2.0
642 stars 88 forks source link

Bug: Cannot delete a contact #132

Closed willin closed 2 years ago

willin commented 2 years ago
const room = await this.Room.find({
  topic: name
});
if(!room) return;
const memberList = await room.memberAll();
const friends2Delete = memberList.filter(()=>true); // some filter

// 删除异常好友
if (friends2Delete.length > 0) {
  log.info(
    'friends2Delete',
    `${friends2Delete.length}: ${friends2Delete
      .map((c) => c.name())
      .join(',')}`
  );
  await Promise.allSettled(
    // eslint-disable-next-line
    friends2Delete.map((c) => (this.puppet as any).contactDelete?.(c))
  );
}

Logs:

21:21:34 INFO Authing Develop Current group members: 4
21:21:35 INFO friends2Delete [{"_events":{},"_eventsCount":0,"id":"wechat1"}]
21:21:35 INFO friends2Delete 1: Willin
21:21:45 INFO Authing Develop Current group members: 4
21:21:46 INFO friends2Delete [{"_events":{},"_eventsCount":0,"id":"wechat1"}]
21:21:46 INFO friends2Delete 1: Willin
21:21:56 INFO Authing Develop Current group members: 4
21:21:57 INFO friends2Delete [{"_events":{},"_eventsCount":0,"id":"wechat1"}]
21:21:57 INFO friends2Delete 1: Willin

wechat1 is masked.

padlocal commented 2 years ago

contactDelete is to delete the contact as your friend, not delete from the room. If you want to remove room member, please try room.del: https://wechaty.js.org/docs/api/room#roomdelcontact--promise-void