Skip to content

A webhook and request based discord.py extension for making a bot dashboard

License

Notifications You must be signed in to change notification settings

mak0226/discord-ext-dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Discord Server License Version Downloads Supported Versions

discord-ext-dashboard

A webhook and request based discord.py extension for making a bot dashboard.

Installation

pip install --upgrade discord-ext-dashboard

# If that doesn't work
python3 -m pip install --upgrade discord-ext-dashboard

Usage

Prerequisites

Before you get started, you will need a few things:

  • A webhook in secret channel (if anyone has access, they will be able to mess things up).
  • A properly hosted discord.py bot

And then you're ready to get started!

Examples

Bot

import discord
from discord.ext import commands
from discord.ext.dashboard import Dashboard

bot = commands.Bot(command_prefix="!")
bot_dashboard = Dashboard(bot,
	"secret_key", 
	"https://your-bot-website.com/dashboard"
)

@bot.event
async def on_ready():
	print(f"Bot is online as {bot.user}")

@bot.event
async def on_message(message):
	await bot_dashboard.process_request(message)

@bot_dashboard.route
async def guild_count(data):
	return len(bot.guilds)

@bot_dashboard.route
async def member_count(data):
	return await bot.fetch_guild(data["guild_id"]).member_count

bot.run("your-token-here")

Webserver

from quart import Quart, request
from discord.ext.dashboard import Server

app = Quart(__name__)
app_dashboard = Server(
	app,
	"secret_key", 
	webhook_url="https://your-private-discord-webhook.com",
	sleep_time=1
)

@app.route("/")
async def index():
	guild_count = await app_dashboard.request("guild_count")
	member_count = await app_dashboard.request("member_count", guild_id=776230580941619251)

	return f"Guild count: {guild_count}, Server member count: {member_count}"

@app.route("/dashboard", methods=["POST"])
async def dashboard():
	# Don't worry about authorization, the bot will handle it
	await app_dashboard.process_request(request)
        
        
if __name__ == "__main__":
        app.run()

Please note that cogs are not currently supported.
You will also need to use Quart as your webserver. Switching from another library isn't hard, so ask me and I'll gladly help you out.

For support join CRYO OFFICIAL

About

A webhook and request based discord.py extension for making a bot dashboard

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages