discordSplash package¶
Submodules¶
discordSplash.audit_log module¶
-
class
discordSplash.audit_log.Account(jsondata)¶ Bases:
objectDiscord Account Object
-
property
id¶ id of the account. :rtype: int
-
property
name¶ Name of the account. :rtype: str
-
property
-
class
discordSplash.audit_log.AuditLog(jsondata)¶ Bases:
object-
property
integrations¶ Returns a list of all integrations found in the Audit Log.
Warning
May change from
PartialIntegrationtoIntegration. SeeTODOin class discordSplash.audit_log.PartialIntegration.- Returns
list of discordSplash.audit_log.PartialIntegration objects.
- Return type
list
-
property
users¶ Returns a list of all users found in the Audit log :return: list of discordSplash.member.Member objects :rtype: list
-
property
webhooks¶ List of Webhooks found in the Audit Log :rtype: list :return: list of Webhook objects
Warning
You will receive a list of JSON data currently.
-
property
-
class
discordSplash.audit_log.Entry(jsondata)¶ Bases:
object
-
class
discordSplash.audit_log.PartialIntegration(jsondata)¶ Bases:
object-
property
account¶ integration account :return: Account of the integration :rtype: discordSplash.audit_log.Account
-
property
id¶ id of the integration :rtype: int
-
property
name¶ Name of the integration :rtype: str
-
property
type¶ Type of the integration. :rtype: str
-
property
discordSplash.channel module¶
discordSplash.emoji module¶
discordSplash.guild module¶
-
class
discordSplash.guild.Guild(jsondata)¶ Bases:
objectClass for a Discord Guild
-
property
afk_channel¶ id of the guild’s AFK channel
- Returns
AFK channel id
- Return type
int
-
property
afk_timeout¶ Time that it takes to be moved into an AFK channel
- Returns
Time, in seconds, of the AFK timeout
- Return type
int
-
async
create_channel(name: str, type: int, topic: Optional[str] = None, bitrate: Optional[int] = None, user_limit: Optional[int] = None, rate_limit_per_user: int = 0, position: Optional[int] = None, permission_overwrites=None, parent_id: Optional[int] = None, nsfw: Optional[bool] = None)¶ Creates a channel in the guild.
Tip
Some parameters here are only for voice/text channels.
Only Text:
topicrate_limit_per_user
Only Voice:
bitrateuser_limit
- Parameters
name (str) – name of the channel
type (int) – type of the channel
topic (str) – Channel topic/description
bitrate (int) – bitrate (in bits) of the channel
user_limit (int) – limit for number of users that can join the voice channel
rate_limit_per_user (str) – cooldown (slowmode) between sending messages
permission_overwrites – permission overwrites for the channel TODO: Implement permission overwrites - implement the permission overwrites for creating channels | this will be a bit more complicated than some other feaatures | find out how this works
position (int) – channel order position number
parent_id (int) – id of the parent channel category
nsfw (bool) – whether the channel is nsfw or not
-
property
default_message_notifications¶ Default message notification level
Important
TODO: make default_message_notifications an enum - make default_message_notifications an enum | eg.
...notifications.allinstead of0Make it an ENUM
- Returns
Default message notification level for the guild
- Return type
int
-
async
delete()¶ deletes the guild
bot must be guild owner
-
property
discovery_splash¶ Discovery Splash hash
- Returns
hash of the Discovery Splash image
- Return type
str
-
property
explicit_content_filter¶ Level of content scanning in the guild
- Returns
Level of content scanning and auto-deletion in the guild
- Return type
int
-
property
features¶ All features found in the guild
- Returns
a list of guild feature strings
- Return type
list
-
async
get_all_channels()¶ gets all channels in a guild
- Returns
list of guild channel objects
- Return type
-
async
get_member(id_)¶ gets a Member from their id
See also
discordSplash.member.Member
discordSplash.guild.get_all_members()
- Parameters
id (int) – ID of the member you want to fetch
- Returns
Guild member of the id
- Return type
-
async
get_members()¶ gets all members in a guild
Warning
This may be part of privileged intents in the future.
- Returns
list of all members found in the guild
- Return type
-
async
get_preview()¶ Gets a Guild Preview Object for the guild.
- Returns
guild preview object for the guild
- Return type
-
property
icon¶ Icon hash for the guild
Important
TODO: Make an
icon_urlproperty - this icon_url property will have the actual icon for the guild instead of just the hash.- Returns
Icon hash for the guild
- Return type
str
-
property
icon_hash¶ Icon hash for the guild if the guild is in a template object
Warning
I dont quite understand this. Please open a PR on this
- Returns
icon hash of the guild
- Return type
str
-
property
id¶ Returns the Guild’s id
- Returns
id of the guild represented in this object
- Return type
int
-
property
invite_splash¶ Splash background image for the guild Appears when joining a guild from a web browser.
- Returns
Image hash for the background image
- Return type
str
-
property
is_owner¶ Is the bot the Guild owner?
- Returns
whether or not the bot is the guild owner
- Return type
bool
-
property
mfa_level¶ Required MFA level for the guild
- Returns
MFA level for the guild
- Return type
int
-
async
modify_channel_positions(data_list: list)¶ Adjusts Channel Positions for a guild
Important
TODO: improve the guild.modify_channel_positions parameter - make the
data_listparameter better | make it a python objectHint
the
data_listobjects should look something like this:[ { "id": 2349892848243, "position": 1 }, { "id": 7182933290482, "position": 0 } ]
- Parameters
data_list (list) – list of json objects for adjusting channel positions. Must be longer than 2.
- Raises
discordSplash.guild.ListLengthError if the
data_listparameter is too short.
-
async
modify_member(id_, nick: Optional[str] = None, roles: Optional[list] = None, mute: Optional[bool] = None, deaf: Optional[bool] = None, channel_id: Optional[int] = None)¶ modifies a member of the guild
Hint
All of these fields require permission.
Warning
If
channel_idis not set, the user will be disconnected from voice.- Parameters
id (int) – id of the member to modify
nick (str) – new nickname of the member
roles ([list]) – list of roles the member has
mute (bool) – whether or not the user is muted
deaf (bool) – whether or not the user is deafened
channel_id (str) – id of the voice channel to move the member.
- Returns
updated Member object
- Return type
-
property
name¶ Returns the name of the guild
- Returns
name of guild, without leading or trailing whitespace
- Return type
str
-
property
owner_app_id¶ If the guild creator is a bot, this returns the bot’s application ID.
- Returns
Guild owner’s app id
- Return type
int
-
property
owner_id¶ id of the guild owner
- Returns
guild owner’s id
- Return type
int
-
property
permissions¶ Permissions for the bot in the guild
Important
TODO: make bot guild permissions an ENUM - having this as an enum will make it easier to understand permissions. | eg.
guild.permissions.BAN_MEMBERSinstead of something like0x39408- Returns
Total permissions for the current bot in the guild
- Return type
str
-
property
region¶ Voice Region id for the guild
- Returns
Region id for the guild
- Return type
str
-
property
roles¶ List of roles found in the guild
Important
TODO: add discordSplash.guild.role object - add discordSplash.guild.role object | this would turn the json of the roles into an object.
Danger
This does not work.
- Returns
list of discordSplash.guild.Role objects
- Return type
list
-
property
rules_channel¶ Channel where community servers post rules
- Returns
Channel id of the rules channel
- Return type
int
-
property
system_channel_flags¶ Flags for the System Channel
- Returns
System channel’s flags
- Return type
int
-
property
system_channel_id¶ The Channel ID for system messages (member join, boosts).
- Returns
System messages channel id
- Return type
int
-
async
update(name: Optional[str] = None, region: Optional[str] = None, verification_level: Optional[int] = None, default_message_notifications: Optional[int] = None, explicit_content_filter: Optional[int] = None, afk_channel_id: Optional[int] = None, afk_timeout: Optional[int] = None, icon=None, owner_id: Optional[str] = None, splash=None, banner=None, system_channel_id: Optional[int] = None, rules_channel_id: Optional[int] = None, public_updates_channel_id: Optional[int] = None, preferred_locale: Optional[str] = None)¶ Edits the guild.
Warning
Some fields here will not work, depending on the guild. For example:
owner_idonly works if the bot is the guild ownersplashandbanneronly work if the guild has a level 3 boost or is verified/partneredsystem_channelcan be disabled
- Parameters
name (str) – new name of the guild
region (str) – new voice region of the guild
verification_level (int) – required verification level for the guild
default_message_notifications (int) – new message notifications level for the guild
explicit_content_filter (int) – new explicit content filter for the guild.
afk_channel_id (int) – new channel ID for the AFK channel
afk_timeout (int) – new number of seconds a member can be AFK before being moved into an AFK channel
icon – new icon of the guild
owner_id (str) – id of the new guild owner (bot must be guild owner for this to work.)
splash – new splash image of the guild
banner – new guild banner
system_channel_id (int) – Channel ID for the system messages channel ID.
rules_channel_id (int) – channel ids for rules.
public_updates_channel_id (int) – new channel for moderator info (Discord community updates.)
preferred_locale (str) – Where the guild is hosted.
- Returns
Updated Guild Object
- Return type
-
property
verification_level¶ Verification level required for the guild
Important
TODO: Make guild verification_level an ENUM - make the guild verification level an enum | eg.
guilds.verification_level.phoneinstead of4- Returns
Verification level required to talk in the guild
- Return type
int
-
property
widget_channel_id¶ Channel ID that the widget invites to. Returns
Noneif invite is off- Returns
Channel ID of the widget invite
- Return type
int
-
property
widget_enabled¶ Whether or not the server widget is enabled
- Returns
Trueif the widget is enabled- Return type
bool
-
property
-
class
discordSplash.guild.GuildPreview(json)¶ Bases:
objectGuild Preview Object
-
property
approximate_member_count¶ Amount of members in the guild.
- Returns
Approximate number of members found in the guild
- Return type
int
-
property
approximate_presence_count¶ Amount of online members in the guild.
- Returns
Approximate number of online users in the guild
- Return type
int
-
property
description¶ Guild description
- Returns
description of the guild
- Return type
str
-
property
discovery_splash¶ discovery splash image of the guild
- Returns
discovery splash hash
- Return type
str
-
property
emojis¶ Emojis found in the Guild
Important
TODO: Implement the discordSplash.emoji.Emoji object - add an object to represent discord Emojis. | stop sending json for emojis.
- Returns
list of discordSplash.emoji.Emoji objects
- Return type
[discordSplash.emoji.Emoji]
-
property
features¶ Guild Features
- Returns
list of guild feature strings
- Return type
[str]
-
property
icon¶ Icon hash of the guild.
- Returns
guild icon hash
- Return type
str
-
property
id¶ ID of the guild
- Returns
guild id
- Return type
int
-
property
name¶ Guild Name.
- Returns
Name of the Guild
- Return type
str
-
property
splash¶ Splash of the guild
- Returns
guild splash hash
- Return type
str
-
property
-
exception
discordSplash.guild.ListLengthError¶ Bases:
Exception
-
async
discordSplash.guild.create(name: str, region=None, icon=None, verification_level: Optional[int] = None, default_message_notifications: Optional[int] = None, explicit_content_filter: Optional[int] = None, roles=None, channels=None, afk_channel_id: Optional[int] = None, afk_timeout: Optional[int] = None, system_channel_id=None)¶ Creates a guild from the given parameters.
See also
many parameters here are also explained in the discordSplash.guild.Guild
Important
TODO: make some guild creation fields enumerators - make these fields Enums: |
verification_level|default_message_notifications|explicit_content_filterTODO: add some more guild objects - add thechannelandroleobjects TODO: create_guild exception - add an exception if bot is in over 10 guildsWarning
this can only be used by bots in less than 10 guilds.
- Parameters
name (str) – name of the guild
region (str) – guild region
icon (str) – icon of the guild
verification_level (int) – verification level required to participate in the guild
default_message_notifications (int) – when should users be pinged in the server
explicit_content_filter (int) – adult content filter for the guild
roles (json) – role objects for the server
channels (json) – channel objects for the server
afk_channel_id (int) – afk channel for the guild
afk_timeout (int) – seconds until an AFK user is moved to the AFK channel.
system_channel_id (int) – system channel id for messages such as boosting and users joining
-
async
discordSplash.guild.get(g_id: int, with_counts: bool = False)¶ Get a guild from the Guild’s id.
Important
TODO: add support for
with_countsin the discordSplash.guild.Guild object - allow users to choose an amount of stuff to getTip
See also
discordSplash.guild.get_preview()
If you dont need the discordSplash.guild.Guild object, use the coroutine discordSplash.guild.get_preview.
- Parameters
g_id (int) – ID of the guild you want to fetch
with_counts (bool) – If
True,approximate_presence_countandapproximate_member_countwill also be returned
- Returns
guild object
- Return type
-
async
discordSplash.guild.get_guild_preview(g_id: int)¶ Gets a Guild Preview Object.
- Parameters
g_id (int) – id of the guild
- Returns
guild preview object for the guild
- Return type
discordSplash.invite module¶
discordSplash.member module¶
-
class
discordSplash.member.Member(json)¶ Bases:
objectDiscord Guild Member Object.
Contains the discordSplash.member.User object but this class has additional support for roles and other guild specific data.
See also
Also known as a Guild Member
discordSplash.member.User
-
property
deaf¶ Whether or not the user is deafened in the guild
- Returns
True if the user is deafened
- Return type
bool
-
property
guild_id¶ ID of the Guild the member is in :return: Guild ID :rtype: int
-
property
joined_at¶ When the member joined the guild
- Returns
ISO8601 Timestamp
- Return type
str
-
property
mute¶ Whether or not the user is muted in the guild
- Returns
True if the user is muted
- Return type
bool
-
property
nickname¶ Nickname of the user
- Returns
Member’s nickname
- Return type
str
-
property
pending¶ Whether or not the member has passed the membership screening
- Returns
False if the member has passed the screening
- Return type
bool
-
property
permissions¶ Total permissions of the member in the channel
Tip
This includes channel overrides
Note
This only is used during the
INTERACTION_CREATEGateway event.- Returns
- Return type
When the member began boosting the guild
- Returns
ISO8601 Timestamp
- Return type
str
-
property
roles¶ The Member’s Roles
Important
TODO:
add the Role object
- Returns
a list of all of the member’s role ids
- Return type
[int]
-
async
update(guild_id, nick: Optional[str] = None, roles: Optional[list] = None, mute: Optional[bool] = None, deaf: Optional[bool] = None, channel_id: Optional[int] = None)¶ modifies the guild member object
Hint
All of these fields require permission.
All of these fields are optional
Warning
If
channel_idis not set, the user will be disconnected from voice.See also
coroutine discordSplash.guild.Guild.modify_member()
- Parameters
nick (str) – new nickname of the member
roles ([list]) – list of roles the member has
mute (bool) – whether or not the user is muted
deaf (bool) – whether or not the user is deafened
channel_id (str) – id of the voice channel to move the member.
- Returns
updated Member object
- Return type
-
property
user¶ Discord user that is in the guild
- Returns
discordSplash.member.User object
- Return type
-
class
discordSplash.member.User(memberJson)¶ Bases:
objectRepresents a discord member. Used internally to parse interaction/member JSON data.
- Parameters
memberJson (json) – JSON to parse into this class.
Important
TODO: support sernding dms to user - add a method to send a DM to the user on the user object
TODO: Support avatar urls for Users - add an avatar_url property in the User class
-
property
avatar¶ - Returns
the member’s avatar hash
- Return type
str
Important
TODO:
make it an
avatar_urlor make that a separate property
-
property
discriminator¶ - Returns
the user’s discriminator
- Return type
int
-
property
id¶ - Returns
the user’s id
- Return type
int
-
property
username¶ - Returns
the user’s username
- Return type
str
discordSplash.opcodes module¶
discordSplash.template module¶
discordSplash.webhook module¶
Module contents¶
-
class
discordSplash.main.InteractionOption(json_)¶ Bases:
objectRepresents the options (‘parameters’) sent for the command
Tip
You should check if this is a parameter using InteractionOptions.is_not_subcommand
-
property
is_not_subcommand¶ Is the option a parameter (not a subcommand)?
- Returns
True if this is a parameter, false if this is a subcommand or subcommand group.
- Return type
bool
-
property
name¶ Name of the interaction option
- Returns
name of the interaction parameter or subcommand
- Return type
str
-
property
options¶ list of options if this option is a subcommand or subcommand group.
- Returns
array of discordSplash.main.InteractionOption (this class)
- Return type
-
property
value¶ Value of the parameter
- Returns
None if it is a subcommand group, or the value of the parameter
- Return type
Union[int,str,None]
-
property
-
exception
discordSplash.main.InvalidTypeException¶ Bases:
ExceptionCalled when your response is an invalid type.
-
class
discordSplash.main.Presence(text: str, presenceType: discordSplash.main.PresenceType = <PresenceType.Game: 0>)¶ Bases:
objectPresence data used when connecting to Gateway
- Parameters
presenceType (PresenceType) – type of presence to use.
text (str) – Text of status to use.
Hint
x = Presence('a game', discordSplash.PresenceType.Game)Warning
Streaming URL’s currently do not work
Custom emojis have not been implemented in this API wrapper
-
property
text¶ Activity Text. Used Internally.
- Returns
The text used in the presence.
- Return type
str
-
property
type¶ Returns the type of the activity. Used internally
- Returns
Integer from 1-5. See class discordSplash.Presence** for more info
- Return type
int
-
class
discordSplash.main.PresenceType(value)¶ Bases:
enum.EnumEnumerator for discord PresenceTypes
Used in the
presenceTypeparameter for discordSplash.Presence-
Competing= 5¶
-
Custom= 4¶
-
Game= 0¶
-
Listening= 2¶
-
Streaming= 1¶
-
-
class
discordSplash.main.ReactionData(jsonData)¶ Bases:
objectData passed into all command functions
Important
TODO: improve ReactionData - make the choices/parameters better.
-
async
delete_original_response()¶ delete the original reaction
-
async
edit(content: discordSplash.main.ReactionResponse)¶ Edits the original reaction response sent. :param discordSplash.ReactionResponse content: New content of the reaction response.
-
property
guild¶ - Returns
Guild object that the slashcommand was executed in
- Return type
-
property
guild_id¶ - Returns
the guild id
- Return type
str
Warning
Guilds are not implemented yet.
-
property
id¶ - Returns
the reaction id
- Return type
str
-
json()¶ - Returns
the JSON. Can be used for a custom parser.
- Return type
json
-
property
member¶ - Returns
a discordSplash.member.Member** object.
- Return type
-
property
options¶ - Returns
the choices/parameters for the SlashCommands.
- Return type
list
Caution
Currently returns a list of options. Is not parsed yet
-
async
respond(data: discordSplash.main.ReactionResponse)¶ Responds to the interaction.
- Parameters
data (discordSplash.ReactionResponse) – Reaction Response Data
Tip
This must be called within 3 seconds of receiving the response.
Tip
If you do not want to immediately send a message, call this with reactionResponse ResponseType
1
-
async
send_followup_message(data: discordSplash.main.ReactionResponse)¶ send a followup message for that interaction
- Parameters
data (discordSplash.ReactionResponse) – Content of the followup message.
Important
this needs testing.
- To Test:
Ephemeral Messages
-
property
token¶ - Returns
the reaction token
- Return type
str
Caution
Be sure not to send this in chat. Anyone with the token can send messages as your bot
Expires after 15 minutes
-
property
type¶ - Returns
the reaction type
- Return type
int
Note
Used for future proofing
-
async
-
class
discordSplash.main.ReactionResponse(content: str, isEphemeral: bool = False, responseType: int = 4)¶ Bases:
objectBase class for responding to an interaction.
- Parameters
content (str) – Content of the message. Must not be more than 2000 characters.
isEphemeral (bool) – Whether or not the message should be ephemeral (only seen by the user who created the interaction)
responseType (int) – discord InteractionResponseType (1-5), 2 and 3 are depreciated.
Note
[Discord InteractionResponseType](https://discord.com/developers/docs/interactions/slash-commands#interaction-response-interactionresponsetype)
1 ACK a Ping
[ss]2 ACK a command without sending a message, eating the user’s input[se] DEPRECIATED
[ss]3 respond with a message, eating the user’s input[se] DEPRECIATED
4 respond to an interaction with a message
5 ACK a command without sending a message, showing the user’s input
The user’s input will be shown on all of the above types unless you set
isEphemeraltoTrue.Important
TODO: add an enumerator to ReactionResponse - Make
responseTypean Enumerator-
property
json¶ Mainly used internally :return: JSON content for the reaction :rtype: json
-
class
discordSplash.main.Run(token: str, presence: Optional[discordSplash.main.Presence] = None)¶ Bases:
objectRuns the bot using the token
- Parameters
token (str) – token of the bot to run
presence (splash.Presence) – Presence of the bot, activated upon connection to gateway
- Raises
discordSplash.UnregisteredCommandException
Hint
Run('TOKEN', Presence(text='testing', presenceType=discordSplash.PresenceType.Game))Caution
Most of the methods here are only used internally.
Danger
Do not share your token with anyone. If you want to collaborate on a discord bot, use a development team.
-
async
create_resume_packet()¶
-
async
heartbeat()¶
-
async
hello()¶
-
async
main(resume=False)¶
-
opcode(opcode: int, payload) → str¶
-
async
receive()¶
-
async
resume()¶
-
async
send(opcode, payload)¶
-
exception
discordSplash.main.UnregisteredCommandException¶ Bases:
ExceptionRaised when a command is registered on the Discord API but not on discordSplash.
Important
TODO:
make it a warning
-
discordSplash.main.command(name: str)¶ A decorator that is used to register a command.
- Parameters
name (str) – name of the command
See also
See
examplesdirectory on GitHub for info on usageHint
Example Code:
@discordSplash.command(name="say-hello") async def say_hello(data): await data.respond('hi')