Collection of Discord related clients and methods.
Project description
Welcome to python-discord-client
Unofficial Python Discord SDK
Note: We have nothing to do with Discord and have not contributed to the Discord documentation!
Features
- Connect to your Discord account
- Simple handling of authentication
- Implement websockets
- Access nearly all Discord REST endpoints
Quick Start
- Register at Discord
- Create a new app or use an existing one at https://discord.com/developers/applications
- Create a bot, set permissions and save your token
python3 -m pip install python-discord-client
Rest Clients
from discoPy.client import Application, User, Guild, Channel, Stage, Webhook
token = 'your-discord-token'
channel = Channel(token=token)
channel.create_message(channel_id='<some-channel-id>', content='Hello World!')
guild = Guild(token=token)
print(guild.get_guild(guild_id='<some-guild-id>'))
stage = Stage(token=token)
print(stage.get_stage_instance(channel_id='<some-channel-id>'))
app = Application(token=token)
print(app.get_application_commands(application_id='<some-app-id>'))
user = User(token=token)
print(user.get_current_user())
# ...
Websockets
import asyncio
from discoPy.ws_client import WSClient
token = 'your-discord-token'
async def main():
async def handle_event(data: dict):
#print(data)
if not data or 'op' not in data:
return
if data['op'] == 0: # Dispatch
try:
print(f'{data["d"]["channel_id"]}: ...print some messages?')
except:
# handle...
pass
elif data['op'] == 3: # Presence Update
print(f'This is OP 3 - {data}')
elif data['op'] == 4: # Voice State Update
print(f'This is OP 4 - {data}')
elif data['op'] == 6: # Resume
print(f'This is OP 6 - {data}')
elif data['op'] == 7: # Reconnect
print(f'This is OP 7 - {data}')
elif data['op'] == 8: # Request Guild Members
print(f'This is OP 8 - {data}')
elif data['op'] == 9: # Invalid Session
print(f'This is OP 9 - Invalid Session! {data}')
elif data['op'] == 10: # Hello
print('Hearbeat interval received!')
elif data['op'] == 11: # Heartbeat ACK
print('Heartbeat Received')
else:
print(f"huh? {data}")
#all_intents: list = WSClient.get_intents_list()
ws_client = WSClient(
token=token,
intents=['DIRECT_MESSAGES', 'GUILDS'],
callback=handle_event
)
while True:
await asyncio.sleep(30)
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
Important notes
The implementation of the methods was based on the official documentation of the Discord API. Parameters and endpoints have been adapted to it. On the official page of the Discord API documentation you can see which requirements and parameters are needed for the respective methods.
Note: We have nothing to do with Discord and have not contributed to the Discord documentation!
Methods
Application
User
Guild
General
Widgets and Styles
Scheduled Events
Method | Documentation |
---|---|
list_scheduled_events_for_guild | https://discord.com/developers/docs/resources/guild-scheduled-event#list-scheduled-events-for-guild |
create_guild_scheduled_event | https://discord.com/developers/docs/resources/guild-scheduled-event#create-guild-scheduled-event |
get_guild_scheduled_event | https://discord.com/developers/docs/resources/guild-scheduled-event#get-guild-scheduled-event |
modify_guild_scheduled_event | https://discord.com/developers/docs/resources/guild-scheduled-event#modify-guild-scheduled-event |
delete_guild_scheduled_evend | https://discord.com/developers/docs/resources/guild-scheduled-event#delete-guild-scheduled-event |
get_guild_scheduled_event_users | https://discord.com/developers/docs/resources/guild-scheduled-event#get-guild-scheduled-event-users |
Guild Templates
Method | Documentation |
---|---|
get_guild_template | https://discord.com/developers/docs/resources/guild-template#get-guild-template |
create_guild_template | https://discord.com/developers/docs/resources/guild-template#create-guild-from-guild-template |
get_guild_templates | https://discord.com/developers/docs/resources/guild-template#get-guild-templates |
create_guild_template | https://discord.com/developers/docs/resources/guild-template#create-guild-template |
sync_guild_template | https://discord.com/developers/docs/resources/guild-template#sync-guild-template |
modify_guild_template | https://discord.com/developers/docs/resources/guild-template#modify-guild-template |
delete_guild_template | https://discord.com/developers/docs/resources/guild-template#delete-guild-template |
Emoji
Method | Documentation |
---|---|
list_guild_emojis | https://discord.com/developers/docs/resources/emoji#list-guild-emojis |
get_guild_emoji | https://discord.com/developers/docs/resources/emoji#get-guild-emoji |
create_guild_emoji | https://discord.com/developers/docs/resources/emoji#create-guild-emoji |
modify_guild_emoji | https://discord.com/developers/docs/resources/emoji#modify-guild-emoji |
delete_guild_emoji | https://discord.com/developers/docs/resources/emoji#delete-guild-emoji |
Sticker
Method | Documentation |
---|---|
get_sticker | https://discord.com/developers/docs/resources/sticker#get-sticker |
list_nitro_sticker_packs | https://discord.com/developers/docs/resources/sticker#list-nitro-sticker-packs |
list_guild_stickers | https://discord.com/developers/docs/resources/sticker#list-guild-stickers |
get_guild_sticker | https://discord.com/developers/docs/resources/sticker#get-guild-sticker |
create_guild_sticker | 'https://discord.com/developers/docs/resources/sticker#create-guild-sticker |
modify_guild_sticker | https://discord.com/developers/docs/resources/sticker#modify-guild-sticker |
delete_guild_sticker | https://discord.com/developers/docs/resources/sticker#delete-guild-sticker |
Channel
General
Threads
Stage
Method | Documentation |
---|---|
create_stage_instance | https://discord.com/developers/docs/resources/stage-instance#create-stage-instance |
get_stage_instance | https://discord.com/developers/docs/resources/stage-instance#get-stage-instance |
modify_stage_instance | https://discord.com/developers/docs/resources/stage-instance#modify-stage-instance |
delete_stage_instance | https://discord.com/developers/docs/resources/stage-instance#delete-stage-instance |
Webhook
Not implemented:
Method | Documentation |
---|---|
execute_webhook | https://discord.com/developers/docs/resources/webhook#execute-webhook |
execute_github_compatible_webhook | https://discord.com/developers/docs/resources/webhook#execute-slackcompatible-webhook |
get_webhook_messages | https://discord.com/developers/docs/resources/webhook#execute-githubcompatible-webhook |
edit_webhook_messages | https://discord.com/developers/docs/resources/webhook#edit-webhook-message |
edit_original_interaction_response | https://discord.com/developers/docs/interactions/receiving-and-responding#edit-original-interaction-response |
Todo
- Testing
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for python-discord-client-0.7.3.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3ba85b83c05ebaa86fde2cf294b11265880a6e5166b13e97a649fcaf81f29f5 |
|
MD5 | ef7d02c2a9b1c6e2d8037b71131e5e67 |
|
BLAKE2b-256 | 742414825c85fb118680db900bad9d55abad2bf2c13de9be5e713af522ccec49 |
Close
Hashes for python_discord_client-0.7.3.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f60fda8ddf950db75f7dc881005e34ae89b0d0e7323ea1b2a6660ac7e17c4f46 |
|
MD5 | 523b884fbc5955f0d59159b30550389a |
|
BLAKE2b-256 | 06829a4da11fecbd929a5c6b45cdf0fde9687655c0af358d0ae9a40f40768836 |