def __init__(self, host, port, nick, user, password): self.client = IRCClient(host, port, nick, user, password) self.history = ListPropertyModel("History") self.channels = ListPropertyModel("Channels") self.members = ListPropertyModel("Members") self.curr_channel = Watcher(self.channels.selected) def update_history(msgtype, source, msg): self.history.append("%-20s %s" % (source.split("!", 1)[0], msg)) def select_channel(prev_channel): if prev_channel: prev_channel.leave() del self.history[:] del self.members[:] self.curr_channel.listen(update_history) self.members.extend(self.curr_channel.list_members()) self.curr_channel.when_changed(select_channel)