diff options
| author | Rapptz <[email protected]> | 2021-05-29 01:07:13 -0400 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2021-05-29 01:09:07 -0400 |
| commit | 794327cdb43096244d67e804d1181edbcb9d9c92 (patch) | |
| tree | b40ae3e9788c1018daa42b6c0ad7c4305ef8496e /discord/integrations.py | |
| parent | Fix some type errors in StreamIntegration.edit (diff) | |
| download | discord.py-794327cdb43096244d67e804d1181edbcb9d9c92.tar.xz discord.py-794327cdb43096244d67e804d1181edbcb9d9c92.zip | |
Fix type errors with required keys in the integration types
Diffstat (limited to 'discord/integrations.py')
| -rw-r--r-- | discord/integrations.py | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/discord/integrations.py b/discord/integrations.py index 1a7126c5..4f1a9f66 100644 --- a/discord/integrations.py +++ b/discord/integrations.py @@ -43,6 +43,8 @@ if TYPE_CHECKING: from .types.integration import ( IntegrationAccount as IntegrationAccountPayload, Integration as IntegrationPayload, + StreamIntegration as StreamIntegrationPayload, + BotIntegration as BotIntegrationPayload, IntegrationType, IntegrationApplication as IntegrationApplicationPayload, ) @@ -142,6 +144,7 @@ class Integration: """ await self._state.http.delete_integration(self.guild.id, self.id) + class StreamIntegration(Integration): """Represents a stream integration for Twitch or YouTube. @@ -187,7 +190,7 @@ class StreamIntegration(Integration): 'subscriber_count', ) - def _from_data(self, data: IntegrationPayload) -> None: + def _from_data(self, data: StreamIntegrationPayload) -> None: super()._from_data(data) self.revoked: bool = data['revoked'] self.expire_behaviour: ExpireBehaviour = try_enum(ExpireBehaviour, data['expire_behavior']) @@ -290,6 +293,7 @@ class StreamIntegration(Integration): await self._state.http.sync_integration(self.guild.id, self.id) self.synced_at = datetime.datetime.now(datetime.timezone.utc) + class IntegrationApplication: """Represents an application for a bot integration. @@ -312,14 +316,14 @@ class IntegrationApplication: """ __slots__ = ( - 'id', - 'name', - 'icon', - 'description', - 'summary', + 'id', + 'name', + 'icon', + 'description', + 'summary', 'user', ) - + def __init__(self, *, data: IntegrationApplicationPayload, state): self.id: int = int(data['id']) self.name: str = data['name'] @@ -329,9 +333,10 @@ class IntegrationApplication: user = data.get('bot') self.user: Optional[User] = User(state=state, data=user) if user else None + class BotIntegration(Integration): """Represents a bot integration on discord. - + .. versionadded:: 2.0 Attributes @@ -354,9 +359,9 @@ class BotIntegration(Integration): The application tied to this integration. """ - __slots__ = Integration.__slots__ + ('application',) + __slots__ = ('application',) - def _from_data(self, data: IntegrationPayload) -> None: + def _from_data(self, data: BotIntegrationPayload) -> None: super()._from_data(data) self.application = IntegrationApplication(data=data['application'], state=self._state) |