diff --git a/docs/source/models/index.rst b/docs/source/models/index.rst index 24a02de..e03686c 100644 --- a/docs/source/models/index.rst +++ b/docs/source/models/index.rst @@ -4,4 +4,5 @@ Melisa Models .. toctree:: :maxdepth: 1 - user \ No newline at end of file + user + guild diff --git a/melisa/models/guild/guild.py b/melisa/models/guild/guild.py index cb83935..124fc03 100644 --- a/melisa/models/guild/guild.py +++ b/melisa/models/guild/guild.py @@ -14,7 +14,7 @@ from ...utils.types import APINullable class DefaultMessageNotificationLevel(IntEnum): """Message notification level - + Attributes ---------- ALL_MESSAGES: @@ -53,7 +53,7 @@ class ExplicitContentFilterLevel(IntEnum): class MFALevel(IntEnum): """MFA Level - + Attributes ---------- NONE: @@ -174,49 +174,50 @@ class GuildFeatures(Enum): Attributes ---------- ANIMATED_ICON: - Guild has access to set an animated guild icon + Guild has access to set an animated guild icon BANNER: - Guild has access to set a guild banner image + Guild has access to set a guild banner image COMMERCE: - Guild has access to use commerce features (i.e. create store channels) + Guild has access to use commerce features (i.e. create store channels) COMMUNITY: - Guild can enable welcome screen, Membership Screening, stage channels and discovery, and receives community updates + Guild can enable welcome screen, Membership Screening, + stage channels and discovery, and receives community updates DISCOVERABLE: - Guild is able to be discovered in the directory + Guild is able to be discovered in the directory FEATURABLE: - Guild is able to be featured in the directory + Guild is able to be featured in the directory INVITE_SPLASH: - Guild has access to set an invite splash background + Guild has access to set an invite splash background MEMBER_VERIFICATION_GATE_ENABLED: - Guild has enabled Membership Screening + Guild has enabled Membership Screening MONETIZATION_ENABLED: - Guild has enabled monetization + Guild has enabled monetization MORE_STICKERS: - Guild has increased custom sticker slots + Guild has increased custom sticker slots NEWS: - Guild has access to create news channels + Guild has access to create news channels PARTNERED: - Guild is partnered + Guild is partnered PREVIEW_ENABLED: - Guild can be previewed before joining via Membership Screening or the directory + Guild can be previewed before joining via Membership Screening or the directory PRIVATE_THREADS: - Guild has access to create private threads + Guild has access to create private threads ROLE_ICONS: - Guild is able to set role icons + Guild is able to set role icons SEVEN_DAY_THREAD_ARCHIVE: - Guild has access to the seven day archive time for threads + Guild has access to the seven day archive time for threads THREE_DAY_THREAD_ARCHIVE: - Guild has access to the three day archive time for threads + Guild has access to the three day archive time for threads TICKETED_EVENTS_ENABLED: - Guild has enabled ticketed events + Guild has enabled ticketed events VANITY_URL: - Guild has access to set a vanity URL + Guild has access to set a vanity URL VERIFIED: - Guild is verified + Guild is verified VIP_REGIONS: - Guild has access to set 384kbps bitrate in voice (previously VIP voice servers) + Guild has access to set 384kbps bitrate in voice (previously VIP voice servers) WELCOME_SCREEN_ENABLED: - Guild has enabled the welcome screen + Guild has enabled the welcome screen """ ANIMATED_ICON = "ANIMATED_ICON" @@ -245,8 +246,9 @@ class GuildFeatures(Enum): @dataclass(repr=False) class Guild(APIModelBase): - """Guilds in Discord represent an isolated collection of users and channels, and are often referred to as "servers" in the UI. - + """Guilds in Discord represent an isolated collection of users and channels, + and are often referred to as "servers" in the UI. + Attributes ---------- id: :class:`~melisa.utils.types.Snowflake` @@ -255,21 +257,21 @@ class Guild(APIModelBase): Guild name (2-100 characters, excluding trailing and leading whitespace) icon: :class:`str` Icon hash - icon_hash: :class:`str` + icon_hash: Optional[:class:`str`] Icon hash, returned when in the template object - splash: :class:`str` + splash: Optional[:class:`str`] Splash hash - discovery_splash: :class:`str` + discovery_splash: Optional[:class:`str`] Discovery splash hash; only present for guilds with the "DISCOVERABLE" feature owner: :class:`bool` True if the user is the owner of the guild - owner_id: :class:`~melisa.utils.types.Snowflake` + owner_id: Optional[:class:`~melisa.utils.types.Snowflake`] Id of owner - permissions: :class:`str` + permissions: Optional[:class:`str`] Total permissions for the user in the guild (excludes overwrites) - region: :class:`str` + region: Optional[:class:`str`] Voice region id for the guild (deprecated) - afk_channel_id: :class:`~melisa.utils.types.Snowflake` + afk_channel_id: Optional[:class:`~melisa.utils.types.Snowflake`] Id of afk channel afk_timeout: :class:`int` Afk timeout in seconds @@ -279,79 +281,89 @@ class Guild(APIModelBase): The channel id that the widget will generate an invite to, or `null` if set to no invite verification_level: :class:`int` Verification level required for the guild - default_message_notifications: :class:`int` + default_message_notifications: Optional[:class:`int`] Default message notifications level explicit_content_filter: :class:`int` Explicit content filter level - features: + features: Optional[:class:`typing.Any`] Enabled guild features - roles: + roles: Optional[:class:`typing.Any`] Roles in the guild - emojis: + emojis: Optional[:class:`typing.Any`] Custom guild emojis mfa_level: :class:`int` Required MFA level for the guild - application_id: :class:`~melisa.utils.types.Snowflake` + application_id: Optional[:class:`~melisa.utils.types.Snowflake`] Application id of the guild creator if it is bot-created - system_channel_id: :class:`~melisa.utils.types.Snowflake` - The id of the channel where guild notices such as welcome messages and boost events are posted + system_channel_id: Optional[:class:`~melisa.utils.types.Snowflake`] + The id of the channel where guild notices + such as welcome messages and boost events are posted system_channel_flags: :class:`int` System channel flags - rules_channel_id: :class:`~melisa.utils.types.Snowflake` + rules_channel_id: Optional[:class:`~melisa.utils.types.Snowflake`] The id of the channel where Community guilds can display rules and/or guidelines - joined_at: :class:`int` + joined_at: Optional[:class:`int`] When this guild was joined at - large: :class:`bool` + large: Optional[:class:`bool`] True if this is considered a large guild unavailable: :class:`bool` True if this guild is unavailable due to an outage - member_count: :class:`int` + member_count: Optional[:class:`int`] Total number of members in this guild voice_states: States of members currently in voice channels; lacks the `guild_id` key - members: + members: Optional[:class:`typing.Any`] Users in the guild - channels: + channels: Optional[:class:`typing.Any`] Channels in the guild - threads: + threads: Optional[:class:`typing.Any`] All active threads in the guild that current user has permission to view - presences: - Presences of the members in the guild, will only include non-offline members if the size is greater than `large threshold` - max_presences: :class:`int` - The maximum number of presences for the guild (`null` is always returned, apart from the largest of guilds) - max_members: :class:`int` + presences: Optional[:class:`typing.Any`] + Presences of the members in the guild, will only include non-offline members + if the size is greater than `large threshold` + max_presences: Optional[:class:`int`] + The maximum number of presences for the guild + (`null` is always returned, apart from the largest of guilds) + max_members: Optional[:class:`int`] The maximum number of members for the guild - vanity_url_code: :class:`str` + vanity_url_code: Optional[:class:`str`] The vanity url code for the guild - description: :class:`str` + description: Optional[:class:`str`] The description of a Community guild - banner: :class:`str` + banner: Optional[:class:`str`] Banner hash - premium_tier: :class:`str` + premium_tier: Optional[:class:`str`] Premium tier (Server Boost level) - premium_subscription_count: :class:`int` + premium_subscription_count: Optional[:class:`int`] The number of boosts this guild currently has - preferred_locale: :class:`str` - The preferred locale of a Community guild; used in server discovery and notices from Discord, and sent in interactions; defaults to "en-US" - public_updates_channel_id: :class:`~melisa.utils.types.Snowflake` - The id of the channel where admins and moderators of Community guilds receive notices from Discord - max_video_channel_users: :class:`int` + preferred_locale: Optional[:class:`str`] + The preferred locale of a Community guild; + used in server discovery and notices from Discord, + and sent in interactions; defaults to "en-US" + public_updates_channel_id: Optional[:class:`~melisa.utils.types.Snowflake`] + The id of the channel where admins and moderators of + Community guilds receive notices from Discord + max_video_channel_users: Optional[:class:`int`] The maximum amount of users in a video channel - approximate_member_count: :class:`int` - Approximate number of members in this guild, returned from the `GET /guilds/` endpoint when `with_counts` is `true` - approximate_presence_count: :class:`int` - Approximate number of non-offline members in this guild, returned from the `GET /guilds/` endpoint when `with_counts` is `true` - nsfw_level: :class:`int` + approximate_member_count: Optional[:class:`int`] + Approximate number of members in this guild, + returned from the `GET /guilds/` endpoint when `with_counts` is `true` + approximate_presence_count: Optional[:class:`int`] + Approximate number of non-offline members in this guild, + returned from the `GET /guilds/` + endpoint when `with_counts` is `true` + nsfw_level: Optional[:class:`int`] Guild NSFW level - premium_progress_bar_enabled: :class:`bool` + premium_progress_bar_enabled: Optional[:class:`bool`] Whether the guild has the boost progress bar enabled - stage_instances: + stage_instances: Optional[:class:`typing.Any`] Stage instances in the guild - stickers: + stickers: Optional[:class:`typing.Any`] Custom guild stickers - welcome_screen: - The welcome screen of a Community guild, shown to new members, returned in an Invite's guild object - guild_scheduled_events: + welcome_screen: Optional[:class:`typing.Any`] + The welcome screen of a Community guild, shown to new members, + returned in an Invite's guild object + guild_scheduled_events: Optional[:class:`typing.Any`] The scheduled events in the guild """ @@ -420,8 +432,10 @@ class Guild(APIModelBase): @dataclass(repr=False) class UnavailableGuild(APIModelBase): - """A partial guild object. Represents an Offline Guild, or a Guild whose information has not been provided through Guild Create events during the Gateway connect. - + """A partial guild object. + Represents an Offline Guild, or a Guild whose information has not been provided + through Guild Create events during the Gateway connect. + Attributes ---------- id: :class:`~melisa.utils.types.Snowflake` diff --git a/melisa/models/user/user.py b/melisa/models/user/user.py index 1479aee..4a7fa28 100644 --- a/melisa/models/user/user.py +++ b/melisa/models/user/user.py @@ -110,6 +110,7 @@ class VisibilityTypes(IntEnum): @dataclass(repr=False) class User(APIModelBase): + # ToDo: Update Docstrings """User Structure Attributes