MCPcopy
hub / github.com/wechaty/python-wechaty / member_list

Method member_list

src/wechaty/user/room.py:636–688  ·  view source on GitHub ↗

Get all room member from the room Args: query: the query filter Examples: >>> members = await room.member_list() Returns: List[Contact]: the list of all room member

(self,
                          query: Union[str, RoomMemberQueryFilter] = None
                          )

Source from the content-addressed store, hash-verified

634 return contact.contact_id in self.payload.member_ids
635
636 async def member_list(self,
637 query: Union[str, RoomMemberQueryFilter] = None
638 ) -> List[Contact]:
639 """
640 Get all room member from the room
641 Args:
642 query: the query filter
643 Examples:
644 >>> members = await room.member_list()
645 Returns:
646 List[Contact]: the list of all room member
647 """
648 log.info('Get room <%s> all members', self)
649
650 member_ids = await self.puppet.room_members(self.room_id)
651 members: List[Contact] = [
652 self.wechaty.Contact.load(member_id)
653 for member_id in member_ids
654 ]
655 await asyncio.gather(*[member.ready() for member in members])
656
657 if query is not None:
658 if isinstance(query, str):
659 member_search_result = []
660 for member in members:
661
662 if member.payload is not None:
663 if member.name.__contains__(query):
664 member_search_result.append(member)
665 elif member.payload.alias is not None and \
666 member.payload.alias.__contains__(query):
667 member_search_result.append(member)
668
669 # get room_alias but hostie-server not support
670 return member_search_result
671
672 if isinstance(query, RoomMemberQueryFilter):
673 member_search_result = []
674 for member in members:
675 if member.payload is not None:
676 if member.name.__contains__(query.name):
677 member_search_result.append(member)
678
679 elif member.payload.alias is not None and \
680 member.payload.alias.__contains__(
681 query.contact_alias):
682
683 member_search_result.append(member)
684
685 # get room_alias but hostie-server not support
686 return member_search_result
687
688 return members
689
690 async def member(self,
691 query: Union[str, RoomMemberQueryFilter] = None

Callers 3

memberMethod · 0.95
on_messageMethod · 0.45
on_friendshipMethod · 0.45

Calls 3

room_membersMethod · 0.80
loadMethod · 0.45
readyMethod · 0.45

Tested by

no test coverage detected