def deserialize_message_reaction_add_event( self, shard: gateway_shard.GatewayShard, payload: data_binding.JSONObject ) -> reaction_events.ReactionAddEvent: channel_id = snowflakes.Snowflake(payload["channel_id"]) message_id = snowflakes.Snowflake(payload["message_id"]) emoji = self._app.entity_factory.deserialize_emoji(payload["emoji"]) if "member" in payload: guild_id = snowflakes.Snowflake(payload["guild_id"]) member = self._app.entity_factory.deserialize_member( payload["member"], guild_id=guild_id) return reaction_events.GuildReactionAddEvent( app=self._app, shard=shard, member=member, channel_id=channel_id, message_id=message_id, emoji=emoji, ) user_id = snowflakes.Snowflake(payload["user_id"]) return reaction_events.DMReactionAddEvent( app=self._app, shard=shard, channel_id=channel_id, message_id=message_id, user_id=user_id, emoji=emoji, )
def deserialize_message_reaction_add_event( self, shard: gateway_shard.GatewayShard, payload: data_binding.JSONObject ) -> reaction_events.ReactionAddEvent: channel_id = snowflakes.Snowflake(payload["channel_id"]) message_id = snowflakes.Snowflake(payload["message_id"]) emoji_payload = payload["emoji"] raw_emoji_id = emoji_payload.get("id") emoji_id = snowflakes.Snowflake(raw_emoji_id) if raw_emoji_id else None is_animated = bool(emoji_payload.get("animated", False)) emoji_name = emojis_models.UnicodeEmoji( emoji_payload["name"]) if not emoji_id else emoji_payload["name"] if "member" in payload: guild_id = snowflakes.Snowflake(payload["guild_id"]) member = self._app.entity_factory.deserialize_member( payload["member"], guild_id=guild_id) return reaction_events.GuildReactionAddEvent( shard=shard, member=member, channel_id=channel_id, message_id=message_id, emoji_id=emoji_id, emoji_name=emoji_name, is_animated=is_animated, ) user_id = snowflakes.Snowflake(payload["user_id"]) return reaction_events.DMReactionAddEvent( app=self._app, shard=shard, channel_id=channel_id, message_id=message_id, user_id=user_id, emoji_id=emoji_id, emoji_name=emoji_name, is_animated=is_animated, )