def on_ready(self, data): self.mind.svc_message('Connection to discord established.') self.gateway = data.get('_trace', ('unknown gateway',))[0] self.set_meta(data.get('user')) for guild in data.get('guilds', []): unavailable = guild.get('unavailable', None) if unavailable is None or unavailable is False: # it's available! server = Server(**guild) server.me = property(lambda s: s.get_member(self.user.id)) self.mind.add_guild(server) if self.server_id is None: self.server_id = server.id if self.server_id == server.id: def join_fail(err): print(err) def join_success(_, s, channel): self.mind.names(self.mind.nickname, '#' + channel.name.replace(' ', '_'), [member.name.replace(' ', '_') for member in channel.members]) self.mind.topic(self.mind.nickname, '#' + channel.name.replace(' ', '_'), channel.topic) for chan in server.channels: if str(chan.type) != 'text': continue if not chan.permissions_for(chan.server.get_member(self.id)).read_messages: continue d = self.realm.createGroup(chan.server, chan) d.addCallback(self.mind.userJoined, self.mind) d.addCallback(join_success, server, chan) d.addErrback(join_fail) pass else: self._lazy_guilds = self._lazy_guilds + 1 for pm in data.get('private_channels', []): self.mind.add_private_channel(PrivateChannel(id=pm['id'], user=DiscordUser(**pm['recipient'])))