discord bot hosting über repl.it nicht möglich wegen error

Txc2407

Cadet 3rd Year
Registriert
Juni 2020
Beiträge
42
Guten Abend zusammen, bin gerade dabei meinen mit Python geschriebenen discordbot über repl.it zu hosten damit er 24/7 erreichbar ist. hab auch alles gut geschafft, bis ich dann einen error bekommen hab den ich nicht zu lösen weiß, vllt kann mir ja jemand helfen.
 

Anhänge

  • Screenshot_91.png
    Screenshot_91.png
    62,7 KB · Aufrufe: 383
Ein Anfang wäre es, wenigstens den ganzen Code hier zu posten.
 
dein thread will eine funktion namens "run" starten, die aber nicht gefunden wurde. entweder musst du die noch schreiben oder von irgendwoher importieren.
 
Zerstoerer schrieb:
Ein Anfang wäre es, wenigstens den ganzen Code hier zu posten.
Python:
[/CODE
from discord.ext import commands
import asyncio
from webserver import keep_alive
import os
from discord import Member, Guild, User
client = discord.Client(intents=discord.Intents.all())
antworten = ["Ja", "Nein", "Vielleicht", "Warscheinlich", "Sieht so aus", "Sehr warscheinlich",
             "Sehr unwahrscheinlich"]




@client.event
async def on_ready():
    print("Erfolgreich Angemeldet als User {}".format(client.user.name))
    client.loop.create_task(status_task())

async def status_task():
    color = [discord.Colour.red(), discord.Colour.orange(), discord.Colour.gold(), discord.Colour.green(),
             discord.Colour.blue(), discord.Colour.purple()]
    while True:
        await client.change_presence(activity=discord.Game("mit einem Messer"), status=discord.Status.online)
        await asyncio.sleep(10)
        await client.change_presence(activity=discord.Game("Text"), status=discord.Status.online)
        await asyncio.sleep(8)
        await client.change_presence(activity=discord.Game("Join this server not now: InviteLink"), status=discord.Status.online)
        await asyncio.sleep(10)
        await client.change_presence(activity=discord.Game("no. just no."), status=discord.Status.online)
        await asyncio.sleep(4)
        await client.change_presence(activity=discord.Game("text"), status=discord.Status.online)
        await asyncio.sleep(5)
        guild: Guild = client.get_guild(772190779299987506)
        if guild:
            role = guild.get_role(772501470394318868)
            if role: ...


def is_not_pinned(mess):
    return not mess.pinned
@client.event
async def on_member_join(member):
    guild: Guild = member.guild
    if not member.bot:
        embed = discord.Embed(title="Willkommen auf Halbmond, {} ".format(member.name),
                              description="Wir heißen dich herzlich Willkommen auf unserem Server!", color=0x22a7f0)
        try:
            if not member.dm_channel:
                await member.create_dm()
            await member.dm_channel.send(embed=embed)
        except discord.errors.Forbidden:
            print("Es konnte keine Willkommensnachricht an {} gesendet werden.".format(member.name))


@client.event
async def on_message(message):
    if message.author.bot:
        return
    if ".help" in message.content:
        await message.channel.send("[I]Commandhilfe des Serverbots.[/I] "
                                   "\r\n \r\n"
                                   "``.help - Zeigt diese Hilfe an.\r\n"
                                   ".userinfo [Name] - Zeigt eine Info über den angegebenen User an.\r\n"
                                   ".8ball [Frage]- Lässt ein Orakel erscheinen was es ermöglicht, jedes Ereignis vorherzusagen.\r\n"
                                   ".clear [Anzahl]- Command zum Löschen von Chatnachrichten. // Löscht nur Nachrichten der letzten 2 Wochen. //\r\n"
                                   ".ban [Name] - Um einen bestimmten User von dem Server zu bannen. Nur für Moderatoren.\r\n"
                                   ".kick [Name] - Um einen bestimmten User von dem Server zu kicken. Nur für Moderatoren.``\r\n"
                                   )
    if message.content.startswith(".ban")and message.author.guild_permissions.ban_members:
        args = message.content.split(" ")
        if len(args) == 2:
            member: Member = discord.utils.find(lambda m: args[1] in m.name, message.guild.members)
            if member:
                await member.ban()
                await message.channel.send(f"[I]Spieler {member.name} wurde erfolgreich gekickt.[/I]")
            else:
                await message.channel.send(f"Kein User mit dem Namen {args[1]} gefunden.")
    if message.content.startswith(".unban")and message.author.guild_permissions.kick_members:
        args = message.content.split(" ")
        if len(args) == 2:
            user: User = discord.utils.find(lambda banentry: args[1] in banentry.user.name,
                                            message.guild.bans()).user
            if user:
                await message.guild.unban(user)
                await message.channel.send(f"Member {member.name} entbannt")
            else:
                await message.channel.send(f"Kein User mit dem Namen {args[1]} gefunden.")
    if message.content.startswith(".kick")and message.author.guild_permissions.kick_members:
        args = message.content.split(" ")
        if len(args) == 2:
            member: Member = discord.utils.find(lambda m: args[1] in m.name, message.guild.members)
            if member:
                await member.kick()
                await message.channel.send(f"[I]Spieler {member.name} wurde erfolgreich gekickt.[/I]")
            else:
                await message.channel.send(f"Kein User mit dem Namen {args[1]} gefunden.")
    if message.content.startswith(".userinfo"):
        args = message.content.split(" ")
        if len(args) == 2:
           member: Member = discord.utils.find(lambda m: args[1] in m.name, message.guild.members)
           if member:
                embed = discord.Embed(title="Userinfo für {}".format(member.name),
                                      description="Dies ist eine Userinfo für den User {}".format(member.mention),
                                      color=0x22a7f0)
                embed.add_field(name="Server beigetreten!", value=member.joined_at.strftime("%d/%m/%Y, %H:%M:%S"),
                                inline=True)
                embed.add_field(name="Discord beigetreten", value=member.created_at.strftime("%d/%m/%Y, %H:%M:%S"),
                                inline=True)
                rollen = ""
                for role in member.roles:
                    if not role.is_default():
                        rollen += "{} \r\n".format(role.mention)
                if rollen:
                    embed.add_field(name="Rollen", value=rollen, inline=True)
                embed.set_thumbnail(url=member.avatar_url)
                embed.set_footer(text="Userinfo created by an cool Person.")
                await message.channel.send(embed=embed)
    if message.content.startswith (".clear"):
        if message.author.permissions_in(message.channel).manage_messages:
            args = message.content.split(" ")
            if len(args) == 2:
                if args[1].isdigit():
                    count = int(args[1]) + 1
                    deleted = await message.channel.purge(limit=count, check=is_not_pinned)
                    await message.channel.send("{} Nachrichten gelöscht.".format(len(deleted)-1))
    if message.content.startswith(".8ball"):
        args = message.content.split(" ")
        if len(args) >= 2:
            frage = " ".join(args[1:])
            mess = await message.channel.send("Ich versuche deine Frage [ICODE]{0}[/ICODE] zu beantworten.".format(frage))
            await asyncio.sleep(2)
            await mess.edit(content="Ich kontaktiere das Orakel...")
            await asyncio.sleep(2)
            await mess.edit(content="Deine Antwort zur Frage [ICODE]{0}[/ICODE] lautet: [ICODE]{1}[/ICODE]".format(frage,
                                                                                         random.choice(antworten)))
keep_alive()                                                          
TOKEN = os.environ.get("DISCORD_BOT_SECRET")

client.run("TOKEN")
]import discord
from discord.ext import commands
import asyncio
from webserver import keep_alive
import os
from discord import Member, Guild, User
client = discord.Client(intents=discord.Intents.all())
antworten = ["Ja", "Nein", "Vielleicht", "Warscheinlich", "Sieht so aus", "Sehr warscheinlich",
             "Sehr unwahrscheinlich"]




