Automatische ÜbersetzungDiese Seite wurde automatisch übersetzt. Das englische Original ist maßgeblich.Lesen Sie diese Seite auf Englisch

Python-Client — `disband-bot`

Der offizielle Python-Client. Verwendet nur die Standardbibliothek (threading + urllib), so dass es nichts zu installieren gibt, außer dem Client selbst. Funktioniert auf Python 3.9+.

installieren

pip install disband-bot

Oder von diesem Monorepo:

pip install ./packages/disband-bot-python

Schneller Start

from disband_bot import Client

client = Client(token=DISBAND_BOT_TOKEN)

@client.on("ready")
def on_ready(me):
    print(f"Logged in as {me['name']} ({', '.join(me['scopes'])})")

@client.on("messageCreate")
def on_message(message):
    if message.author_is_bot:
        return
    if message.content == "!ping":
        message.reply("pong")

client.run()  # connects and blocks forever

Die Handläufer können einfach oder async def sein; beide werden unterstützt.

Konstrukteur

`Client(token, base_url="https://www.disband.dev", gateway_timeout=20)`

Argument Standardwert Beschreibung
token (erforderlich) Der Bot-Token von Einstellungen → Bots.
base_url "https://www.disband.dev" API root (Ändern Sie für eine benutzerdefinierte Domain).
gateway_timeout 20 Sekunden pro Gateway-Abfrage (1-20).

Lebenszyklus

Methode Beschreibung
run() Verbinden, senden von ready, starten des Gateway-Schleifens in einem Hintergrundthread und blockieren für immer.
close() Stoppt den Schleifen.

Veranstaltungen

Registrieren Sie sich mit client.on("name", handler) - als Dekorator oder als einfache Anruf - plus once für Single-Shot-Handler.

Ereignis Argumente Anmerkungen
ready user user["id"], user["name"], user["scopes"], etc.
messageCreate message Eine neue Nachricht auf einem Server, den der Bot sehen kann.
messageUpdate message Eine Nachricht wurde bearbeitet (content, edited_at aktualisiert).
messageDelete message Eine Nachricht wurde gelöscht (content leer; id/channel_id gültig).
error error Gateway-Fehler. Der Schleifenversuch wird automatisch wiederholt, es sei denn, der Token ist ungültig, in diesem Fall hört er auf.

`Message`

Feld Typ Beschreibung
id str Nachrichtennummer.
channel_id str Kanal-ID.
server_id str | None Server-ID.
author dict | None { "id", "username", "display_name", "avatar_url", "is_bot" }.
content str Nachrichtentext.
reply_to_id str | None Die Nachricht, auf die dies antwortet, falls vorhanden.
mentions list Genannte Benutzer.
attachment dict | None { "url", "type" }, wenn die Nachricht eine Datei enthält.
created_at str | None ISO-Zeitstempel.
edited_at str | None ISO-Zeitstempel der letzten Bearbeitung.
display_id int | None Die sequenzielle Anzeige-Nummer.
author_is_bot bool Wahr, wenn der Absender ein Bot war (Eigenschaft).

Methoden - message.reply(content) antwortet im selben Kanal.

Methoden

client.send_message(channel_id, "Deploy finished")            # send
message.reply("pong")                                          # reply to a received message

messages = client.list_messages(channel_id, limit=25, before="…")
channels = client.list_channels(server_id)
members  = client.list_members(server_id)

channel_id = client.create_channel(server_id, "deploys")
client.rename_channel(channel_id, "deploys-2")
client.delete_channel(channel_id)

client.leave_server(server_id)

invite = client.create_invite(server_id, ["messages.read", "messages.write"])
# invite["invite_url"] -> send to the server owner

Fehler

Der Client erstellt Unterklassen von DisbandError mit einem .status und .body:

Fehler Wann
AuthError 401 - ungültiger oder widerrufener Token. Der Gateway-Zyklus hört hier an.
PermissionError 403 - fehlende Zugriffsberechtigung für den Bereich oder die Rolle.
RateLimitError 429 - enthält retry_after Sekunden.
HttpError Jeder andere nicht-2xx-Status.

Intern ist der Client ein dünner Wrapper über den API-Referenz: REST.get/post/patch/delete mit Authorization: Bot <token>.