Discord MoveBot

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
itsrunix
User
Beiträge: 1
Registriert: Donnerstag 2. November 2023, 11:41

Hallo, ich bin noch ganz neu in Python und möchte einen Discord Bot bauen der Nachricht in den angegebenen Kanal moved. Jedoch habe ich mit einer Webhook ein Google Forms, welches bei Absenden in einen Discordchannel gepostet wird, siehe Bilder.
Der Inhalt dieser Nachrichten funktioniert jedoch leider nicht. Normale Nachrichten moved er jedoch richtig.
Ich bin ratlos und komme da einfach nicht weiter.

Code: Alles auswählen

import discord
from discord.ext import commands

intents = discord.Intents.default()
intents.message_content = True
intents.messages = True

bot = commands.Bot(command_prefix='!', intents=intents)

@bot.event
async def on_ready():
    print(f'Bot ist bereit! Angemeldet als {bot.user}')

@bot.command(name='move')
async def move_message(ctx, channel_name: str):
    # Finde den Zielkanal
    target_channel = discord.utils.get(ctx.guild.channels, name=channel_name)

    if not target_channel:
        await ctx.send(f'Kanal "{channel_name}" wurde nicht gefunden.')
        return

    # Überprüfe, ob eine Nachricht markiert wurde
    if ctx.message.reference:
        referenced_message = await ctx.fetch_message(ctx.message.reference.message_id)

        # Überprüfe, ob die markierte Nachricht von einem Mitglied oder einer Webhook stammt
        if isinstance(referenced_message.author, discord.User) or isinstance(referenced_message.author, discord.Webhook):
            # Erhalte alle Informationen aus der markierten Nachricht
            content_to_move = referenced_message.content
            user_name = referenced_message.author.display_name
            avatar_url = referenced_message.author.avatar.url if referenced_message.author.avatar else discord.Embed.Empty

            # Verschiebe die Informationen in den Zielkanal
            embed = discord.Embed(description=content_to_move)
            embed.set_author(name=user_name, icon_url=avatar_url)
            await target_channel.send(embed=embed)

            # Lösche die Nachricht im alten Kanal
            await referenced_message.delete()

            # Lösche die Befehlsnachricht
            await ctx.message.delete()
        else:
            await ctx.send('Die markierte Nachricht stammt nicht von einem Mitglied oder einer Webhook.')
    else:
        await ctx.send('Bitte markiere die Nachricht, die verschoben werden soll.')

bot.run('DISCORD_TOKEN')
Die Nachricht die durch Google Forms gepostet wird:
Bild

Der fehlende Inhalt der Nachricht aus dem Google Forms:
Bild

Ich hoffe mir kann jemand helfen.
Danke im Vorraus!
Antworten