hikari.applications
#
Application and entities related to discord's OAuth2 flow.
Application #
Bases: PartialApplication
Represents the information of an Oauth2 Application.
app class-attribute
instance-attribute
#
Client application that models may use for procedures.
approximate_guild_count class-attribute
instance-attribute
#
The approximate number of guilds this application is part of.
cover_image_hash class-attribute
instance-attribute
#
The CDN's hash of this application's default rich presence invite cover image.
cover_image_url property
#
Rich presence cover image URL for this application, if set.
custom_install_url class-attribute
instance-attribute
#
The URL of this application's custom authorization link.
flags class-attribute
instance-attribute
#
flags: ApplicationFlags = field(eq=False, hash=False, repr=False)
The flags for this application.
install_parameters class-attribute
instance-attribute
#
install_parameters: Optional[ApplicationInstallParameters] = field(eq=False, hash=False, repr=False)
Settings for the application's default in-app authorization link, if enabled.
is_bot_code_grant_required class-attribute
instance-attribute
#
True
if this application's bot is requiring code grant for invites.
is_bot_public class-attribute
instance-attribute
#
True
if the bot associated with this application is public.
owner class-attribute
instance-attribute
#
The application's owner.
privacy_policy_url class-attribute
instance-attribute
#
The URL of this application's privacy policy.
public_key class-attribute
instance-attribute
#
The key used for verifying interaction and GameSDK payload signatures.
role_connections_verification_url class-attribute
instance-attribute
#
The URL of this application's role connection verification entry point.
rpc_origins class-attribute
instance-attribute
#
A collection of this application's RPC origin URLs, if RPC is enabled.
tags class-attribute
instance-attribute
#
A sequence of tags describing the content and functionality of the application.
team class-attribute
instance-attribute
#
The team this application belongs to.
If the application is not part of a team, this will be None
.
terms_of_service_url class-attribute
instance-attribute
#
The URL of this application's terms of service.
make_cover_image_url #
Generate the rich presence cover image URL for this application, if set.
PARAMETER | DESCRIPTION |
---|---|
ext | The extension to use for this URL. Supports TYPE: |
size | The size to set for the URL. Can be any power of two between TYPE: |
RETURNS | DESCRIPTION |
---|---|
Optional[URL] | The URL, or |
RAISES | DESCRIPTION |
---|---|
ValueError | If the size is not an integer power of 2 between 16 and 4096 (inclusive). |
ApplicationFlags #
Bases: Flag
The known application flag bits.
APPLICATION_COMMAND_BADGE class-attribute
instance-attribute
#
APPLICATION_COMMAND_BADGE = 1 << 23
Denotes that the application has at least one global application command.
EMBEDDED class-attribute
instance-attribute
#
EMBEDDED = 1 << 17
Denotes that the application has functionality that's specially embedded in Discord's client.
GUILD_MEMBERS_INTENT class-attribute
instance-attribute
#
GUILD_MEMBERS_INTENT = 1 << 15
Denotes that the application has the GUILD_MEMBERS intent enabled in it's dashboard.
GUILD_PRESENCES_INTENT class-attribute
instance-attribute
#
GUILD_PRESENCES_INTENT = 1 << 13
Denotes that the application has the GUILD_PRESENCES intent enabled in it's dashboard.
MESSAGE_CONTENT_INTENT class-attribute
instance-attribute
#
MESSAGE_CONTENT_INTENT = 1 << 18
Denotes that the application has message content intent enabled in it's dashboard.
MESSAGE_CONTENT_INTENT_LIMITED class-attribute
instance-attribute
#
MESSAGE_CONTENT_INTENT_LIMITED = 1 << 19
Denotes that the application has message content access while pending verification.
VERIFICATION_PENDING_GUILD_LIMIT class-attribute
instance-attribute
#
VERIFICATION_PENDING_GUILD_LIMIT = 1 << 16
Denotes that the application's verification is pending.
VERIFIED_FOR_GUILD_MEMBERS_INTENT class-attribute
instance-attribute
#
VERIFIED_FOR_GUILD_MEMBERS_INTENT = 1 << 14
Denotes that a verified application can use the GUILD_MEMBERS intent.
VERIFIED_FOR_GUILD_PRESENCES class-attribute
instance-attribute
#
VERIFIED_FOR_GUILD_PRESENCES = 1 << 12
Denotes that a verified application can use the GUILD_PRESENCES intent.
ApplicationInstallParameters #
Represents the application install parameters.
permissions class-attribute
instance-attribute
#
permissions: Permissions = field(eq=True, repr=False, hash=True)
The permissions to add the bot to guild with.
ApplicationRoleConnectionMetadataRecord #
Represents a role connection metadata record.
description class-attribute
instance-attribute
#
The metadata's field description.
description_localizations class-attribute
instance-attribute
#
description_localizations: Mapping[Union[Locale, str], str] = field(eq=False, hash=False, repr=False, factory=dict)
A mapping of description localizations for this metadata field.
key class-attribute
instance-attribute
#
Dictionary key for the metadata field.
name class-attribute
instance-attribute
#
The metadata's field name.
name_localizations class-attribute
instance-attribute
#
name_localizations: Mapping[Union[Locale, str], str] = field(eq=False, hash=False, repr=False, factory=dict)
A mapping of name localizations for this metadata field.
type class-attribute
instance-attribute
#
type: Union[ApplicationRoleConnectionMetadataRecordType, int] = field(eq=False, hash=False, repr=False)
The type of metadata value record.
ApplicationRoleConnectionMetadataRecordType #
Bases: int
, Enum
Represents possible application role connection metadata record types.
DATETIME_GREATER_THAN_OR_EQUAL class-attribute
instance-attribute
#
DATETIME_GREATER_THAN_OR_EQUAL = 6
Datetime Greater Than Or Equal.
DATETIME_LESS_THAN_OR_EQUAL class-attribute
instance-attribute
#
DATETIME_LESS_THAN_OR_EQUAL = 5
Datetime Less Than Or Equal.
INTEGER_GREATER_THAN_OR_EQUAL class-attribute
instance-attribute
#
INTEGER_GREATER_THAN_OR_EQUAL = 2
Integer Greater Than Or Equal.
INTEGER_LESS_THAN_OR_EQUAL class-attribute
instance-attribute
#
INTEGER_LESS_THAN_OR_EQUAL = 1
Integer Less Than Or Equal.
AuthorizationApplication #
Bases: PartialApplication
The application model found attached to hikari.applications.AuthorizationInformation
.
is_bot_code_grant_required class-attribute
instance-attribute
#
is_bot_public class-attribute
instance-attribute
#
privacy_policy_url class-attribute
instance-attribute
#
The URL of this application's privacy policy.
public_key class-attribute
instance-attribute
#
The key used for verifying interaction and GameSDK payload signatures.
AuthorizationInformation #
Model for the data returned by Get Current Authorization Information.
application class-attribute
instance-attribute
#
application: AuthorizationApplication = field(hash=False, repr=True)
The current application.
expires_at class-attribute
instance-attribute
#
When the access token this data was retrieved with expires.
scopes class-attribute
instance-attribute
#
scopes: Sequence[Union[OAuth2Scope, str]] = field(hash=False, repr=True)
A sequence of the scopes the current user has authorized the application for.
user class-attribute
instance-attribute
#
The user who has authorized this token.
This will only be included if the token is authorized for the hikari.applications.OAuth2Scope.IDENTIFY
scope.
ConnectionVisibility #
InviteApplication #
Bases: PartialApplication
Represents the information of an Invite Application.
app class-attribute
instance-attribute
#
Client application that models may use for procedures.
cover_image_hash class-attribute
instance-attribute
#
The CDN's hash of this application's default rich presence invite cover image.
cover_image_url property
#
Rich presence cover image URL for this application, if set.
public_key class-attribute
instance-attribute
#
The key used for verifying interaction and GameSDK payload signatures.
make_cover_image_url #
Generate the rich presence cover image URL for this application, if set.
PARAMETER | DESCRIPTION |
---|---|
ext | The extension to use for this URL. Supports TYPE: |
size | The size to set for the URL. Can be any power of two between TYPE: |
RETURNS | DESCRIPTION |
---|---|
Optional[URL] | The URL, or |
RAISES | DESCRIPTION |
---|---|
ValueError | If the size is not an integer power of 2 between 16 and 4096 (inclusive). |
OAuth2AuthorizationToken #
Bases: PartialOAuth2Token
Model for the OAuth2 token data returned by the authorization grant flow.
guild class-attribute
instance-attribute
#
Object of the guild the user was added to.
This will only be present if this token was authorized with the hikari.applications.OAuth2Scope.BOT
scope, otherwise this will be None
.
refresh_token class-attribute
instance-attribute
#
Refresh token used to obtain new access tokens with the same grant.
webhook class-attribute
instance-attribute
#
webhook: Optional[IncomingWebhook] = field(eq=False, hash=False, repr=True)
Object of the webhook that was created.
This will only be present if this token was authorized with the hikari.applications.OAuth2Scope.WEBHOOK_INCOMING
scope, otherwise this will be None
.
OAuth2ImplicitToken #
Bases: PartialOAuth2Token
Model for the OAuth2 token data returned by the implicit grant flow.
OAuth2Scope #
Bases: str
, Enum
OAuth2 Scopes that Discord allows.
These are categories of permissions for applications using the OAuth2 API directly. Most users will only ever need the hikari.applications.OAuth2Scope.BOT
scope when developing bots.
ACTIVITIES_READ class-attribute
instance-attribute
#
ACTIVITIES_READ = 'activities.read'
Enables fetching the "Now Playing/Recently Played" list.
Note
You must be whitelisted to use this scope.
ACTIVITIES_WRITE class-attribute
instance-attribute
#
ACTIVITIES_WRITE = 'activities.write'
Enables updating a user's activity.
Note
You must be whitelisted to use this scope.
Note
This is not required to use the GameSDK activity manager.
APPLICATIONS_BUILDS_READ class-attribute
instance-attribute
#
APPLICATIONS_BUILDS_READ = 'applications.builds.read'
Enables reading build data for a user's applications.
Note
You must be whitelisted to use this scope.
APPLICATIONS_BUILDS_UPLOAD class-attribute
instance-attribute
#
APPLICATIONS_BUILDS_UPLOAD = 'applications.builds.upload'
Enables uploading/updating builds for a user's applications.
Note
You must be whitelisted to use this scope.
APPLICATIONS_COMMANDS class-attribute
instance-attribute
#
APPLICATIONS_COMMANDS = 'applications.commands'
Allows your application's commands to be used in a guild.
This is used in Discord's special Bot Authorization Flow like hikari.applications.OAuth2Scope.BOT
in-order to join an application into a guild as an application command providing integration.
APPLICATIONS_COMMANDS_PERMISSION_UPDATE class-attribute
instance-attribute
#
APPLICATIONS_COMMANDS_PERMISSION_UPDATE = 'applications.commands.permissions.update'
Allows your application to update its commands permissions via a bearer token.
APPLICATIONS_COMMANDS_UPDATE class-attribute
instance-attribute
#
APPLICATIONS_COMMANDS_UPDATE = 'applications.commands.update'
Allows your application to update its commands via a bearer token.
APPLICATIONS_ENTITLEMENTS class-attribute
instance-attribute
#
APPLICATIONS_ENTITLEMENTS = 'applications.entitlements'
Enables reading entitlements for a user's applications.
APPLICATIONS_STORE_UPDATE class-attribute
instance-attribute
#
APPLICATIONS_STORE_UPDATE = 'applications.store.update'
Enables reading/updating store data for the user's applications.
This includes store listings, achievements, SKU's, etc.
Note
The store API is deprecated and may be removed in the future.
BOT class-attribute
instance-attribute
#
BOT = 'bot'
Enables adding a bot application to a guild.
Note
This requires you to have set up a bot account for your application.
CONNECTIONS class-attribute
instance-attribute
#
CONNECTIONS = 'connections'
Enables viewing third-party linked accounts such as Twitch.
EMAIL class-attribute
instance-attribute
#
EMAIL = 'email'
Enable the application to view the user's email and application info.
GROUP_DM_JOIN class-attribute
instance-attribute
#
GROUP_DM_JOIN = 'gdm.join'
Enables joining users into a group DM.
Warning
This cannot add the bot to a group DM.
GUILDS class-attribute
instance-attribute
#
GUILDS = 'guilds'
Enables viewing the guilds the user is in.
GUILDS_JOIN class-attribute
instance-attribute
#
GUILDS_JOIN = 'guilds.join'
Enables adding the user to a specific guild.
Note
This requires you to have set up a bot account for your application.
GUILDS_MEMBERS_READ class-attribute
instance-attribute
#
GUILDS_MEMBERS_READ = 'guilds.members.read'
Used to read the current user's guild members.
IDENTIFY class-attribute
instance-attribute
#
IDENTIFY = 'identify'
Enables viewing info about itself.
Note
This does not include email address info. Use the hikari.applications.OAuth2Scope.EMAIL
scope instead to retrieve this information.
RELATIONSHIPS_READ class-attribute
instance-attribute
#
RELATIONSHIPS_READ = 'relationships.read'
Enables viewing a user's friend list.
Note
You must be whitelisted to use this scope.
ROLE_CONNECTIONS_WRITE class-attribute
instance-attribute
#
ROLE_CONNECTIONS_WRITE = 'role_connections.write'
Used to write to the current user's connection and metadata for the app.
RPC class-attribute
instance-attribute
#
RPC = 'rpc'
Enables the RPC application to control the local user's Discord client.
Note
You must be whitelisted to use this scope.
RPC_MESSAGES_READ class-attribute
instance-attribute
#
RPC_MESSAGES_READ = 'messages.read'
Enables the RPC application to read messages from all channels the user is in.
RPC_NOTIFICATIONS_READ class-attribute
instance-attribute
#
RPC_NOTIFICATIONS_READ = 'rpc.notifications.read'
Enables the RPC application to read from all channels the user is in.
Note
You must be whitelisted to use this scope.
WEBHOOK_INCOMING class-attribute
instance-attribute
#
WEBHOOK_INCOMING = 'webhook.incoming'
Used to generate a webhook that is returned in the OAuth2 token response.
This is used during authorization code grants.
OwnApplicationRoleConnection #
Represents an own application role connection.
metadata class-attribute
instance-attribute
#
Mapping application role connection metadata keys to their value.
Note
Unfortunately, these can't be deserialized to their proper types as Discord don't provide a way to difference between them.
You can deserialize them yourself based on what value you expect from the key: - INTEGER_X
: Cast to an int
. - DATETIME_X
: Cast to datetime.datetime.fromisoformat
or ciso8601.parse_rfc3339
(for speed). - BOOLEAN_X
: Cast to a bool
.
platform_name class-attribute
instance-attribute
#
The name of the platform.
OwnConnection #
Represents a user's connection with a third party account.
Returned by the [GET Current User Connections][] endpoint.
id class-attribute
instance-attribute
#
The string ID of the third party connected account.
Warning
Seeing as this is a third party ID, it will not be a snowflakes.
integrations class-attribute
instance-attribute
#
integrations: Sequence[PartialIntegration] = field(eq=False, hash=False, repr=False)
A sequence of the partial guild integration objects this connection has.
is_activity_visible class-attribute
instance-attribute
#
True
if this connection's activities are shown in the user's presence.
is_friend_sync_enabled class-attribute
instance-attribute
#
True
if friends should be added based on this connection.
name class-attribute
instance-attribute
#
The username of the connected account.
type class-attribute
instance-attribute
#
The type of service this connection is for.
visibility class-attribute
instance-attribute
#
visibility: Union[ConnectionVisibility, int] = field(eq=False, hash=False, repr=True)
The visibility of the connection.
OwnGuild #
Bases: PartialGuild
Represents a user bound partial guild object.
approximate_active_member_count class-attribute
instance-attribute
#
The approximate amount of presences in this guild.
approximate_member_count class-attribute
instance-attribute
#
The approximate amount of members in this guild.
features class-attribute
instance-attribute
#
features: Sequence[Union[str, GuildFeature]] = field(eq=False, hash=False, repr=False)
A list of the features in this guild.
my_permissions class-attribute
instance-attribute
#
my_permissions: Permissions = field(eq=False, hash=False, repr=False)
The guild-level permissions that apply to the current user or bot.
PartialOAuth2Token #
Model for partial OAuth2 token data returned by the API.
This will generally only be returned when by the client credentials OAuth2 flow.
access_token class-attribute
instance-attribute
#
Access token issued by the authorization server.
expires_in class-attribute
instance-attribute
#
Lifetime of this access token.
Team #
Bases: Unique
Represents a development team, along with all its members.
app class-attribute
instance-attribute
#
Client application that models may use for procedures.
icon_hash class-attribute
instance-attribute
#
The CDN hash of this team's icon.
If no icon is provided, this will be None
.
id class-attribute
instance-attribute
#
The ID of this entity.
members class-attribute
instance-attribute
#
members: Mapping[Snowflake, TeamMember] = field(eq=False, hash=False, repr=False)
A mapping containing each member in this team.
The mapping maps keys containing the member's ID to values containing the member object.
name class-attribute
instance-attribute
#
The name of this team.
owner_id class-attribute
instance-attribute
#
The ID of this team's owner.
make_icon_url #
Generate the icon URL for this team if set.
PARAMETER | DESCRIPTION |
---|---|
ext | The extension to use for this URL. Supports TYPE: |
size | The size to set for the URL. Can be any power of two between 16 and 4096 inclusive. TYPE: |
RETURNS | DESCRIPTION |
---|---|
Optional[URL] | The URL, or |
RAISES | DESCRIPTION |
---|---|
ValueError | If the size is not an integer power of 2 between 16 and 4096 (inclusive). |
TeamMember #
Bases: User
Represents a member of a Team.
accent_color property
#
The custom banner color for the user, if set else None
.
The official client will decide the default color if not set.
avatar_url property
#
Avatar URL for the user, if they have one set.
May be None
if no custom avatar is set. In this case, you should use hikari.User.default_avatar_url
instead.
banner_url property
#
Banner URL for the user, if they have one set.
May be None
if no custom banner is set.
discriminator property
#
discriminator: str
Discriminator for the user.
!!! deprecated 2.0.0.dev120 Discriminators are deprecated and being replaced with "0" by Discord during username migration. This field will be removed after migration is complete. Learn more here: https://dis.gd/usernames
membership_state class-attribute
instance-attribute
#
membership_state: Union[TeamMembershipState, int] = field(repr=False)
The state of this user's membership.
mention property
#
mention: str
Return a raw mention string for the given user.
Examples:
>>> some_user.mention
'<@123456789123456789>'
permissions class-attribute
instance-attribute
#
This member's permissions within a team.
At the time of writing, this will always be a sequence of one str
, which will always be "*"
. This may change in the future, however.
team_id class-attribute
instance-attribute
#
The ID of the team this member belongs to.
user class-attribute
instance-attribute
#
The user representation of this team member.
TokenType #
get_token_id #
Try to get the bot ID stored in a token.
RETURNS | DESCRIPTION |
---|---|
Snowflake | The ID that was extracted from the token. |
RAISES | DESCRIPTION |
---|---|
ValueError | If the passed token has an unexpected format. |