@client.event
async def on_ready():
    print("Erfolgreich Angemeldet als User {}".format(client.user.name))
    client.loop.create_task(status_task())

async def status_task():
    color = [discord.Colour.red(), discord.Colour.orange(), discord.Colour.gold(), discord.Colour.green(),
             discord.Colour.blue(), discord.Colour.purple()]
    while True:
        await client.change_presence(activity=discord.Game("mit einem Messer"), status=discord.Status.online)
        await asyncio.sleep(10)
        await client.change_presence(activity=discord.Game("Developed by Txc.#0001"), status=discord.Status.online)
        await asyncio.sleep(8)
        await client.change_presence(activity=discord.Game("Join this server not now: InviteLink"), status=discord.Status.online)
        await asyncio.sleep(10)
        await client.change_presence(activity=discord.Game("no. just no."), status=discord.Status.online)
        await asyncio.sleep(4)
        await client.change_presence(activity=discord.Game("Update Status: 24 - 100"), status=discord.Status.online)
        await asyncio.sleep(5)
        guild: Guild = client.get_guild(772190779299987506)
        if guild:
            role = guild.get_role(772501470394318868)
            if role: ...


def is_not_pinned(mess):
    return not mess.pinned
@client.event
async def on_member_join(member):
    guild: Guild = member.guild
    if not member.bot:
        embed = discord.Embed(title="Willkommen auf Halbmond, {} ".format(member.name),
                              description="Wir heißen dich herzlich Willkommen auf unserem Server!", color=0x22a7f0)
        try:
            if not member.dm_channel:
                await member.create_dm()
            await member.dm_channel.send(embed=embed)
        except discord.errors.Forbidden:
            print("Es konnte keine Willkommensnachricht an {} gesendet werden.".format(member.name))


