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

Method topic

src/wechaty/user/room.py:498–548  ·  view source on GitHub ↗

get/set room topic Args: new_topic: the new topic Examples: >>> old_topic = await room.topic() >>> new_topic = await room.topic('Wechaty!') Returns: Optional[str]: the room topic

(self, new_topic: str = None)

Source from the content-addressed store, hash-verified

496 await self.puppet.room_quit(self.room_id)
497
498 async def topic(self, new_topic: str = None) -> Optional[str]:
499 """
500 get/set room topic
501 Args:
502 new_topic: the new topic
503 Examples:
504 >>> old_topic = await room.topic()
505 >>> new_topic = await room.topic('Wechaty!')
506 Returns:
507 Optional[str]: the room topic
508 """
509 log.info('Room topic (%s)', new_topic)
510
511 await self.ready()
512 login_user: ContactSelf = self.wechaty.user_self()
513
514 if new_topic is None:
515 if self.payload is not None and self.payload.topic is not None:
516 return self.payload.topic
517
518 # 获取名称之间的结合
519 room_member_ids = await \
520 self.puppet.room_members(self.room_id)
521 # filter member_ids
522 member_ids = [member_id for member_id in
523 room_member_ids
524 if member_id != login_user.contact_id]
525
526 members: List[Contact] = [
527 self.wechaty.Contact.load(member_id)
528 for member_id in member_ids]
529
530 for member in members:
531 await member.ready()
532
533 names = [member.name for member in members]
534 return ','.join(names)
535
536 try:
537 await self.puppet.room_topic(self.room_id, new_topic)
538 # reload the payload
539 await self.ready(force_sync=True)
540 return new_topic
541 # pylint:disable=W0703
542 except Exception as exception:
543 log.warning(
544 'Room topic(newTopic=%s) exception: %s',
545 new_topic,
546 exception
547 )
548 return None
549
550 async def announce(self, announce_text: str = None) -> Optional[str]:
551 """

Callers 2

test_room_topicFunction · 0.45
on_messageMethod · 0.45

Calls 5

readyMethod · 0.95
user_selfMethod · 0.80
room_membersMethod · 0.80
room_topicMethod · 0.80
loadMethod · 0.45

Tested by 1

test_room_topicFunction · 0.36