Ejemplo n.º 1
0
 async def parse_channel_update(self, data, old):
     channel_type = try_enum(ChannelType, data.get("type"))
     if old and channel_type is ChannelType.private:
         channel = DMChannel(me=self.user, state=self, data=data)
         old_channel = DMChannel(me=self.user, state=self, data=old)
         self.dispatch("private_channel_update", old_channel, channel)
     elif old:
         guild = await self._get_guild(
             utils._get_as_snowflake(data, "guild_id"))
         if guild:
             factory, _ = _channel_factory(data["type"])
             channel = factory(guild=guild, state=self, data=data)
             old_factory, _ = _channel_factory(old["type"])
             old_channel = old_factory(guild=guild, state=self, data=old)
             self.dispatch("guild_channel_update", old_channel, channel)
Ejemplo n.º 2
0
 async def _private_channels(self):
     results = await self._members_get_all(
         "channel", predicate=lambda x: len(x.split(":")) <= 2)
     return [
         DMChannel(me=self.user, state=self, data=x) for x in results
         if not x["guild_id"]
     ]
Ejemplo n.º 3
0
 async def parse_channel_create(self, data, old):
     factory, ch_type = _channel_factory(data["type"])
     if ch_type is ChannelType.private:
         channel = DMChannel(me=self.user, data=data, state=self)
         self.dispatch("private_channel_create", channel)
     else:
         guild = await self._get_guild(
             utils._get_as_snowflake(data, "guild_id"))
         if guild:
             channel = factory(guild=guild, state=self, data=data)
             self.dispatch("guild_channel_create", channel)
Ejemplo n.º 4
0
 async def parse_channel_delete(self, data, old):
     if old and old["guild_id"]:
         guild = await self._get_guild(
             utils._get_as_snowflake(data, "guild_id"))
         if guild:
             factory, _ = _channel_factory(old["type"])
             channel = factory(guild=guild, state=self, data=old)
             self.dispatch("guild_channel_delete", channel)
     elif old:
         channel = DMChannel(me=self.user, state=self, data=old)
         self.dispatch("private_channel_delete", channel)
Ejemplo n.º 5
0
 def add_dm_channel(self, data):
     return DMChannel(me=self.user, state=self, data=data)
Ejemplo n.º 6
0
 async def _get_private_channel(self, channel_id):
     result = await self._get(f"channel:{channel_id}")
     if result:
         result = DMChannel(me=self.user, state=self, data=result)
     return result