@client.event
async def on_message(message):
    if message.author.bot:
        return
    if ".help" in message.content:
        await message.channel.send("[I]Commandhilfe des Serverbots.[/I] "
                                   "\r\n \r\n"
                                   "``.help - Zeigt diese Hilfe an.\r\n"
                                   ".userinfo [Name] - Zeigt eine Info über den angegebenen User an.\r\n"
                                   ".8ball [Frage]- Lässt ein Orakel erscheinen was es ermöglicht, jedes Ereignis vorherzusagen.\r\n"
                                   ".clear [Anzahl]- Command zum Löschen von Chatnachrichten. // Löscht nur Nachrichten der letzten 2 Wochen. //\r\n"
                                   ".ban [Name] - Um einen bestimmten User von dem Server zu bannen. Nur für Moderatoren.\r\n"
                                   ".kick [Name] - Um einen bestimmten User von dem Server zu kicken. Nur für Moderatoren.``\r\n"
                                   )
    if message.content.startswith(".ban")and message.author.guild_permissions.ban_members:
        args = message.content.split(" ")
        if len(args) == 2:
            member: Member = discord.utils.find(lambda m: args[1] in m.name, message.guild.members)
            if member:
                await member.ban()
                await message.channel.send(f"[I]Spieler {member.name} wurde erfolgreich gekickt.[/I]")
            else:
                await message.channel.send(f"Kein User mit dem Namen {args[1]} gefunden.")
    if message.content.startswith(".unban")and message.author.guild_permissions.kick_members:
        args = message.content.split(" ")
        if len(args) == 2:
            user: User = discord.utils.find(lambda banentry: args[1] in banentry.user.name,
                                            message.guild.bans()).user
            if user:
                await message.guild.unban(user)
                await message.channel.send(f"Member {member.name} entbannt")
            else:
                await message.channel.send(f"Kein User mit dem Namen {args[1]} gefunden.")
    if message.content.startswith(".kick")and message.author.guild_permissions.kick_members:
        args = message.content.split(" ")
        if len(args) == 2:
            member: Member = discord.utils.find(lambda m: args[1] in m.name, message.guild.members)
            if member:
                await member.kick()
                await message.channel.send(f"[I]Spieler {member.name} wurde erfolgreich gekickt.[/I]")
            else:
                await message.channel.send(f"Kein User mit dem Namen {args[1]} gefunden.")
    if message.content.startswith(".userinfo"):
        args = message.content.split(" ")
        if len(args) == 2:
           member: Member = discord.utils.find(lambda m: args[1] in m.name, message.guild.members)
           if member:
                embed = discord.Embed(title="Userinfo für {}".format(member.name),
                                      description="Dies ist eine Userinfo für den User {}".format(member.mention),
                                      color=0x22a7f0)
                embed.add_field(name="Server beigetreten!", value=member.joined_at.strftime("%d/%m/%Y, %H:%M:%S"),
                                inline=True)
                embed.add_field(name="Discord beigetreten", value=member.created_at.strftime("%d/%m/%Y, %H:%M:%S"),
                                inline=True)
                rollen = ""
                for role in member.roles:
                    if not role.is_default():
                        rollen += "{} \r\n".format(role.mention)
                if rollen:
                    embed.add_field(name="Rollen", value=rollen, inline=True)
                embed.set_thumbnail(url=member.avatar_url)
                embed.set_footer(text="Userinfo created by an cool Person.")
                await message.channel.send(embed=embed)
    if message.content.startswith (".clear"):
        if message.author.permissions_in(message.channel).manage_messages:
            args = message.content.split(" ")
            if len(args) == 2:
                if args[1].isdigit():
                    count = int(args[1]) + 1
                    deleted = await message.channel.purge(limit=count, check=is_not_pinned)
                    await message.channel.send("{} Nachrichten gelöscht.".format(len(deleted)-1))
    if message.content.startswith(".8ball"):
        args = message.content.split(" ")
        if len(args) >= 2:
            frage = " ".join(args[1:])
            mess = await message.channel.send("Ich versuche deine Frage [ICODE]{0}[/ICODE] zu beantworten.".format(frage))
            await asyncio.sleep(2)
            await mess.edit(content="Ich kontaktiere das Orakel...")
            await asyncio.sleep(2)
            await mess.edit(content="Deine Antwort zur Frage [ICODE]{0}[/ICODE] lautet: [ICODE]{1}[/ICODE]".format(frage,
                                                                                         random.choice(antworten)))
keep_alive()                                                          
TOKEN = os.environ.get("DISCORD_BOT_SECRET")

client.run("TOKEN")
 

Anhänge

  • Screenshot_92.png
    Screenshot_92.png
    69,8 KB · Aufrufe: 233
  • Screenshot_93.png
    Screenshot_93.png
    75,6 KB · Aufrufe: 241
  • Screenshot_94.png
    Screenshot_94.png
    96,2 KB · Aufrufe: 230
  • Screenshot_95.png
    Screenshot_95.png
    60,2 KB · Aufrufe: 224
Zuletzt bearbeitet:
ohne [CODE=python][/CODE] tags schaut sich das hier keiner an...
Ergänzung ()

wie bereits gesagt, erwartet der thread in der funktion keep_alive() eine run funktion, die aber nicht gefunden wird. ich kenne dieses "webserver" package nicht - keine ahnung, ob dieser "keep_alive" aufruf in diesem context überhaupt was bringt, aber es gibt zumindest bei diesem code keine verbindung zu deinem programm. zusätzlich fehlt dir ein import random und zum schluss übergibst du den string "TOKEN" anstatt der variable. den rest habe ich mir nicht angeschaut :)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: phatt, Txc2407 und Zerstoerer
Zurück
Oben