disagreement/examples/example_from_readme.py
Slipstream 1464937f6f
Some checks failed
Deploy MkDocs / deploy (push) Has been cancelled
Add async start and sync run (#94)
2025-06-15 18:11:44 -06:00

37 lines
1008 B
Python

# Example from the README file of the disagreement library
# This example demonstrates a simple bot that responds to the "!ping" command with "Pong!".
import asyncio
import os
from disagreement import Client, GatewayIntent, Cog, command, CommandContext
from dotenv import load_dotenv
load_dotenv()
class Basics(Cog):
def __init__(self, client: Client) -> None:
super().__init__(client)
@command()
async def ping(self, ctx: CommandContext) -> None:
await ctx.reply(f"Pong! Gateway Latency: {self.client.latency_ms} ms.") # type: ignore (latency is None during static analysis)
token = os.getenv("DISCORD_BOT_TOKEN")
if not token:
raise RuntimeError("DISCORD_BOT_TOKEN environment variable not set")
intents = GatewayIntent.default() | GatewayIntent.MESSAGE_CONTENT
client = Client(token=token, command_prefix="!", intents=intents, mention_replies=True)
def main() -> None:
client.add_cog(Basics(client))
client.run()
if __name__ == "__main__":
main()