def topic(self, topic): """ Set the room's topic. :param topic: The topic to set. """ if not self.joined: raise RoomNotJoinedError("Must join the room to set the topic") self.connection.topic(self.room, topic)
def topic(self): """ The room topic. :getter: Returns the topic (a string) if one is set, `None` if no topic has been set at all. """ if not self.joined: raise RoomNotJoinedError("Must join the room to get the topic") with self._topic_lock: return self._topic
def topic(self): """ The room topic. :getter: Returns the topic (a string) if one is set, `None` if no topic has been set at all. :raises: :class:`~RoomNotJoinedError` if the room has not yet been joined. """ if not self.joined: raise RoomNotJoinedError("Must be in a room in order to see the topic.") try: return self._bot._room_topics[str(self)] except KeyError: return None
def occupants(self): """ The room's occupants. :getter: Returns a list of occupants. :raises: :class:`~MUCNotJoinedError` if the room has not yet been joined. """ occupants = [] try: for nick in self._bot.conn.channels[self.room].users(): occupants.append(IRCMUCOccupant(nick=nick, room=self.room)) except KeyError: raise RoomNotJoinedError("Must be in a room in order to see occupants.") return occupants
def occupants(self): """ The room's occupants. :getter: Returns a list of :class:`~errbot.backends.base.MUCOccupant` instances. :raises: :class:`~MUCNotJoinedError` if the room has not yet been joined. """ occupants = [] try: for nick in holder.bot.conn.channels[str(self)].users(): occupants.append(MUCOccupant(node=nick)) except KeyError: raise RoomNotJoinedError("Must be in a room in order to see occupants.") return occupants
def occupants(self): """ The room's occupants. :getter: Returns a list of :class:`~errbot.backends.base.MUCOccupant` instances. :raises: :class:`~MUCNotJoinedError` if the room has not yet been joined. """ occupants = [] try: for occupant in self.xep0045.rooms[str(self)].values(): room_node, room_domain, _ = split_identifier(occupant["room"]) nick = occupant["nick"] occupants.append(XMPPRoomOccupant(room_node, room_domain, nick, self)) except KeyError: raise RoomNotJoinedError("Must be in a room in order to see occupants.") return occupants
def occupants(self): """ The room's occupants. :getter: Returns a list of :class:`~errbot.backends.base.MUCOccupant` instances. :raises: :class:`~MUCNotJoinedError` if the room has not yet been joined. """ occupants = [] try: for occupant in self.xep0045.rooms[str(self)].values(): occupant = occupant.copy() for attr in ("node", "domain", "resource"): occupant.pop(attr, None) occupants.append(XMPPMUCOccupant(jid=str(occupant.pop("jid")), **occupant)) except KeyError: raise RoomNotJoinedError("Must be in a room in order to see occupants.") return occupants
def occupants(self): """ The room's occupants. :getter: Returns a list of :class:`~errbot.backends.base.MUCOccupant` instances. :raises: :class:`~MUCNotJoinedError` if the room has not yet been joined. """ occupants = [] try: for occupant in self.xep0045.rooms[str(self)].values(): occupants.append( XMPPMUCOccupant(occupant.node, occupant.domain, occupant.resource)) except KeyError: raise RoomNotJoinedError( "Must be in a room in order to see occupants.") return occupants
def occupants(self): """ The room's occupants. :getter: Returns a list of :class:`~errbot.backends.base.MUCOccupant` instances. :raises: :class:`~MUCNotJoinedError` if the room has not yet been joined. """ occupants = [] try: for occupant in self.xep0045.rooms[str(self)].values(): room = self._bot.build_identifier(occupant['room']) nick = occupant['nick'] log.debug("room %s" % room) log.debug("nick %s" % nick) occupants.append(XMPPMUCOccupant(room.node, room.domain, nick)) except KeyError: raise RoomNotJoinedError( "Must be in a room in order to see occupants.") return occupants