#Allgemeine Hilfe

1 messages · Page 84 of 1

wraith garden
#

Weder 1 noch 2

#

ctx und member zeigt es an danach geht nix mehr

#

Aber wie kann das sein

novel ore
#

Mach mal das discord.Forbidden weg und versuche es nochmal

wraith garden
#

also nur except?

novel ore
#

Ja nur mal zum testen

wraith garden
#

Also jetzt kam schonmal eine 2

#

Und er meinte er hätte keine berechtigung ihn zu entbannen

#

logisch ist ja auch er selbst

novel ore
#

Ja da hast du den fehler

wraith garden
#

Aber was mir eben noch auffällt ich kann nur die Leute als Member auswählen die aufm Server sind

novel ore
#

Ja das ist bei discord.Member so

wraith garden
#

Wie krieg ich das beheben? Weil irgendwie muss ich den banned user ja auswählen

novel ore
#

Du könntest machen das man die ID eingibt

wraith garden
#

Hmm gibts da keine andere möglichkeot

#

Könnte das funken wenn ich das discord.forbidden entferne?

deep coyote
#

hab geht immernoch nicht

indigo sleet
#

kurze frage

#

kann ein bot auch als Webhock senden

wraith garden
deep coyote
#

ein bot kann webhooks senden halt als webhook was senden

#

musst du nur binden

ruby sparrow
wraith garden
#

Was bedeutet das?

deep coyote
#

bruder ich raste gleich aus warum ist das rot

fierce dove
#

Falsche einrückung

deep coyote
deep coyote
fierce dove
#

Nope

deep coyote
#
import discord
from discord.ext import commands
from discord.commands import slash_command, Option

class Ticket(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
        
    @slash_command()
    @discord.default_permissions(administrator=True)
    @command.has_permission
    async def tpanel(ctx, title: Option(str, "Title of the ticket panel")):
    embed = discord.Embed(
    title=f"{title}",
    description="Open a ticket by pressing 📩",
    color=discord.Color.green()
      )
    embed.set_thumbnail(url="https://cdn.discordapp.com/attachments/1259484831272927242/1265596031869911051/D69A99FF-9D84-4D2D-930C-BE7EBE63AAB8.gif?ex=66a215a7&is=66a0c427&hm=17a12fed2f1518a1c8c7f4d7b7594fd28c9f5ff7ae0ca8fa64edb9c1713d53cd&")
    embed.set_footer(text="/Painful | Ticket System")
      await ctx.respond(embed=embed)
        
def setup(bot):
    bot.add_cog(Ticket(bot))
fierce dove
#

Falsche einrückung

deep coyote
#

ich bin blind oder so

#

was ist daran falsch eingedrückt

fierce dove
#

Alles

#
import discord
from discord.ext import commands
from discord.commands import slash_command, Option

class Ticket(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
        
    @slash_command()
    @discord.default_permissions(administrator=True)
    async def tpanel(ctx, title: Option(str, "Title of the ticket panel")):
        embed = discord.Embed(
            title=f"{title}",
            description="Open a ticket by pressing 📩",
            color=discord.Color.green()
        )
        embed.set_thumbnail(url="https://cdn.discordapp.com/attachments/1259484831272927242/1265596031869911051/D69A99FF-9D84-4D2D-930C-BE7EBE63AAB8.gif?ex=66a215a7&is=66a0c427&hm=17a12fed2f1518a1c8c7f4d7b7594fd28c9f5ff7ae0ca8fa64edb9c1713d53cd&")
        embed.set_footer(text="/Painful | Ticket System")
        await ctx.respond(embed=embed)
        
def setup(bot):
    bot.add_cog(Ticket(bot))
#

@deep coyote

deep coyote
#

boar bin ich dumm sehe es erst jetzt wo du es überarbeitet hast

#

danke fürs helfen

fierce dove
#

Kein Problem

wraith garden
#

Wie bekomme ich die User Id?

#

Bzw wie frage ich sie im command ab

#
user: Option(discord.User.id, "Gebe die ID ein")
#

So?

fierce dove
#

Falsch

wraith garden
#

Wie dann 😦

#

Weil hier steht es ja als attribut drin..

restive herald
deep coyote
#

langsam bekomme ich gänsehaut von diesen errors

````discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: AttributeError: 'Ticket' object has no attribute 'respond'```

wraith garden
restive herald
#

und dann damit sachen ausführen

wraith garden
#

Funkt das auch wenn der user nicht mehr aufm server ist

deep coyote
# deep coyote langsam bekomme ich gänsehaut von diesen errors ````discord.errors.Application...

import discord
from discord.ext import commands
from discord.commands import slash_command, Option

class Ticket(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
        
    @slash_command()
    @discord.default_permissions(administrator=True)
    async def tpanel(ctx, title: Option(str, "Title of the ticket panel")):
        embed = discord.Embed(
            title=f"{title}",
            description="Open a ticket by pressing 📩",
            color=discord.Color.green()
        )
        embed.set_thumbnail(url="https://cdn.discordapp.com/attachments/1259484831272927242/1265596031869911051/D69A99FF-9D84-4D2D-930C-BE7EBE63AAB8.gif?ex=66a215a7&is=66a0c427&hm=17a12fed2f1518a1c8c7f4d7b7594fd28c9f5ff7ae0ca8fa64edb9c1713d53cd&")
        embed.set_footer(text="/Painful | Ticket System")
        await ctx.respond(embed=embed)
        
def setup(bot):
    bot.add_cog(Ticket(bot))

wraith garden
restive herald
#

;-;

deep coyote
wraith garden
deep coyote
#

Wie kann ich buttons mit einem embed verbinden?

wraith garden
#

Also

user: Option(str, "Gebe die ID ein")

?

restive herald
deep coyote
#

aso

restive herald
#

ne normale view?

#

:p

deep coyote
wraith garden
deep coyote
#

ich glaube bin zu dumm für diese buttons ich lasse den ticket system lieber sigmadab

next echo
#

Weiß wer wie das geht das ich machen kann das man mein Bot als App bei sein Discord Account hinzufügen kann und der Bot dabei zugriff kriegt Server für dich beizutreten?

kind depot
next echo
#

okay danke dir

wraith garden
#

Warum ist das rot unterstrichen man

kind depot
#

probier mal discord.utils.get_or_fetch_user

odd kiteBOT
wraith garden
#

Ja genau das ist der Befehl den ich ja gefunden habe

Weder fetch_user macht er
noch get_user
noch get_or_fetch_user

#

discord.utils.get müsste ich probieren

kind depot
#

await ctx.bot.get_or_fetch_user

wraith garden
#

ah omg logisch

#

Warum ist das jetzt so

#

es ist eine id ich sehe da nirgends ein komma oder so

kind depot
#

probier mal dein discord zu restarten villeicht hillft das

wraith garden
#

nope gar nix

#

auch von str to int umwandeln auch nicht

#

hab jetzt mal geprintet was er bekommt

#

nur die id

#

ich check es einfach nicht seit heute morgen sitz ich dadran

limpid wolf
wraith garden
#

und eigentlich sollte es easy sein aber neeeeiiinnnnn

wraith garden
#

ah

#

fetch_user(int(id))

#

so vllt?

limpid wolf
#

Probier aus aber warum machst du nicht direkt eine user Option?

wraith garden
#

Wie mach ich die

#

Weil der User ist ja nicht mehr aufm Server

#

Bin noch relativ neu was programmieren angeht so

kind depot
odd kiteBOT
#

Mein Discord Server
https://discord.gg/zfvbjTEzv6

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://github.com/tibue99/tutorial-bot

PYCORD
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/introduction/
Discord Server ► https://discord.gg/pycord

Discord Developer Portal ► https://discord...

▶ Play video
wraith garden
#

Das?

kind depot
#

ja

wraith garden
#

Puh danke

#

Wenigstens mal ein anhaltspunkt weil auf yt gibts nicht so wirklich gescheides

#

Oder ich such falsch

limpid wolf
#

Da ist es egal ob der noch auf dem Server ist solange man die id hat

#

Aber mit autocomplete ist bestimmt einfacher weil man dann direkt suchen kann

wraith garden
limpid wolf
#

Die gebannten User ins autocomplete packen und dann hast du dann die ids direkt

#

Aber wahrscheinlich bisschen kompliziert für den Anfang

wraith garden
#

Hmm mit ner for schleife oder wie

limpid wolf
# wraith garden

Entfern mal Zeile 37 und mach das int(id) direkt darunter wo du grade nur id stehen hast

wraith garden
wraith garden
limpid wolf
#

Ja genau

#

Aber das id = int(id) in der Zeile drüber weg

wraith garden
#

ok

wraith garden
#

So langsam nervt es

#

Was hat das für ein Problem

#

Willst du mir vielleicht den scheiß mit autocomplete coden 😓
Ich bin kurz vorm durchdrehen

limpid wolf
#

Bin grade am Handy weiß es nicht genau

#

Mein Discord Server
https://discord.gg/zfvbjTEzv6

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://github.com/tibue99/tutorial-bot

Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/introduction/
Discord Server ► https://discord.gg/pycord

Discord Developer Portal ► https://discord...

▶ Play video
#

Schau mal hier

limpid wolf
wraith garden
ruby sparrow
wraith garden
#

mit cog

wraith garden
#

Dann hab ich es mit fetch_user versucht

#

Aber irgendwie will discord die id nicht als ganze zahl ansehen

odd kiteBOT
#

Mein Discord Server
https://discord.gg/zfvbjTEzv6

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://github.com/tibue99/tutorial-bot

PYCORD
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/introduction/
Discord Server ► https://discord.gg/pycord

Discord Developer Portal ► https://discord...

▶ Play video
wraith garden
#

mit string und dann in int wandeln will er auch nicht

wraith garden
#

sitze seit 7 Uhr dadran und krieg es nicht hin

ruby sparrow
#

Komm gleich call

#

denn wir gucken was man machen kann🫠

#

@wraith garden

wraith garden
#

Alles klkar

ruby sparrow
#

was geht nicht XD

silk gulch
fading raft
#
async def ping(ctx, user: discord.Member):
    await ctx.channel.send(f"{user.mention}")```
#

Wieso wird der Command nicht vorgesclagen

restive herald
#

ich nehme einfach mal an, du hast den cmd in einer main.py, dann einfach discord neustarten

fading raft
#

ja

#

aber wait

#

wieso respond? Den Ping soll jeder sehen können

restive herald
#

ja

#

wird man ja auch

#

man sieht ihn nur nd wenn der respond ephemeral ist

fading raft
#

ok wait

#

geht immer noch ned

ruby sparrow
#

zeig mal dem code

fading raft
#
async def ping(ctx, user: discord.Member):
    await ctx.respond(f"{user.mention}")```
fading raft
#

Command wird nicht angezeigt

ruby sparrow
fading raft
#

wie?

#

schließen und wieder auf?

ruby sparrow
#

strg + r

fading raft
#

ok hab wait

#

Vielen dank

ruby sparrow
#

warum zeig dem command auf alle server an

fierce dove
#

Wie meinst

ruby sparrow
#

dem command zeig an aber er bot ist nicht auf dem server

fierce dove
#

Vielleicht wegen User Install

ruby sparrow
#

ja aber hab das an es soll nur dem server anzeigen

frosty nexus
#
  File "/workspaces/Anfang/main.py", line 8, in <module>
    @app.get("/")
TypeError: FastAPI.get() missing 1 required positional argument: 'path'```


```py

from fastapi import FastAPI
import uvicorn



app = FastAPI

@app.get("/")
async def home():
    return {"status": "Online"}

if __name__ == "__main__":
  uvicorn.run(app, host="localhost", port=8000)```



Kann mir jemand erkären warum???
limpid wolf
#

Ist es nicht FastAPI()?

ruby sparrow
frosty nexus
limpid wolf
frosty nexus
#

danke 🤪

limpid wolf
#

Gerne

ruby sparrow
ruby sparrow
limpid wolf
#

Hab damit noch nie was gemacht also ne sorry

#

Sonst ist der Command vielleicht noch registriert weil du den vorher schon gestartet hast als du das noch nicht drin hattest?

#

Oder mal Discord neu starten?

limpid wolf
#

Dann weiß ich es leider nicht

#

Hab damit wie gesagt noch nie was gemacht

frosty nexus
# limpid wolf Gerne
  File "/workspaces/Anfang/main.py", line 7, in <module>
    app.mount("/static", StaticFiles(frontend/static), name="static")
NameError: name 'frontend' is not defined```


```py
from fastapi import FastAPI, Request
import uvicorn
from starlette.templating import Jinja2Templates
from fastapi.staticfiles import StaticFiles

app = FastAPI()
app.mount("/static", StaticFiles(frontend/static), name="static")
templates = Jinja2Templates(directory="frontend")


@app.get("/")
async def home(request: Request):
    return templates.TemplateResponse(
       "index.html",
       {
          "request": request,
          "count": 69
       }

       )

if __name__ == "__main__":
  uvicorn.run(app, host="localhost", port=8000)```
#

ups sorryfür ping

#

der sagt mir das frontend nicht da ist obwohl es da ist

#

und das selbe problem ist auch bei static

ruby sparrow
silk gulch
fierce dove
#
Traceback (most recent call last):
  File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/ui/view.py", line 426, in _scheduled_task
    await item.callback(interaction)
  File "/storage/emulated/0/Documents/Botify/cogs/Moderation/TempVoice.py", line 150, in userlimit
    modal = UserLimitModal(title="User Limit")
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: UserLimitModal.__init__() got an unexpected keyword argument 'title'
#
    @discord.ui.button(label="User Limit", style=discord.ButtonStyle.gray, custom_id="userlimit", emoji="🙇‍♂️")
    async def userlimit(self, button, interaction):
            if interaction.user.voice and interaction.user.voice.channel:
                modal = UserLimitModal(title="User Limit")
                await interaction.response.send_modal(modal)                
            else:
                await interaction.response.send_message("You must be in a voice channel to set the user limit.", ephemeral=True)
ruby sparrow
#

@fierce dove zeig mal modal class @fierce dove

fierce dove
#
class UserLimitModal(discord.ui.Modal):
    def __init__(self):
        super().__init__(
            discord.ui.InputText(
                label="Limit",
                placeholder="Limit",
                min_length=0,
                max_length=99
            ),
        )

    async def callback(self, interaction):
        temp_channel = interaction.user.voice.channel
        new_limit = self.children[0].value
        await temp_channel.edit(user_limit=new_limit)
        await db.update_user_limit(temp_channel.id, new_limit)
        await interaction.response.send_message(f"User limit set to {new_limit}", ephemeral=True)
ruby sparrow
# fierce dove ```py class UserLimitModal(discord.ui.Modal): def __init__(self): su...
class UserLimitModal(discord.ui.Modal):
    def __init__(self):
        super().__init__(
            discord.ui.InputText(
                label="Limit",
                placeholder="Limit"",
                min_length=0,
                max_length=99
            ),
           title="User Limit"
        )

    async def callback(self, interaction):
        temp_channel = interaction.user.voice.channel
        new_limit = self.children[0].value
        await temp_channel.edit(user_limit=new_limit)
        await db.update_user_limit(temp_channel.id, new_limit)
        await interaction.response.send_message(f"User limit set to {new_limit}", ephemeral=True)
#
    @discord.ui.button(label="User Limit", style=discord.ButtonStyle.gray, custom_id="userlimit", emoji="🙇‍♂️")
    async def userlimit(self, button, interaction):
            if interaction.user.voice and interaction.user.voice.channel:
                modal = UserLimitModal()
                await interaction.response.send_modal(modal)                
            else:
                await interaction.response.send_message("You must be in a voice channel to set the user limit.", ephemeral=True)
#

@fierce dove so sollte es gehen

fierce dove
#

Ich schaue

frosty nexus
#
  File "/workspaces/Anfang/main.py", line 11, in <module>
    ipc = client(secret_key="SunynBotDashbord")
TypeError: 'module' object is not callable```


```py
import uvicorn
from fastapi import FastAPI, Request
from discord.ext.ipc import client
from starlette.templating import Jinja2Templates
from fastapi.staticfiles import StaticFiles

app = FastAPI()
app.mount("/static", StaticFiles(directory="frontend/static"), name="static")
templates = Jinja2Templates(directory="frontend")

ipc = client(secret_key="SunynBotDashbord")


@app.get("/")
async def home(request: Request):
    guild_count = await ipc.request("guild_count")
    return templates.TemplateResponse(
       "index.html",
       {
          "request": request,
          "count": guild_count.response
       }

       )

if __name__ == "__main__":
  uvicorn.run("main:app", host="localhost", port=8000, reload=True)```
frosty nexus
#
ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "/home/codespace/.python/current/lib/python3.10/site-packages/uvicorn/protocols/http/httptools_impl.py", line 399, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
  File "/home/codespace/.python/current/lib/python3.10/site-packages/uvicorn/middleware/proxy_headers.py", line 70, in __call__
    return await self.app(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/fastapi/applications.py", line 1054, in __call__
    await super().__call__(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/applications.py", line 123, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/middleware/errors.py", line 186, in __call__
    raise exc
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/middleware/errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/middleware/exceptions.py", line 65, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/routing.py", line 756, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/routing.py", line 776, in app
    await route.handle(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/routing.py", line 297, in handle
    await self.app(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/routing.py", line 77, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/routing.py", line 72, in app
    response = await func(request)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/fastapi/routing.py", line 278, in app
    raw_response = await run_endpoint_function(
  File "/home/codespace/.python/current/lib/python3.10/site-packages/fastapi/routing.py", line 191, in run_endpoint_function
    return await dependant.call(**values)
  File "/workspaces/Anfang/main.py", line 47, in callback
    result = await api.get_token_response(data)
  File "/workspaces/Anfang/backend/api.py", line 10, in get_token_response
    response = await session.post(API_ENDPOINT + "/oauth2/token", data=data)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/aiohttp/client.py", line 507, in _request
    with timer:
  File "/home/codespace/.python/current/lib/python3.10/site-packages/aiohttp/helpers.py", line 715, in __enter__
    raise RuntimeError(
RuntimeError: Timeout context manager should be used inside a task
#

bitte bescheid sagen was benötigt wird.
DANKE

graceful fiber
dire sleet
#

Slash commands gibts ja 2 möglichkeiten entweder mit debug guilds also für einen gewissen server oder public und da ist mein problem ich finde das in der tutorial reihe nicht. Gibts da ein video dazu?

graceful fiber
#

Also wenn du Public willst für alle, auf allen Server auf denen der bot ist, dann einfach die Debug guilds rausnehmen aus deinem code

ruby sparrow
restive herald
frosty nexus
# graceful fiber Kontext und Code waren sinnvoll, vllt auch nur der relevante Error 🙂

import aiohttp


API_ENDPOINT = "https://discord.com/api"


session = aiohttp.ClientSession()

async def get_token_response(data):
   response = await session.post(API_ENDPOINT + "/oauth2/token", data=data)
   json_response = await response.json()
   print(json_response)
   acces_token = json_response.get("acces_token")
   refresh_token = json_response.get("refresh_token")
   expires_in = json_response.get ("expires_in")

   if not acces_token or not refresh_token:
      return None

   return acces_token, refresh_token, expires_in```
#

dashboard part 2

graceful fiber
#

Jap das klappt ja auch einwandfrei

#

Sicher dass es 1:1 ist?

frosty nexus
graceful fiber
#

Ist doof gesagt, aber es klappt halt sonst bei den anderen auch peeposhy

frosty nexus
#

ich schau gerne nochml nach

#

kann ach sein das ich einfach zu blöd dafür bin

restive herald
frosty nexus
opaque blade
#

Heyy, ich versuche seid heute früh meinen Hostingserver neu zu starten. Der ist suspended weil ich nh Zeit lang den Server nicht geboostet hab (warum auch immer? Danke discord) Würde den aber gerne löschen nur komme ich nicht ins settings panel rein. Kann mir da wer helfen?

frosty nexus
opaque blade
#

ja da steht dass der der neu installiert wird. aber das schon seit 10h

limpid wolf
#

Oder kommst du gar nicht ins Panel?

#

Wenn nicht einmal Passwort zurücksetzen

opaque blade
#

i try

solid ingot
#

hast du schon /extend benutzt um die server wieder zu aktivieren?

opaque blade
#

oh...

#

problem solved

solid ingot
#

supi

graceful fiber
frosty nexus
graceful fiber
#

Dann kann's ja jetzt happy weitergehen:)

ruby sparrow
#

Warum ist es möglich, dass man trotz einer Sperre weiterhin den Voice-Chat betreten kann? Dies sollte eigentlich nicht möglich sein. ```py
@commands.Cog.listener()
async def on_voice_state_update(self, member, before, after):
if after.channel and (not before.channel or before.channel.id != after.channel.id):
print(f"{member.display_name} joined {after.channel.name}")

        row = await db.get_setup_info(member.guild.id)
        print(f"Setup info for guild {member.guild.id}: {row}")

        if row and row[0] == after.channel.id:
            temp_channel_info = await db.get_temp_channel_by_owner(member.id)
            if temp_channel_info:
                temp_channel_id, voice_name = temp_channel_info
                temp_channel = await self.bot.fetch_channel(temp_channel_id)
                if temp_channel:
                    is_banned = await db.is_banned(member.id, temp_channel_id)
                    if is_banned:
                        await temp_channel.set_permissions(member, connect=False)
                        await member.send("You are banned from this voice channel.")
                        return

                    print(f"Moving {member.display_name} to existing temp channel {temp_channel.name}")
                    try:
                        if member.guild.me.guild_permissions.move_members:
                            await member.move_to(temp_channel)
                            print(f"Successfully moved {member.display_name} to {temp_channel.name}")
                        else:
                            print("Bot does not have permission to move members.")
                    except Exception as e:
                        print(f"Failed to move {member.display_name} to {temp_channel.name}: {e}")
                else:
                    await db.remove_temp_channel(temp_channel_id)
                    temp_channel = await self.create_temp_channel(member, after.channel.category, voice_name)
                    print(f"Created new temp channel {temp_channel.name} and moving {member.display_name}")
            else:
                temp_channel = await self.create_temp_channel(member, after.channel.category,
                                                              f"Temp {member.display_name}")
                print(f"Created new temp channel {temp_channel.name} for {member.display_name}")

            await db.add_temp_channel(temp_channel.id, 0, False, member.id, temp_channel.name)
            print(f"Added temp channel {temp_channel.name} to the database for {member.display_name}")```
dull siren
#

[Errno 1] [SSL: SSLV3_ALERT_BAD_RECORD_MAC] sslv3 alert bad record mac (_ssl.c:2578)

was bedeutet dieser exxeption fehler in meinem pelican panel?

dull siren
#

hat dein bot die rechte?

ruby sparrow
#

ja

ruby sparrow
#
class unbanview(discord.ui.View):
    def __init__(self, temp_channel_id):
        super().__init__()
        self.temp_channel_id = temp_channel_id
        self.banned_users = []

    async def on_view(self, interaction: discord.Interaction):
        self.banned_users = await db.get_bans(self.temp_channel_id)
        if not self.banned_users:
            await interaction.response.send_message("Keine gebannten Benutzer gefunden.", ephemeral=True)
            return
        self.user_select.options = [
            discord.SelectOption(label=interaction.guild.get_member(user_id).display_name, value=str(user_id))
            for user_id in self.banned_users
        ]

    @discord.ui.user_select(placeholder="Wähle einen User", min_values=1, max_values=1, custom_id="unban_user")
    async def user_callback(self, select, interaction: discord.Interaction):
        if not select.values:
            await interaction.response.send_message("Keine Benutzer zur Auswahl.", ephemeral=True)
            return

        selected_user = select.values[0]  # selected_user is already a Member object
        selected_member = interaction.guild.get_member(selected_user.id)

        if not selected_member:
            await interaction.response.send_message("Der Benutzer konnte nicht gefunden werden.", ephemeral=True)
            return

        if not await db.is_banned(selected_user.id, self.temp_channel_id):
            await interaction.response.send_message(f"{selected_member.display_name} ist nicht gebannt.", ephemeral=True)
            return

        temp_channel = interaction.guild.get_channel(self.temp_channel_id)
        if temp_channel:
            await temp_channel.set_permissions(selected_member, connect=True)
            await db.remove_temp_voice_ban(selected_user.id, self.temp_channel_id)
            await interaction.response.send_message(f"{selected_member.display_name} wurde entbannt.", ephemeral=True)
        else:
            await interaction.response.send_message("Der temporäre Kanal wurde nicht gefunden.", ephemeral=True)``` warum zeigt es alle users an  aber ich möchte es machen es zeigt nur dem users an wer geban ist
frosty nexus
fierce dove
#

buoyant warren
#

Es ist ja mittlerweile möglich emojis direkt auf dem bot hochzuladen, kann mir jemand verraten wie ich die dann auch nutze. Alle versuche scheitern leider bei mir ich kann das weder mit der id noch mit dem namen posten

odd kiteBOT
buoyant warren
frosty nexus
# frosty nexus

@solid ingot kannst du mir sagen woran das liegt
PS: Sorry for ping

solid ingot
#

ist veraltet, hab die neue version in den github code gepackt

frosty nexus
frosty nexus
frosty nexus
#

gefixxt

solid ingot
#

user select zeigt immer alle user an, das ist so von discord gemacht

ruby sparrow
solid ingot
#

mit einem normalen select

ruby sparrow
# solid ingot mit einem normalen select

hatte ich es kommt immer dem error py Traceback (most recent call last): File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/ui/view.py", line 426, in _scheduled_task await item.callback(interaction) File "/storage/emulated/0/Documents/Botify/cogs/Moderation/TempVoice.py", line 268, in unban await interaction.response.send_message(view=UnbanView(temp_channel_id), ephemeral=True) File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/interactions.py", line 957, in send_message await self._locked_response( File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/interactions.py", line 1288, in _locked_response await coro File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/webhook/async_.py", line 224, in request raise HTTPException(response, data) discord.errors.HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body In data.components.0.components.0.options: Must be between 1 and 25 in length.

solid ingot
#

hast zu viele oder zu wenige user, müssen 1-25 sein

ruby sparrow
#

es ist nur ein user geban es wegen

#

soll ich mal ein code senden

#
class UnbanView(discord.ui.View):
    def __init__(self, temp_channel_id):
        super().__init__()
        self.temp_channel_id = temp_channel_id

    async def on_timeout(self):
        for item in self.children:
            item.disabled = True
        if self.message:
            await self.message.edit(view=self)

    async def get_banned_members(self, guild):
        """Fetch the banned members from the database and return them as a list of SelectOption."""
        banned_user_ids = await db.get_bans(self.temp_channel_id)
        banned_members = [guild.get_member(user_id) for user_id in banned_user_ids]
        
        # Ensure the number of options does not exceed the limit
        options = [discord.SelectOption(label=member.display_name, value=str(member.id))
                   for member in banned_members if member]
        
        return options if options else [discord.SelectOption(label="Keine gebannten Mitglieder", value="none")]

    @discord.ui.select(
        placeholder="Wähle einen Benutzer zum Entbannen",
        min_values=1,
        max_values=1,
    )
    async def select_callback(self, select: discord.ui.Select, interaction: discord.Interaction):
        selected_user_id = int(select.values[0])
        if selected_user_id == "none":
            await interaction.response.send_message("Es sind keine Mitglieder zum Entbannen vorhanden.", ephemeral=True)
            return

        selected_member = interaction.guild.get_member(selected_user_id)

        if not selected_member:
            await interaction.response.send_message("Der Benutzer konnte nicht gefunden werden.", ephemeral=True)
            return

        # Update permissions to allow the user access to the channel
        temp_channel = interaction.guild.get_channel(self.temp_channel_id)
        if temp_channel:
            await temp_channel.set_permissions(selected_member, connect=True)
            await db.remove_temp_voice_ban(selected_user_id, self.temp_channel_id)
            await interaction.response.send_message(f"{selected_member.display_name} wurde entbannt.", ephemeral=True)
        else:
            await interaction.response.send_message("Der temporäre Kanal wurde nicht gefunden.", ephemeral=True)

    async def setup_view(self, interaction: discord.Interaction):
        """Set up the view with a select menu containing banned members."""
        options = await self.get_banned_members(interaction.guild)
        select = discord.ui.Select(
            placeholder="Wähle einen Benutzer zum Entbannen",
            options=options
        )
        self.add_item(select)
        self.message = await interaction.response.send_message("Wähle einen Benutzer zum Entbannen:", view=self)```
#

da ist code timo

#

@solid ingot

fierce dove
#

@ruby sparrow

tawdry leaf
#

@fierce dove

fierce dove
#

@tawdry leaf

violet pendant
#

Wie kann ich abfragen welche Option bei einem Dropdown Menu ausgewählt wurde.
Also?

if ...
frosty nexus
#

kann mir jemand sagen warum dieser error beim dashboard autfritt?

#

main.py:


import discord
import uvicorn
from discord.ext.ipc import Client
from fastapi import FastAPI, Request, HTTPException
from fastapi.responses import RedirectResponse
from fastapi.staticfiles import StaticFiles
from starlette.templating import Jinja2Templates

from backend import DiscordAuth, db

# Hier die Daten aus dem Developer-Portal einfügen
CLIENT_ID = 1265780280266981517
CLIENT_SECRET = "Oet2x6urzys3SHXovaahx9I4uvupep9w"
REDIRECT_URI = "http://localhost:8000/callback"
LOGIN_URL = "https://discord.com/oauth2/authorize?client_id=1265780280266981517&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A8000%2Fcallback&scope=identify+guilds"





app = FastAPI()
app.mount("/static", StaticFiles(directory="frontend/static"), name="static")
templates = Jinja2Templates(directory="frontend")

ipc = Client(secret_key="keks")
api = DiscordAuth(CLIENT_ID, CLIENT_SECRET, REDIRECT_URI)


@app.on_event("startup")
async def on_startup():
    await api.setup()
    await db.setup()


@app.get("/")
async def home(request: Request):
    guild_count = await ipc.request("count")
    return templates.TemplateResponse(
        "index.html",
        {
            "request": request,
            "count": guild_count.response,
            "login_url": LOGIN_URL
        }
    )


@app.get("/callback")
async def callback(code: str):
    data = {
        "client_id": CLIENT_ID,
        "client_secret": CLIENT_SECRET,
        "grant_type": "authorization_code",
        "code": code,
        "redirect_uri": REDIRECT_URI,
    }

    result = await api.get_token_response(data)
    if result is None:
        raise HTTPException(status_code=401, detail="Invalid Auth Code")

    token, refresh_token, expires_in = result
    user = await api.get_user(token)
    user_id = user.get("id")

    session_id = await db.add_session(token, refresh_token, expires_in, user_id)

    response = RedirectResponse(url="/guilds")
    response.set_cookie(key="session_id", value=session_id, httponly=True)
    return response


@app.get("/guilds")
async def guilds(request: Request):
    session_id = request.cookies.get("session_id")
    if not session_id:
        raise HTTPException(status_code=401, detail="no auth")

    session = await db.get_session(session_id)
    token, refresh_token, token_expires_at, user_id = session

    user = await api.get_user(token)
    user_guilds = await api.get_guilds(token)

    perms = []    

    for guilds in user_guilds:
        if guilds ["icon"]:
            guilds["icon"] = "https://cdn.discordapp.com/icons/" + guilds["id"] + "/" + guilds["icon"]
        else:
            guilds["icon"] = "https://cdn.discordapp.com/embed/avatars/0.png"

        is_admin = discord.permissions(int(guilds["permissions"])).administator 
        if is_admin or guilds["owner"]:
            perms.append(guilds)

    return templates.TemplateResponse(
        "guilds.html",
        {
            "request": request,
            "global_name": user["global_name"],
            "guilds": perms
        }
    )


if __name__ == "__main__":
     uvicorn.run("main:app", host="localhost", port=8000, reload=True)```
ruby sparrow
frosty nexus
# restive herald bot.py gestartet?

jz ja, kalppt aber jetzt kommt

INFO:     127.0.0.1:37402 - "GET /guilds HTTP/1.1" 500 Internal Server Error
ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "/home/codespace/.python/current/lib/python3.10/site-packages/uvicorn/protocols/http/httptools_impl.py", line 399, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
  File "/home/codespace/.python/current/lib/python3.10/site-packages/uvicorn/middleware/proxy_headers.py", line 70, in __call__
    return await self.app(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/fastapi/applications.py", line 1054, in __call__
    await super().__call__(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/applications.py", line 123, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/middleware/errors.py", line 186, in __call__
    raise exc
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/middleware/errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/middleware/exceptions.py", line 65, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/routing.py", line 756, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/routing.py", line 776, in app
    await route.handle(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/routing.py", line 297, in handle
    await self.app(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/routing.py", line 77, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/routing.py", line 72, in app
    response = await func(request)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/fastapi/routing.py", line 278, in app
    raw_response = await run_endpoint_function(
  File "/home/codespace/.python/current/lib/python3.10/site-packages/fastapi/routing.py", line 191, in run_endpoint_function
    return await dependant.call(**values)
  File "/workspaces/Anfang/main.py", line 93, in guilds
    is_admin = discord.permissions(int(guilds["permissions"])).administator
TypeError: 'module' object is not callable ```
frosty nexus
#

@ruby sparrow hast du nh idee warum

frosty nexus
#

dieses problem besteht weiterhin

violet pendant
fierce dove
#

Doch

restive herald
#

:p

ruby sparrow
violet pendant
#

Ich hasse select menus

ruby sparrow
#

Zeig doch mal dein code

#

denn können die dir auch helfen

#

@violet pendant

frosty nexus
restive herald
frosty nexus
restive herald
#

Hmmmmm

frosty nexus
#

magst du mir ein link davon schicken

ruby sparrow
violet pendant
#

Von der option

ruby sparrow
abstract geode
frosty nexus
#

ich weiß es ist spät aber kann mir jemand erklären warum das passiert ????????



@app.get("/guilds")
async def guilds(request: Request):
    session_id = request.cookies.get("session_id")
    session = await db.get_session(session_id)
    if not session_id or not session:
        raise HTTPException(status_code=401, detail="no auth")

    token, refresh_token, token_expires_at = session

    user = await api.get_user(token)
    if datetime.now() > token_expires_at or user.get("code") == 0:
        if await api.reload(session_id, refresh_token):
            RedirectResponse(url="/guilds")
        else:
            RedirectResponse(url="/logout")

    if "id" not in user:
        return RedirectResponse(url="/logout")

    user_guilds = await api.get_guilds(token)
    bot_guilds = await ipc.request("bot_guilds")
    perms = []

    for guild in user_guilds:
        if guild["id"] in bot_guilds.response["data"]:
            guild["url"] = "/server/" + str(guild["id"])
        else:
            guild["url"] = INVITE_LINK + f"&guild_id={guild['id']}"

        if guild["icon"]:
            guild["icon"] = "https://cdn.discordapp.com/icons/" + guild["id"] + "/" + guild["icon"]
        else:
            guild["icon"] = ezcord.random_avatar()

        is_admin = discord.Permissions(int(guild["permissions"])).administrator
        if is_admin or guild["owner"]:
            perms.append(guild)

    return templates.TemplateResponse(
        "guilds.html",
        {
            "request": request,
            "global_name": user["global_name"],
            "guilds": perms
        }
    )
#

ps: BEi hilfe + Behebung gib es Kekse

vivid sky
#

Hallo,
Ich habe einen Fehler unzwar will ich mit der hilfe einer api etwas rausbekommen was allerdings nicht so einfach is und ich hab hier so nen error hoffe ihr könnt mir helfen

Code:

                        for i in data['profileChanges'][0]['profile']['items']:
                            if i['templateId'] == "Token:campaignaccess":
                                print("is enabled")
                                return True
                            else:
                                print("is disabled")
                                return False

Fehler:

Exception occurred: string indices must be integers
lucid furnace
#

Der Fehler "string indices must be integers" bedeutet, dass Sie versuchen, auf einen String mit einem Index zuzugreifen, als wäre es eine Liste oder ein Dictionary.

silk gulch
lucid furnace
#

Google

hard pivot
#

Hallo ich habe mal eine frage wie kann ich nachsehen wer welchen user eingeladen hat wenn ein user neu joint?

#

Also wer den user eingeladen hat

vast cradle
#

ich kööönte kotzen

#

das impoertieren von .database klappt net

#
PS C:\Users\leonf\Python Projects\Planetbot_Dashboard> & "C:/Program Files/Python312/python.exe" "c:/Users/leonf/Python Projects/Planetbot_Dashboard/backend/api.py"
Traceback (most recent call last):
  File "c:\Users\leonf\Python Projects\Planetbot_Dashboard\backend\api.py", line 5, in <module>
    from .database import db
ImportError: attempted relative import with no known parent package
PS C:\Users\leonf\Python Projects\Planetbot_Dashboard> 
#

warum? warum ist der zu blöd dafür

hard pivot
#

Weil ich glaub du kannst keine ".database" in python inportieren

#

und meist du villeicht eine .sql?

vast cradle
#

aber ich hab das so wie in @solid ingot s video gemacht

#

der hat das auch so importiert

#

und auch wenn ich den genauen pfad angebe klappts net

hard pivot
#

jo zeig mal was in der ".database" file ist

hard pivot
#

Da ich mir schon ungefähr denken kann was dein fehler ist

vast cradle
#
import uuid
from datetime import datetime, timedelta

import ezcord


class DashboardDB(ezcord.DBHandler):
    def __init__(self):
        super().__init__("dashboard.db")

    async def setup(self):
        await self.exec(
            """CREATE TABLE IF NOT EXISTS sessions (
            session_id TEXT UNIQUE,
            token TEXT,
            refresh_token TEXT,
            token_expires_at TIMESTAMP,
            user_id INTEGER PRIMARY KEY
            )"""
        )

    async def add_session(self, token, refresh_token, expires_in, user_id):
        session_id = str(uuid.uuid4())
        expires = datetime.now() + timedelta(seconds=expires_in)

        await self.exec(
            """INSERT OR REPLACE INTO sessions (session_id, token, refresh_token, token_expires_at, user_id)
            VALUES (?, ?, ?, ?, ?)""",
            (session_id, token, refresh_token, expires, user_id),
        )
        return session_id

    async def get_session(self, session_id):
        return await self.one(
            "SELECT token, refresh_token, token_expires_at FROM sessions WHERE session_id = ?",
            session_id,
            detect_types=1,
        )

    async def get_user_id(self, session_id):
        return await self.one("SELECT user_id FROM sessions WHERE session_id=?", session_id)

    async def update_session(self, session_id, token, refresh_token, token_expires_at):
        await self.exec(
            "UPDATE sessions SET token = ?, refresh_token = ?, token_expires_at = ? WHERE session_id = ?",
            (token, refresh_token, token_expires_at, session_id),
            detect_types=1,
        )

    async def delete_session(self, session_id):
        await self.exec("DELETE FROM sessions WHERE session_id = ?", session_id)```
#
class FeatureDB(ezcord.DBHandler):
    def __init__(self):
        super().__init__("dashboard.db")

    async def setup(self):
        await self.exec(
            """CREATE TABLE IF NOT EXISTS settings (
            guild_id INTEGER PRIMARY KEY,
            example_feature INTEGER DEFAULT 0
            )"""
        )

    async def get_setting(self, guild_id, feature):
        return await self.one(f"SELECT {feature} FROM settings WHERE guild_id=?", guild_id)

    async def toggle_setting(self, guild_id, feature):
        await self.exec("INSERT OR IGNORE INTO settings (guild_id) VALUES (?)", guild_id)
        await self.exec(
            f"UPDATE settings SET {feature} = NOT {feature} WHERE guild_id = ?", guild_id
        )
db = DashboardDB()
feature_db = FeatureDB()
hard pivot
#

sind das beides .py?

vast cradle
#

es geht um die dashboard videos

vast cradle
#

aber gesplittet wegen discord

#

die datei die den import hat ist auch .py

hard pivot
#

zeig mal wie du die importierst

#

Und ist die in einen unterordner oder im gleichen

vast cradle
#

im selben ordner

#
from datetime import datetime, timedelta
import aiohttp
from fastapi import HTTPException
from .database import db
API_ENDPOINT = "https://discord.com/api"


class DiscordAuth:
    client_id: str
    client_secret: str
    redirect_uri: str
    session: aiohttp.ClientSession | None

    def __init__(self, client_id, client_secret, redirect_uri):
        self.client_id = client_id
        self.client_secret = client_secret
        self.redirect_uri = redirect_uri

        self.auth = aiohttp.BasicAuth(str(client_id), client_secret)

    async def setup(self):
        self.session = aiohttp.ClientSession()

    async def close(self):
        await self.session.close()

    async def get_user(self, token):
        headers = {"Authorization": f"Bearer {token}"}
        async with self.session.get(API_ENDPOINT + "/users/@me", headers=headers) as response:
            return await response.json()

    async def get_guilds(self, token):
        headers = {"Authorization": f"Bearer {token}"}
        async with self.session.get(
            API_ENDPOINT + "/users/@me/guilds", headers=headers
        ) as response:
            if response.status == 429:
                raise HTTPException(status_code=429)
            return await response.json()

    async def get_token_response(self, data):
        response = await self.session.post(API_ENDPOINT + "/oauth2/token", data=data)
        json_response = await response.json()

        access_token = json_response.get("access_token")
        refresh_token = json_response.get("refresh_token")
        expires_in = json_response.get("expires_in")

        if not access_token or not refresh_token:
            return None

        return access_token, refresh_token, expires_in

#
    async def revoke_token(self, token):
        async with self.session.post(
            API_ENDPOINT + "/oauth2/token/revoke",
            headers={"Content-Type": "application/x-www-form-urlencoded"},
            data={"token": token},
            auth=self.auth,
        ) as response:
            response.raise_for_status()

    async def reload(self, session_id, refresh_token):
        data = {
            "client_id": self.client_id,
            "client_secret": self.client_secret,
            "grant_type": "refresh_token",
            "refresh_token": refresh_token,
        }
        response = await self.get_token_response(data)
        if not response:
            return False

        new_token, new_refresh_token, expires_in = response
        expire_dt = datetime.now() + timedelta(seconds=expires_in)

        await db.update_session(session_id, new_token, new_refresh_token, expire_dt)
        return True
hard pivot
#

also ohne noch was davor?

vast cradle
#

ja

#

das hat timo so gemacht

hard pivot
#

Benne die einfach um

#

Dann sollte es gehen

vast cradle
#

häh

hard pivot
#

und dann nur from filename import db

hard pivot
vast cradle
#

ich kotz gleich

#

der übernimmt das neue net

#

der versucht weiterhin von database zu importieren#

#

wie blöds ist pycord manchmal

#

ich habe jezt

#

from db_loader import db

error sagt aber line 4 sei immer noch database
from .api import DiscordAuth
File "C:\Users\leonf\Python Projects\Planetbot_Dashboard\backend\api.py", line 4, in <module>
from database import db
ModuleNotFoundError: No module named 'database'

#

häääh

vast cradle
hard pivot
frosty nexus
hard pivot
#

Hallo ich habe mal eine frage wie kann ich nachsehen wer welchen user eingeladen hat wenn ein user neu joint?
Also wer den user eingeladen hat

vast cradle
#

ich versuchs mal

vast cradle
vast cradle
#
Traceback (most recent call last):
  File "c:\Users\leonf\Python Projects\Planetbot_Dashboard\main.py", line 12, in <module>    
    from backend import DiscordAuth, db, feature_db
  File "c:\Users\leonf\Python Projects\Planetbot_Dashboard\backend\__init__.py", line 1, in <module>
    from .api import DiscordAuth
  File "c:\Users\leonf\Python Projects\Planetbot_Dashboard\backend\api.py", line 4, in <module>
    from db_loader import db
ModuleNotFoundError: No module named 'db_loader'
PS C:\Users\leonf\Python Projects\Planetbot_Dashboard> ```
graceful fiber
frosty nexus
#

Will keiner Kekse?

deep coyote
#
    @commands.Cog.listener()
    async def on_member_join(self, member):
        embed = discord.Embed(
            title=f"Welcome to {server.name}",
            description=f"Welcome {member.mention}",
            color=discord.Color.magenta()
        )
        welcome_channel = discord.utils.get(member.guild.text_channels, name="welcome")
        await welcome_channel.send(embed=embed)
#

discord.errors.ExtensionFailed: Extension 'cogs.base' raised an error: TabError: inconsistent use of tabs and spaces in indentation (base.py, line 46)

#

was ist daran falsch engedrückt

limpid wolf
#

Mach mal in Zeile 46 die Einrückung ganz weg und dann neu

tawdry leaf
# deep coyote was ist daran falsch engedrückt

also in dem geschickten code ist title nicht direkt unter embed wie z. B. so:

    @commands.Cog.listener()
    async def on_member_join(self, member):
        embed = discord.Embed(
        title=f"Welcome to {member.guild.name}",
        description=f"Welcome {member.mention}",
        color=discord.Color.magenta()
        )
        welcome_channel = discord.utils.get(member.guild.text_channels, name="welcome")
        await welcome_channel.send(embed=embed)
#

zu dem was hat es mit server.name auf sich des wird nirgends definiert

limpid wolf
tawdry leaf
frosty nexus
limpid wolf
#

Wasn dein Problem?

tawdry leaf
#

das ist doch bestechen

limpid wolf
#

Ne

tawdry leaf
#

ich nehme erst kekse danach hilfe xD

limpid wolf
#

Das ist Business

frosty nexus
frosty nexus
tawdry leaf
#

ich nenne es nehmen und nehmen

#

eh meine geben und nehmen ^^

#
  File "/workspaces/Anfang/main.py", line 106, in guilds
    if guild["id"] in bot_guilds.response["data"]:
TypeError: 'NoneType' object is not subscriptable```
#

das dein error 🙂

limpid wolf
#

Printe dir das mal

frosty nexus
limpid wolf
#

Ja und warum machst du dann:

If [...] in bot_guilds[...]?

limpid wolf
frosty nexus
limpid wolf
frosty nexus
#

@limpid wolf

limpid wolf
tawdry leaf
vast cradle
tawdry leaf
#

denk mal drüber nach

fierce dove
limpid wolf
#

Ne

fierce dove
#

Mano

limpid wolf
#

Zeig mal deine Ordnerstruktur und den Fehler

#

@vast cradle

vast cradle
#

links siehst du die ordner

limpid wolf
vast cradle
#
PS C:\Users\leonf\Python Projects\Planetbot_Dashboard> python .\main.py
Traceback (most recent call last):
  File "C:\Users\leonf\Python Projects\Planetbot_Dashboard\main.py", line 12, in <module>
    from backend import DiscordAuth, db, feature_db
  File "C:\Users\leonf\Python Projects\Planetbot_Dashboard\backend\__init__.py", line 1, in <module>
    from .api import DiscordAuth
  File "C:\Users\leonf\Python Projects\Planetbot_Dashboard\backend\api.py", line 4, in <module>     
    from db_loader import db
ModuleNotFoundError: No module named 'db_loader'
PS C:\Users\leonf\Python Projects\Planetbot_Dashboard> 
vast cradle
limpid wolf
#

Probier mal .db_loader

vast cradle
#

geht auch net

#

hieß ja voher .database

limpid wolf
#

Zeig mal deine init

#

@vast cradle

vast cradle
#

warte

#

musst net direkt pingen

#
from .api import DiscordAuth
from .db_loader import db, feature_db
frosty nexus
frosty nexus
vast cradle
#

hab ziemlich alles nach gemachgt

tawdry leaf
#

ja beim nachmachen passieren oftmals Fehler 🙂

tawdry leaf
limpid wolf
odd kiteBOT
#

Hier findest du das Dashboard Template 😩

vast cradle
tawdry leaf
#

so so

#

auch des richtige alles installiert xD

vast cradle
#

hab mir die requirements.txt

#

kopiert und mit pip installiert

tawdry leaf
#

ja musst die anderen davor erstmal deinstalieren

vast cradle
#

was?

#

hab voher nichts installiert

#

deinstalliere mal alles global installierte

#

das nur noch die sachen im env vorhanden sind

#

das dauert kurz etwas

#

hoffe das das kein fehler ist

tawdry leaf
#

du widersprichst dir ja selber..
wieso sollte es ein Fehler sein du hast doch alles in der requirements datei

vast cradle
#

die nicht in einer entwicklungs umgenbung war

#

ich weiß auch nicht mehr wozu was war und obs wichtig war

tawdry leaf
#

aber du benutzt des doch nur für des dashboard?

vast cradle
tawdry leaf
#

benutze doch dazu virual enviroments

vast cradle
#

alles fürs dashboard läuft in einem seperaten teil das extra instaliert

tawdry leaf
#

ja dann sollte doch nix passieren wenn du das extra dafür machst?

vast cradle
#

ich schmeiß halt das globale zeug runter

#

echt viel

#

dasc was den error ausgelöst hat liegt daran das powershell nicht im admin modus war

#

pip freeze ist leer

#

perfekt es kann also nichts im weg sein

#

das einzige wo ich sorgen habe ist poetry

#

ich weiß nicht ob ein paar globale sachen für poetry waren

#

das meine entwicklungumgebung kaputt ist dewsegen

#
  WARNING: The script dotenv.exe is installed in 'C:\Users\Name\AppData\Roaming\Python\Python312\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.```
#

was hat das zu bedeuten?

#

istr bei allen .exe dateien

#

in dem ordner

#

ok er installiert es gar nicht in der env

#

mist

frosty nexus
#


import aiohttp

API_ENDPOINT = "https://discord.com/api"


class DiscordAuth:
    client_id: str
    client_secret: str
    redirect_uri: str
    session: aiohttp.ClientSession | None

    def __init__(self, client_id, client_secret, redirect_uri):
        self.client_id = client_id
        self.client_secret = client_secret
        self.redirect_uri = redirect_uri

    async def setup(self):
        self.session = aiohttp.ClientSession()

    async def get_user(self, token):
        headers = {"Authorization": f"Bearer {token}"}
        async with self.session.get(API_ENDPOINT + "/users/@me", headers=headers) as response:
            return await response.json()

    async def get_guilds(self, token):
        headers = {"Authorization": f"Bearer {token}"}
        async with self.session.get(API_ENDPOINT + "/users/@me/guilds", headers=headers) as response:
            return await response.json()

    async def get_token_response(self, data):
        response = await self.session.post(API_ENDPOINT + "/oauth2/token", data=data)
        json_response = await response.json()

        access_token = json_response.get("access_token")
        refresh_token = json_response.get("refresh_token")
        expires_in = json_response.get("expires_in")

        if not access_token or not refresh_token:
            return None

        return access_token, refresh_token, expires_in```



Kann mir jemand erklären warum der mir den error rein haut
fierce dove
#
    @slash_command()
    async def set_radio_channel(self, ctx, vc_channel: discord.VoiceChannel):
        if await db.check_radio_channel(ctx.guild.id):
            embed = discord.Embed(
                title="❌ Fehler",
                description="Das Radio System wurde bereits gesetzt",
                color=discord.Color.red()
            )
            await ctx.respond(embed=embed, ephemeral=True)
        await db.save_channel(ctx.guild.id, vc_channel.id)
        await self.connect_and_play(vc_channel)
#
    async def check_radio_channel(guild_id):
        return await self.one('SELECT guild_id FROM radio_channels WHERE guild_id = ?', (guild_id,))
#

TypeError: RadioDB.check_radio_channel() takes 1 positional argument but 2 were given

tawdry leaf
#

hahahahahaha

#

was wird das nur

fierce dove
#

Ups

#

War kein self drinn

#

Lost

tawdry leaf
#

stinker

graceful fiber
hard pivot
#

Hallo weiß wer wie ich nachsehen kann wer einen user eingeladen hat, brauche das für ein Invite Leaderboard

frosty nexus
graceful fiber
frosty nexus
tawdry leaf
#

perfekt einf denken

frosty nexus
hard pivot
#
@commands.Cog.listener()
    async def on_member_join(self, member:discord.Member):
        
        if member.bot:
            return

        invites_before = await member.guild.invites()
        invite_counts_before = {invite.code: invite.uses for invite in invites_before}

        await asyncio.sleep(10)

        invites_after = await member.guild.invites()
        invite_counts_after = {invite.code: invite.uses for invite in invites_after}

        print("Einladungen vor dem Beitritt:", invite_counts_before)
        print("Einladungen nach dem Beitritt:", invite_counts_after)

        for invite in invites_after:
            before_uses = invite_counts_before.get(invite.code, 0)
            after_uses = invite.uses
            print(f"Überprüfung: Invite Code: {invite.code}, Before Uses: {before_uses}, After Uses: {after_uses}")
            if after_uses > before_uses:
                DatabaseUpdates.manage_leaderboard_invite(guild_id = member.guild.id, user_id = invite.inviter.id, settings = "tracking", interval = "countInvite")
                print(f"Einladung von {invite.inviter} verwendet, neue Anzahl: {self.invite_counts[invite.inviter.id]}")
                break

        await self.update_invites(guild=member.guild)

Hier besteht das problem das before und after bereits denn neuen user eingerechnet haben

limpid wolf
hard pivot
#

Daher frag ich ja wie ich es anders machen kann

#

Da mit nichts anderes einfällt

limpid wolf
#

In einer Datenbank speichern wie es vorher war und dann abfragen und im Anschluss updaten für den nächsten User?

#

Sonst fällt mir auch nichts ein

hard pivot
#

aber dann muss ich doch alle einladungen speicher oder?

#

Das ist ja dann eine risige menge

limpid wolf
#

Kannst du nicht für jeden Invite Code die invites speichern ?

hard pivot
#

schon aber der bot ist auf mehreren servern mit mehreren tausend nutzern

#

Das werden dann schon sehr schnell viele invites

limpid wolf
#

Aber jeder invite Code ist doch unique bzw. nicht auf verschiedenen Servern

#

Solltest die nur wieder aus der dB entfernen wenn sie gelöscht werden oder so

#

Also einfach die invites in einer dB speichern so das du sie abrufen kannst wenn benötigt

frosty nexus
#

@limpid wolf du hast doch immer Interesse an kekse:)

limpid wolf
#

Was los

#

Du musst glaube noch bei der init Self.session = session machen

#

@frosty nexus

frosty nexus
limpid wolf
#

Probier einfach was ich dir gesagt hab

#

Bin am Handy da ist sowas immer schwer

#

Vorallem weil der Code weird formatiert ist durch die Display Größe

#

Ah du machst das schon bei setup

#

Dann wurde deine setup Methode maybe noch nicht aufgerufen?

#

@frosty nexus Probier das mal, wenn noch was ist einfach Pingen bin grade mal weg

frosty nexus
#

Habe alles probiert, bringt leider nichts.

#

Habe es gefixxt.
Dankeschön

limpid wolf
frosty nexus
limpid wolf
#

Stark Xd

frosty nexus
ruby sparrow
#
class MemoryView(discord.ui.View):
    def __init__(self, game, user1, user2):
        super().__init__(timeout=None)
        self.game = game
        self.user1 = user1
        self.user2 = user2
        game.scores = {user1: 0, user2: 0}
        game.current_player = user1
        for row in range(game.grid_size):
            for col in range(game.grid_size):
                self.add_item(MemoryButton(row, col, game.hidden_char))

    def generate_embed(self):
        description = "Finde 2 Buttons mit dem gleichen Emoji.\n\n"
        description += "Score:\n"
        for player, score in self.game.scores.items():
            description += f"{player.mention}: {score}\n"
        description += f"\nAm Zug: {self.game.current_player.mention}"

        embed = discord.Embed(
            title='**Emoji-Memory**',
            description=description,
            color=discord.Color.random()
        )
        return embed

    async def update_message(self, interaction: discord.Interaction):
        embed = self.generate_embed()
        await interaction.message.edit(embed=embed, view=self)

    async def on_timeout(self):
        for item in self.children:
            item.disabled = True
        await self.message.edit(view=self)

    async def show_game_over(self, interaction: discord.Interaction):
        winner, winner_score = max(self.game.scores.items(), key=lambda item: item[1])
        loser, loser_score = min(self.game.scores.items(), key=lambda item: item[1])

        end_embed = discord.Embed(
            title='**Spiel Beendet!**',
            description=f"**Endstand:**\n"
                        f"{winner.mention}: {winner_score} - **Gewinner! 👑**\n"
                        f"{loser.mention}: {loser_score}",
            color=discord.Color.gold()
        )
        await interaction.response.edit_message(embed=end_embed)``` warum edit er die msg nicht
fierce dove
#

Warum wird keine Radio Option angezeigt in ezcord Help Command

#
class RadioInfoCog(ezcord.Cog, name="Radio"):
    def __init__(self, bot):
        self.bot = bot
frosty nexus
fierce dove
fierce dove
#

Habs. Geschafft

solid ingot
#

@frosty nexus pass auf, dass du das "T" bei INTEGER nicht vergisst, der automod hat dich deswegen getimeoutet :D

lucid furnace
#

Oha Timo noch wach

lucid furnace
#

wegen Ne...

solid ingot
#

wir haben in den mod log pins schon eine kleine sammlung von leuten die wegen rechtschreibfehlern aus versehen das n wort benutzt haben xD

#

tdius ist auch dabei

lucid furnace
#

ja haha

frosty nexus
#

das ist echt belastend

solid ingot
#

DAS T WAR AN DER FALSCHEN STELLE XD

lucid furnace
#

War der schon wieder timeout

solid ingot
lucid furnace
#

🤣

solid ingot
#

so ich geh jetzt pennen, diesmal musst dus richtig schreiben

frosty nexus
#

es ist echt sad für mich hahah

frosty nexus
#

so jz nochmal

#
import uuid
from datetime import datetime, timedelta

from aiosqlite import Connection
import ezcord


class DashboardDB(ezcord.DBHandler):
    def __init__(self):
        super().__init__("dashboard.db")

    async def setup(self):
        await self.exec(
            """CREATE TABLE IF NOT EXISTS sessions (
            session_id TEXT UNIQUE,
            token TEXT,
            refresh_token TEXT,
            token_expires_at TIMESTAMP,
            user_id INTEGER PRIMARY KEY
            )"""
        )

    async def add_session(self, token, refresh_token, expires_in, user_id):
        session_id = str(uuid.uuid4())
        expires = datetime.now() + timedelta(seconds=expires_in)

        await self.exec(
            """INSERT OR REPLACE INTO sessions (session_id, token, refresh_token, token_expires_at, user_id)
            VALUES (?, ?, ?, ?, ?)""",
            (session_id, token, refresh_token, expires, user_id),
        )
        return session_id

    async def get_session(self, session_id):
        return await self.one(
            "SELECT token, refresh_token, token_expires_at FROM sessions WHERE session_id = ?",
            session_id,
            detect_types=1
        )
    
    async def get_user_id(self, session_id):
        return await self.one(
            "SELECT  user_id FROM session WHERE session_id=?", session_id)


    async def update_session(self, session_id, token, refresh_token, token_expires_at):
        await exec(
            "UPDATE sessions SET token = ?, refresh_token = ?, token_expires_at = ? WHERE session_id = ?",
            (token, refresh_token, session_id, token_expires_at),
            detect_types=1
        )

    async def delete_session(self, session_id):
        await self.exec("DELETE FROM sessions WHERE session_id = ?", session_id)


class FeatrueDB(ezcord.DBHandler):
    def __init__(self):
        super(). __init__("dashboard.db")

    async def setup(self):
        await self.exec(
            """CREATE TABLE IF NOT EXISTS settings (
            guild_id INTEGER PRIMERY KEY,
            example_featrue INTEGER DEFAULT 0 
            )"""
        )

    async def get_settings(self, guil_id, featrue):
        return await self.one(f"SELECT {featrue} FROM settings WHERE guild_ids=?", guil_id)
    
    async def toggle_settings(self, guild_id, featrue):
        await self.exec(
            "INSERT OR IGNORE INFO settings (guild_id) VALUES (?)", guild_id
        )
        await self.exec(
            f"UPDATE settings SET {featrue} = NOT {featrue} WHERE guild_id=?", guild_id
        )
featrue_db = FeatrueDB()
db = DashboardDB()

Kann mir jemand sagen warum er die db nicht erstellt

solid ingot
#

die setup methode wird normalerweise in der api.py aufgerufen

fierce dove
frosty nexus
frosty nexus
fierce dove
#

Oki

frosty nexus
# solid ingot die setup methode wird normalerweise in der `api.py` aufgerufen

das ist meine api.py


import aiohttp
from datetime import datetime, timedelta
from .database import DashboardDB

API_ENDPOINT = "https://discord.com/api"


class DiscordAuth:
    client_id: str
    client_secret: str
    redirect_uri: str
    session: aiohttp.ClientSession | None

    def __init__(self, client_id, client_secret, redirect_uri):
        self.client_id = client_id
        self.client_secret = client_secret
        self.redirect_uri = redirect_uri

        self.auth = aiohttp.BasicAuth(str(client_id), client_secret)

    async def setup(self):
        self.session = aiohttp.ClientSession()

    async def get_user(self, token):
        headers = {"Authorization": f"Bearer {token}"}
        async with self.session.get(API_ENDPOINT + "/users/@me", headers=headers) as response:
            return await response.json()

    async def get_guilds(self, token):
        headers = {"Authorization": f"Bearer {token}"}
        async with self.session.get(API_ENDPOINT + "/users/@me/guilds", headers=headers) as response:
            return await response.json()

    async def get_token_response(self, data):
        response = await self.session.post(API_ENDPOINT + "/oauth2/token", data=data)
        json_response = await response.json()

        access_token = json_response.get("access_token")
        refresh_token = json_response.get("refresh_token")
        expires_in = json_response.get("expires_in")

        if not access_token or not refresh_token:
            return None

        return access_token, refresh_token, expires_in

    async def revoke_token(self, token):
        async with self.session.post(
                API_ENDPOINT + "/oauth2/token/revoke",
                headers={"Content-Type": "application/x-www-form-urlencoded"},
                data={"token": token},
                auth=self.auth
        ) as response:
            response.raise_for_status()


    async def reload(self, session_id, refresh_token):
        data={
            "client_id": self.client_id,
            "client_secret": self.client_secret,
            "grant_type": "refresh_token",
            "refresh_token": refresh_token

        }
        response =  await self.get_token_response(data)
        if not response: 
            return False
        
        new_token, new_refresh_token, expires_in = response
        expires_in = datetime.now() + timedelta(seconds=expires_in)
    
        await DashboardDB.update_session(session_id, new_token, new_refresh_token, expires_in)
        return True
        ```
solid ingot
#

da wird im tutorial das datenbank setup ausgeführt

frosty nexus
solid ingot
#

du musst on_startup noch als lifespan festlegen

app = FastAPI(lifespan=on_startup)
frosty nexus
# solid ingot du musst `on_startup` noch als lifespan festlegen ```py app = FastAPI(lifespan=o...

pefekt,

jz kommt aber wieder

ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "/home/codespace/.python/current/lib/python3.10/site-packages/uvicorn/protocols/http/httptools_impl.py", line 399, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
  File "/home/codespace/.python/current/lib/python3.10/site-packages/uvicorn/middleware/proxy_headers.py", line 70, in __call__
    return await self.app(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/fastapi/applications.py", line 1054, in __call__
    await super().__call__(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/applications.py", line 123, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/middleware/errors.py", line 186, in __call__
    raise exc
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/middleware/errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/middleware/exceptions.py", line 65, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/routing.py", line 756, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/routing.py", line 776, in app
    await route.handle(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/routing.py", line 297, in handle
    await self.app(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/routing.py", line 77, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/starlette/routing.py", line 72, in app
    response = await func(request)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/fastapi/routing.py", line 278, in app
    raw_response = await run_endpoint_function(
  File "/home/codespace/.python/current/lib/python3.10/site-packages/fastapi/routing.py", line 191, in run_endpoint_function
    return await dependant.call(**values)
  File "/workspaces/Anfang/main.py", line 72, in callback
    result = await api.get_token_response(data)
  File "/workspaces/Anfang/backend/api.py", line 35, in get_token_response
    response = await self.session.post(API_ENDPOINT + "/oauth2/token", data=data)
AttributeError: 'DiscordAuth' object has no attribute 'session'
graceful fiber
#

Welche Nachricht?

frosty nexus
#
Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7f54657309a0>
WARNING:  WatchFiles detected changes in 'main.py'. Reloading...
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/codespace/.python/current/lib/python3.10/multiprocessing/spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
  File "/home/codespace/.python/current/lib/python3.10/multiprocessing/spawn.py", line 125, in _main
    prepare(preparation_data)
  File "/home/codespace/.python/current/lib/python3.10/multiprocessing/spawn.py", line 236, in prepare
    _fixup_main_from_path(data['init_main_from_path'])
  File "/home/codespace/.python/current/lib/python3.10/multiprocessing/spawn.py", line 287, in _fixup_main_from_path
    main_content = runpy.run_path(main_path,
  File "/home/codespace/.python/current/lib/python3.10/runpy.py", line 289, in run_path
    return _run_module_code(code, init_globals, run_name,
  File "/home/codespace/.python/current/lib/python3.10/runpy.py", line 96, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "/home/codespace/.python/current/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/workspaces/Anfang/main.py", line 13, in <module>
    from backend import DiscordAuth, db, feature_db
ImportError: cannot import name 'db' from 'backend' (/workspaces/Anfang/backend/__init__.py)

kan mir jemand sagen warum er db nicht findet ????

database

db = DashboardDB()
feature_db = FeatureDB()```

init
```from .api import DiscordAuth
from .database import db, feature_db```
main
```from .api import DiscordAuth
from .database import db, feature_db```
rigid sluice
frosty nexus
#

@rigid sluice

frosty nexus
#

Wer hilft bekommt kekse

#

Evt. Auch mehr als 50 🙂

tawdry leaf
#

Diese Struktur angrycat

frosty nexus
rigid sluice
frosty nexus
fierce dove
#

Ok

frosty nexus
frosty nexus
twilit anvil
#

Hi, ich möchte bei einer bestimmten Uhrzeit alle Daten aus einer Postgres DB löschen. Ich habe folgende Funktion, aber der Error sagt, dass ein Fehler bei * auftritt:

async def reset_limit(self):
        await self.exec("DELETE * FROM users")```
thick haven
#

discord.errors.Forbidden: 403 Forbidden (error code: 50001): Missing Access

Weiss jemand von euch wie ich das abbfangen kann? in eminem error handler

    async def on_application_command_error(self, ctx, error):
        embed = discord.Embed(color=int(get_config("colors.json", "danger"), 16))
        embed.title = "Error"
        if isinstance(error, commands.MissingPermissions):
            embed.description = f"Error: {error}" 
            return await ctx.respond(embed=embed, ephemeral=True)```
rigid sluice
thick haven
#

danke

#

Irgentwie wird der fehler nicht von meinem Error handler gehandlet
oder eght das garnicht darüber?
Error:

Traceback (most recent call last):
  File "C:\Users\jurek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\discord\ui\view.py", line 426, in _scheduled_task
    await item.callback(interaction)
  File "c:\Users\jurek\Documents\Development\Python\DC Bots\Xenority\Xenority-Main-Pycord-V2-PY\cogs\dev\embed_builder_v3.py", line 1295, in current_channel_button
    await channel.send(embeds=create_embeds)
  File "C:\Users\jurek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\discord\abc.py", line 1666, in send
    data = await state.http.send_message(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jurek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\discord\http.py", line 368, in request
    raise Forbidden(response, data)
discord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions```

Code 1 (Error handler):
 ```   @commands.Cog.listener()
    async def on_application_command_error(self, ctx, error):
        embed = discord.Embed(color=int(get_config("colors.json", "danger"), 16))
        embed.title = "Error"
        if isinstance(error, commands.BotMissingPermissions):
            print("Error")
            embed.description = f"Error: {error}" 
            return await ctx.respond(embed=embed, ephemeral=True)```

Code 2 (dort wird der fehler ausgelöst):
 ```       channel = await interaction.client.fetch_channel(interaction.channel.id)
        
        await channel.send(embeds=create_embeds)```
rigid sluice
#

benutzt du interaction bei einem slash command oder ist das ein Button etc?

thick haven
rigid sluice
#

das event on_application_command_error ist natürlich auch für slash commands und nicht buttons

thick haven
#

gibts sowas auch für button usw. oder muss ich try nutzen

rigid sluice
#

also direkt fetch zu benutzen ist auch erstmal falsch....
ich weiß nicht ob, on_error besser ist oder ebenhalt try

#

und warum versuchst du den channel zu fetches in dem eh die Nachricht geschickt wird?

thick haven
#

Naja weil er immer angzeigt hat von wo also wie wenn ich dir jetzt antworten würde

rigid sluice
#

solltest immer get_x benutzen und wenn es None ist dann erst fetchen

thick haven
ruby sparrow
thick haven
thick haven
#

Ja das geht ja auch XD

frosty nexus
#
class Bank(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
        self.conn = sqlite3.connect('Datenbanken/bank.db')
        self.c = self.conn.cursor()
        self.c.execute('''CREATE TABLE IF NOT EXISTS bank_accounts (
                            user_id INTEGER,
                            server_id INTEGER,
                            bank_balance INTEGER,
                            cash_balance INTEGER,
                            currency TEXT,
                            PRIMARY KEY (user_id, server_id)
                          )''')```

KAnn mir jemand sagen warum  nicht hinzugefügt wird (error gibt es nicht)
ich habe es new hinzugefügt
frosty nexus
ruby sparrow
#

denn lösch die db noch mal

frosty nexus
#

das problem ist der bot ist öffenlich und dann werden alle daten von den benutzern gelöscht, und das will ich zu 100% vermeiden

ruby sparrow
#

Wenn du neue Sachen in db machst denn muss removen

rigid sluice
#

ehm

ruby sparrow
#

so weit ich weiß

#

xd

frosty nexus
#

@solid ingot sorry das ich dich pinge aber du bist doch der profi.

limpid wolf
#

Du machst ja im Code CREATE TABLE IF NOT EXISTS das erstellt die Tabelle nur wenn sie noch nicht existiert

#

Oder so im Nachhinein hinzufügen

limpid wolf
ruby sparrow
frosty nexus
rigid sluice
rigid sluice
#

Ich frage, da ich ebenhalt sqlite3 bei deinem Code sehe ^^

mystic flower
#
        embed = discord.Embed(
            title="Closeing Ticket",
            description="Closing Ticket... ⏳",
            color=discord.Color.from_rgb(53, 172, 96)
        )

        await interaction.response.send_message(embed=embed)```
#

Kann mir da wer helfen bin grade Ratlos

rigid sluice
#

Was ist CacheSlotProperty?

mystic flower
#

Keine Ahnung

#

Deswegen Frage ich

#

...

rigid sluice
#

ist noch irgendwas anderes als PyCord installiert?

mystic flower
#

Ne

#

Nur Ezcord

#

Aber liegt nicht daran

solid ingot
#

zeig Mal die ganze Methode

outer ibex
#

Hey könnte mir jemand ein js code in py umschreiben?

urban glen
#

Hey sxlly,
Es ist eigentlich untersagt nach codes zu fragen, aber dm mich mal evtl helf ich dir da aus da ich solch eine langeweile hab 💀

indigo sleet
#

kurze frage:
wie kann ich es machen das eine Nachricht an den Nutzer gesendet der gebannt wurde

ruby sparrow
#

Meiste du über dm oder wie?

indigo sleet
ruby sparrow
#

Du musst erst dem User eine Nachricht schicken und denn ban

thick haven
ruby sparrow
fierce dove
hard pivot
#
class LeaderboardSystem(commands.Cog):

    def __init__(self, bot):
        self.bot = bot
        self.edit_leaderboard_invite.start()
        self.edit_leaderboard_message.start()
        self.invite_counts = {}
        self.check_expired_invite_liks.start()

   @tasks.loop(hours=1)
    async def edit_leaderboard_invite(self):
        
        for guild in self.bot.guilds:
            leaderboard_settings = DatabaseCheck.check_leaderboard_settings(guild_id=guild.id, system="invite")

            if leaderboard_settings and leaderboard_settings[1] == 1:

                message_ids = [
                    ("1_week_old", leaderboard_settings[2]),
                    ("1_month_old", leaderboard_settings[3]),
                    ("1_quarter_old", leaderboard_settings[4]),
                    ("whole", leaderboard_settings[5])
                ]
                
                if leaderboard_settings[6] is not None:

Hallo ich habe das Problem das die Task nicht geladen wird, ich habe heraus gefunden das es daran liegt das der bot zwar geladen wird aber nicht auf self.bot.guilds zugreifen kann da dann nur eine leere liste zurück gegeben wird

ruby sparrow
#

Bin net zuhause

limpid wolf
hard pivot
#

Weil die sollten alle geladen sein

#

Davor hat es funktionier nur als ich die dann in die Classe gepackt habe und alles schon eingebunden habe gieng es nicht mehr

limpid wolf
hard pivot
limpid wolf
#

Du hast intents 2x definiert lösch mal die oberen beiden

hard pivot
limpid wolf
hard pivot
limpid wolf
hard pivot
#
@commands.Cog.listener()
    async def on_ready(self):

        view = View(timeout=None)
        print(f'Logged in as: {bot.user.name}')
        print(f'With ID: {bot.user.id}')
        self.bot.loop.create_task(status_task())
        await bot.wait_until_ready() 

        await LeaderboardSystem.edit_leaderboard_invite.start()
        

Hab mal unwichtiges raus gestrichen

limpid wolf
#

wait until ready ist unnötig weil du machst das ganze ja schon im on Ready btw

#

Zeig mal den Error

limpid wolf
hard pivot
hard pivot
limpid wolf
#

Klar alles was zusammen gehört kommt in einen cog

limpid wolf
#

Wie du es importierst

#

Aber ich glaube es muss in den gleichen cog weil du sonst eine andere Instanz hast

#

Und das klappt dann nicht

hard pivot
rigid sluice
#

nimm bitte niemals einfach * als import

hard pivot
hard pivot
rigid sluice
#

am ende ist es dein Bot ^^
Ich hab angefangen Views in einem eigenen Ordner zu erstellen

hard pivot
limpid wolf
#

Mach das on Ready einfach in der gleichen Datei wie im tasks Video beschrieben dann klappt alles

rigid sluice
fierce dove
#

geht pelican Panel auch mit debian 12

ruby sparrow
#

Ja

solid ingot
fierce dove
#

Es geht ja nicht

#

sudo: add-apt-repository: command not found

#

@solid ingot

solid ingot
#

@fierce dove

fierce dove
#

Ja

tawdry leaf
fierce dove
lucid furnace
fierce dove
#

Juckt mich

raven lotus
#

Hab eine Frage: Weiß jemand zufällig, wie man Cogs reloadet, wenn der Bot online ist? Ich bekomme das irgendwie nicht hin...

frosty nexus
#
  File "/workspaces/codespaces-blank/main.py", line 6, in <module>
    from discord.ext.ipc import Client
  File "/home/codespace/.python/current/lib/python3.10/site-packages/discord/ext/ipc/__init__.py", line 13, in <module>
    if discord.version_info.major < 2:
AttributeError: module 'discord' has no attribute 'version_info'```

Kann mir jemand sagen warum der error auftritt code auf anfrage, bitte bescheid sagen welcher gebraucht wird.

ES GIBT 100 KEKSE!!!!!!
raven lotus
#

Weil ich will was am Code verändern und dann soll das neuladen

frosty nexus
raven lotus
#

Z.B. von

await ctx.respond("1")

zu

await ctx.respond("2")
raven lotus
#

Ich will, dass der On bleibt

frosty nexus
raven lotus
#

...

frosty nexus
raven lotus
#

Ich meinte halt, falls jemand Premium hat, dass der Command dann auf dem Server geladen wird

#

Ich weiß nicht sogar ob das was anderes jetzt ist Panda_KEKW

#

Ich glaube ja

raven lotus
#

Weil eig will ich nur, dass ich Commands auf Servern deaktivieren kann, während der Bot on bleibt

raven lotus
frosty nexus
raven lotus
#

Nein

raven lotus
frosty nexus
raven lotus
#

Ich meinte Premium für mein Bot z.B.

frosty nexus
#

ich kenne mich selber noch nicht damit aus

raven lotus
#

😅

#

Sry ich hab mich einfach komplett falsch ausgedrückt haha

frosty nexus
raven lotus
raven lotus
frosty nexus
raven lotus
#
#bei class(ezcord.Bot):
  self.reload_cogs.start()

    @commands.Cog.listener()
    async def on_ready(self):
        print(f'Logged in as {self.user.name}')
        await self.load_initial_cogs()

    @tasks.loop(minutes=1)
    async def reload_cogs(self):
        await self._reload_cogs()
        print("Cogs reloaded")

    async def _reload_cogs(self):
        for filename in os.listdir('./cogs'):
            if filename.endswith('.py'):
                try:
                    await self.unload_extension(f'cogs.{filename[:-3]}')
                    await self.load_extension(f'cogs.{filename[:-3]}')
                    print(f'Successfully reloaded {filename}')
                except Exception as e:
                    print(f'Failed to reload {filename}: {e}')

    async def load_initial_cogs(self):
        for filename in os.listdir('./cogs'):
            if filename.endswith('.py'):
                try:
                    await self.load_extension(f'cogs.{filename[:-3]}')
                    print(f'Successfully loaded {filename}')
                except Exception as e:
                    print(f'Failed to load {filename}: {e}')

Ich weiß nicht, ob das falsch ist haha

#

Hab ChatGPT gefragt, dann kam das raus haha

frosty nexus
#
  1. das # muss bei der class weg
  2. Frag besser nicht ChatGBT
raven lotus
#

Hat aber Safe nix mit Command zu tun lol

raven lotus
raven lotus
rigid sluice
limpid wolf
raven lotus
rigid sluice
#

PyCord benutzt kein await beim laden von Extensions

#

Und beim "reload" von Cogs musst du die ganzen Commands Syncen wenn diese Slash commands enthalten

limpid wolf
#

ah ja alle versionen passen?

limpid wolf
rigid sluice
frosty nexus
# limpid wolf mach mal pip freeze
aiocache==0.12.2
aiohappyeyeballs==2.3.4
aiohttp==3.10.0
aiosignal==1.3.1
aiosqlite==0.20.0
annotated-types==0.7.0
anyio==4.4.0
argon2-cffi==23.1.0
argon2-cffi-bindings==21.2.0
arrow==1.3.0
asttokens==2.4.1
async-lru==2.0.4
async-timeout==4.0.3
attrs==23.2.0
Babel==2.15.0
beautifulsoup4==4.12.3
better-ipc==2.0.3
bleach==6.1.0
certifi==2024.7.4
cffi==1.16.0
charset-normalizer==3.3.2
click==8.1.7
colorama==0.4.6
comm==0.2.2
contourpy==1.2.1
cycler==0.12.1
debugpy==1.8.2
decorator==5.1.1
defusedxml==0.7.1
dnspython==2.6.1
email_validator==2.2.0
exceptiongroup==1.2.1
executing==2.0.1
ezcord==0.6.5
fastapi==0.111.1
fastapi-cli==0.0.4
fastjsonschema==2.20.0
filelock==3.15.4
fonttools==4.53.1
fqdn==1.5.1
frozenlist==1.4.1
fsspec==2024.6.1
gitdb==4.0.11
GitPython==3.1.43
h11==0.14.0
httpcore==1.0.5
httptools==0.6.1
httpx==0.27.0
idna==3.7
ipykernel==6.29.5
ipython==8.26.0
isoduration==20.11.0
jedi==0.19.1
Jinja2==3.1.4
joblib==1.4.2
json5==0.9.25
jsonpointer==3.0.0
jsonschema==4.23.0
jsonschema-specifications==2023.12.1
jupyter-events==0.10.0
jupyter-lsp==2.2.5
jupyter-server-mathjax==0.2.6
jupyter_client==8.6.2
jupyter_core==5.7.2
jupyter_server==2.14.1
jupyter_server_terminals==0.5.3
jupyterlab==4.2.3
jupyterlab_git==0.50.1
jupyterlab_pygments==0.3.0
jupyterlab_server==2.27.2
kiwisolver==1.4.5
markdown-it-py==3.0.0
MarkupSafe==2.1.5
matplotlib==3.9.1
matplotlib-inline==0.1.7
mdurl==0.1.2
mistune==3.0.2
mpmath==1.3.0
multidict==6.0.5
nbclient==0.10.0
nbconvert==7.16.4
nbdime==4.0.1
nbformat==5.10.4
nest-asyncio==1.6.0
networkx==3.3
notebook_shim==0.2.4
numpy==2.0.0
overrides==7.7.0
packaging==24.1
pandas==2.2.2
pandocfilters==1.5.1
parso==0.8.4
pexpect==4.9.0
pillow==10.4.0
platformdirs==4.2.2
plotly==5.22.0
prometheus_client==0.20.0
prompt_toolkit==3.0.47
psutil==6.0.0
ptyprocess==0.7.0
pure-eval==0.2.2
pycparser==2.22
pydantic==2.8.2
pydantic_core==2.20.1
Pygments==2.18.0
pyparsing==3.1.2
python-dateutil==2.9.0.post0
python-dotenv==1.0.1
python-json-logger==2.0.7
python-multipart==0.0.9
pytz==2024.1
PyYAML==6.0.1
pyzmq==26.0.3
referencing==0.35.1
requests==2.32.3
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
rich==13.7.1
rpds-py==0.19.0
scikit-learn==1.5.1
scipy==1.14.0
seaborn==0.13.2
Send2Trash==1.8.3
shellingham==1.5.4
six==1.16.0
smmap==5.0.1
sniffio==1.3.1
soupsieve==2.5
stack-data==0.6.3
starlette==0.37.2
sympy==1.13.0
tenacity==8.5.0
terminado==0.18.1
threadpoolctl==3.5.0
tinycss2==1.3.0
tomli==2.0.1
torch==2.3.1+cpu
tornado==6.4.1
traitlets==5.14.3
typer==0.12.3
types-python-dateutil==2.9.0.20240316
typing_extensions==4.12.2
tzdata==2024.1
uri-template==1.3.0
urllib3==2.0.7
uvicorn==0.30.4
uvloop==0.19.0
watchfiles==0.22.0
wcwidth==0.2.13
webcolors==24.6.0
webencodings==0.5.1
websocket-client==1.8.0
websockets==12.0
yarl==1.9.4```
frosty nexus
rigid sluice
#

Ich hab mich auch schon gewundert xd

#

wo Pycord ist

limpid wolf
frosty nexus
rigid sluice
#

oder die werden nicht gehen/laden bei discord

raven lotus
raven lotus
#

haha fr, pycord und py-cord einf unterschied, dass nervt sogar mich

rigid sluice
#

PyCord versucht es schon pycord und py-cord zu bekommen

frosty nexus
#

jz läuft es

#

danke

raven lotus
#

was meinst du genau?

limpid wolf
rigid sluice
# raven lotus check ich net

viele versuchen PyCord mit pycord zu installieren es heißt aber py-cord und ebenhalt nicht pycord bei pip
Und PyCord versucht beides bei pip zu bekommen damit sowas nicht mehr passiert

raven lotus
#

aaaah

#

check

#

Die wollen pycord claimen

rigid sluice
#

Jap

raven lotus
#

aaah

rigid sluice
#

Nur der ersteller von pycord stellt sich ein wenig "sturr" könnte man sagen

raven lotus
#

💀

#

Der Typ hat nix gefühlt drinnen in seinem pip

frosty nexus
indigo sleet
#

wie macht ich nochmal User commands?

fierce dove
#

Ups falsch

odd kiteBOT
#

Unser Discord Server
https://discord.gg/zfvbjTEzv6

Mein eigener Discord Bot (CookieBot)
https://cookie-bot.xyz

Installations-Befehl
► pip install git+https://github.com/Pycord-Development/pycord

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Inhalt 📚
Heute implementieren wir ein neues Discord Feature: User Apps! Damit können wir Bots nicht nur zu Discord Servern...

▶ Play video
indigo sleet
#

bruh

#

nur wegen den discord.commands xD

fierce dove
indigo sleet
#

hab ich aber schon

fierce dove
#

Welche

indigo sleet
#

ich ladt nochmal runter

fierce dove
#

Welche pycord Version

indigo sleet
#

2.6.0 glaube ich

fierce dove
#

Ja ist richtig

indigo sleet
fierce dove
#

Ja

indigo sleet
#

aber wieso bekomme ich diesen Error

ruby sparrow
#

Zeig mal aus besten deine pip freeze

#

@indigo sleet

indigo sleet
#

bisschene

fierce dove
#

Was

frosty nexus
#

@restive herald warum ist das denn so, was muss ich da eintragen ist aus deinem code

restive herald
#

imports?

frosty nexus
frosty nexus
vast cradle
#

was ist asyncpg?

#

beides gibt es nicht

#

und die libaus dem video ist weg

#

404

tawdry leaf
#

ALARM

#

befolge doch des Video

limpid wolf
vast cradle
#

@solid ingot meinst du es gibt noch nen ersatz dafür

solid ingot
#

wofür?

vast cradle
#

für die lib

solid ingot
#

welche lib?

vast cradle
#

die scheint es ja net mehr zu geben

solid ingot
#

welchen befehl gibst du denn ein?

vast cradle
#
Collecting https://github.com/NeloBlivion/pycord@app_emoji
  ERROR: HTTP error 404 while getting https://github.com/NeloBlivion/pycord@app_emoji
ERROR: Could not install requirement https://github.com/NeloBlivion/pycord@app_emoji because of HTTP error 404 Client Error: Not Found for url: https://github.com/NeloBlivion/pycord@app_emoji for URL https://github.com/NeloBlivion/pycord@app_emoji
(planetbot-py3.12) PS C:\Users\leonf\PycharmProjects\PlanetBot> pip install git+https://github.com/NeloBlivion/pycord@app_emoji
Collecting git+https://github.com/NeloBlivion/pycord@app_emoji
  Cloning https://github.com/NeloBlivion/pycord (to revision app_emoji) to c:\users\leonf\appdata\local\temp\pip-req-build-dgdd2r8e
  Running command git clone --filter=blob:none --quiet https://github.com/NeloBlivion/pycord 'C:\Users\leonf\AppData\Local\Temp\pip-req-build-dgdd2r8e'
  WARNING: Did not find branch or tag 'app_emoji', assuming revision or ref.
  Running command git checkout -q app_emoji
  error: pathspec 'app_emoji' did not match any file(s) known to git
  error: subprocess-exited-with-error

  × git checkout -q app_emoji did not run successfully.
  │ exit code: 1
  ╰─> See above for output.

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× git checkout -q app_emoji did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

solid ingot
#

ne nicht was das da kommt, sondern das was du eingibst

vast cradle
#

pip install git+https://github.com/NeloBlivion/pycord@app_emoji

#

wie du es im video gemacht hast

solid ingot
#

ah, da fehlt ein s hinten

vast cradle
#

wo?

#

emojis?

solid ingot
#

hinten

#

ja

vast cradle
#

das liegt auch an youtube

#

absolut bescheuert wenn man links reinsezt

solid ingot
#

ja, weiß leider auch nicht wie man das deaktivieren kann

vast cradle
#

uff bei mir hängt es

#

es tut sich gar nichts

#

blinkender strich

#

ah

#

lol downgrade von pycord

#

jezt geht es

#

gibt es dazu schohn docs?

solid ingot
#

also ich weiß nicht ob man diese yt links deaktivieren kann

vast cradle
#

ups

solid ingot
#

in der beschreibung

vast cradle
#

hab auf den falschen reagier

#

wollte eigendlich auf meinen text klicken

solid ingot
#

alles gut

vast cradle
#

oder ich bin blind das kann auch sein

solid ingot
#

das bei pip install meine ich

#

mit den 3 punkten am ende

vast cradle
#

ja ist nen github link

frosty nexus
#

kann mir jemand sagen wie ich im dashboard es so machen kann das der user gepinngt wird wenn er joint??????

ruby sparrow
frosty nexus
#

Kann ich das einfach da rein schreiben wo ich die Willkommens Nachricht festlegen kann?

ruby sparrow
#

{member.mention}

#

@frosty nexus

frosty nexus
#

Dankeschön

fierce dove
#

Mh sus

odd kiteBOT
frosty nexus
ruby sparrow
#

es müssen heißt so py f"**test timo is cool, {member.mention}!**"

frosty nexus
#

Gepingt*

fierce dove
#

@frosty nexus Code

frosty nexus
# fierce dove <@1111732978012389488> Code

import discord
from discord.ext import commands
import ezcord
from backend import welc

class Welc(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
    
    @commands.Cog.listener()
    async def on_member_join(self, member):
        welc_channel = await welc.get_welc(member.guild.id)
        welc_message = await welc.get_welc_message(member.guild.id)
        if welc_channel:
            channel = member.guild.get_channel(welc_channel)
            if welc_message:
                await channel.send(welc_message)
            else:
                await channel.send(f"Willkommen {member.mention}")
        else:
            await member.send(f"Willkommen auf {member.guild.name}! Bitte beachte die Regeln und viel Spaß!")


def setup(bot):
    bot.add_cog(Welc(bot))```
#


<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Dashboard</title>
    <link rel="stylesheet" type="text/css" href="{{ url_for('static', path='style.css') }}">
</head>
<body>
    <h1> CodingKeks Dashboard - Welcome </h1>
    Join-Message-Channel: {{welc_channel}}

    <form action="/server/{{guild_id}}/settings/welcome/channel" method="post" name="join_channel">
        <label for="join_channel">Join-Message-Channel</label>
        <select name="channel" id=""join_channel>
            {% for channel in channels %}
                {% set channel_parts = channel.split(' ') %}
                <option value="{{ channel_parts[0] }}">{{ channel_parts[1] }}</option>
            {% endfor %}
            </select>
            <input type="submit" value="Speichern">
    </form>
    <form action="/server/{{guild_id}}/settings/welcome/msg" method="post" name="join_message">
        <label for="join_message">Join_Message</label>
        <input type="text" name="msg" id="join_message" value="{{welc_message}}">
        <input type="submit" value="Speichern">
    </form>
    
</body>
</html>```
rigid sluice
frosty nexus
rigid sluice
#

Naja, du müsstest ebenhalt fetch_x und get_x benutzen

brisk dove
#

wenn ich den vorschlag cog von @hallow kite starten will bei meinem bot kommt "discord.errors.ExtensionFailed: Extension 'cogs.vorschlag' raised an error: NameError: name 'channel' is not defined" das

#

wie kann ich das beheben?

fierce dove
#

Welcher Code

brisk dove
#

wait

#

der code @fierce dove

fierce dove
#

Fehler

brisk dove
#

wo?

fierce dove
#

Der Fehler

brisk dove
#

welcher fehler?

fierce dove
#

Vom Code

brisk dove
#

wo ist denn da der fehler?

fierce dove
#

Egal

brisk dove
#

also json habe ich raus getan

#

aber wie kann ich es beheben @fierce dove ?

tawdry leaf
#

geil

tawdry leaf
fierce dove
#

Freese

#

Wenn ich nicht mal weiß wo der Fehler Auftritt kann ich auch nicht helfen

fierce dove
#

Dann mach dub

tawdry leaf
# brisk dove

interaction.guild.get_channel du kannst nur mit der channel id getten

odd kiteBOT
#

Mein Discord Server
https://discord.gg/zfvbjTEzv6

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://github.com/tibue99/tutorial-bot

Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/introduction/
Discord Server ► https://discord.gg/pycord

Discord Developer Portal ► https://discord...

▶ Play video
hallow kite
# brisk dove wait

wenn du json nicht nutzt musst du natürlich auch die channel IDs im Code eingeben oder anders importieren (toml, datenbank what ever)
steht aber auch extra so mit dabei 😄

vast cradle
#

Reicht es wenn ich für jeder intens eine n Screenshot beilege um für das Verifizieren meines Bots alle 3 freizuschalten

#

Oder sogar für 2 ein Screenshot

frosty nexus
odd kiteBOT
#

Unser Discord Server
https://discord.gg/zfvbjTEzv6

Mein eigener Discord Bot (CookieBot)
https://cookie-bot.xyz

Links aus diesem Video
Discord Dev Portal ► https://discord.dev/
GitBook ► https://www.gitbook.com/

❤️ Danke an tobfd für die Bereitstellung des Videomaterials zur Verifikation
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Inhalt 📚
Heute zeige ich, wi...

▶ Play video
lucid furnace
fierce dove
#

fresse

lucid furnace
#

geht doch 🙂

fierce dove
#

Ok

lucid furnace
#

Ok

frosty nexus
tawdry leaf
#

code

frosty nexus
limpid wolf
#

guild_count = await ipc.request("guild_count") in deiner main.py line 48 timed halt aus

#

also ist der ipc server vielleicht nicht erreichbar oder überhaupt nicht gestartet?

frosty nexus
# limpid wolf guild_count = await ipc.request("guild_count") in deiner main.py line 48 timed h...

das kommz wenn ich den bot starte

Traceback (most recent call last):
  File "/home/codespace/.python/current/lib/python3.10/site-packages/discord/client.py", line 409, in _run_event
    await coro(*args, **kwargs)
  File "/workspaces/codespaces-blank/bot.py", line 15, in on_ready
    await self.ipc.start()
  File "/home/codespace/.python/current/lib/python3.10/site-packages/discord/ext/ipc/server.py", line 219, in start
    await self.create_server("standard", self.standard_port, self.standart_handler)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/discord/ext/ipc/server.py", line 180, in create_server
    self.servers[name] = await serve(ws_handler, self.host, port)
  File "/home/codespace/.python/current/lib/python3.10/site-packages/websockets/legacy/server.py", line 1116, in __await_impl__
    server = await self._create_server()
  File "/home/codespace/.python/current/lib/python3.10/asyncio/base_events.py", line 1519, in create_server
    raise OSError(err.errno, 'error while attempting '
OSError: [Errno 98] error while attempting to bind on address ('127.0.0.1', 1025): address already in use```
limpid wolf
#

ist der port vielleicht schon benutzt?

frosty nexus
limpid wolf
#

nö da steht was von port 1025

#

maybe nutzt better-ipc den?

frosty nexus
limpid wolf
#

setz mal nen anderen port

frosty nexus
frosty nexus
limpid wolf
#

das ist uvicorn

#

also deine api

#

abner das ist nicht better-ipc

#

läuft der bot vielleicht grade schonmal auf deinem pc?

frosty nexus
#

ist aber jz weg, danke

limpid wolf
frosty nexus
ruby sparrow
#

Beim Memory-Spiel ändern sich nach einiger Zeit die Buttons, wodurch das Spiel nicht fortgesetzt werden kann und eine Fehlermeldung "Interaktion fehlgeschlagen" erscheint.

#

kann wer helfen da

fierce dove
#

@ruby sparrow habe ich schon nen Post

ruby sparrow
fierce dove
#

Was ist mit dem ganzen Code

lucid furnace
#

was macht das wenn man ein bot zum acc hinzufühgt?

frank gustBOT
#
Hey!

Hier erfährst du ein paar nützliche Infos über mich!

Letzter Neustart

<t:1722508858:R>

Developer

@twilit anvil

fierce dove
#

@lucid furnace das ihr

#

Dann kann Mann denn überall benutzen

#

Auch in dms

lucid furnace
#

Auf jedem server

fierce dove
#

Ja

frank gustBOT
indigo sleet
#

mein freund kann Py-cord nicht runterladen wie kann wires fixen?

ruby sparrow
#

@indigo sleet

indigo sleet
#

lol

#

bei Visul Studio code gehts bei ihn

ruby sparrow
#

Kannst du ihn mal auf dem Server einladen @indigo sleet und denn kann er dem error sagen

frosty nexus
#

weiß jemand wie man das so machen kann

tawdry leaf
rigid sluice
thick haven
graceful fiber
#

In Python bindet man im Endeffekt auch wieder nur ne HTML und CSS ein 😂

twilit anvil
graceful fiber
rigid sluice
thick haven
thick haven
frosty nexus
thick haven
ruby sparrow
#
class SaveTemplateModal(discord.ui.Modal):
    def __init__(self, embed: Embed):
        super().__init__(title="Save Template")
        self.embed = embed
        self.add_item(InputText(label="Template Name"))

    async def callback(self, interaction: Interaction):
        await interaction.response.defer()
        template_name = self.children[0].value
        await db.save_template(interaction.guild_id, interaction.user.id, template_name, self.embed)

        save_embed = discord.Embed(
            title="Wichtig",
            description=f"Hey, ich habe dein Template erfolgreich geladen. Pass auf, denn hier ist noch mal der Name: **{template_name}**. Ich habe dir per DM geschickt. Wenn du ihn wieder vergessen hast, schreib meinen Owner an: @ruby sparrow",
            color=discord.Color.blue()
        )
        await interaction.followup.send(embed=save_embed, ephemeral=True)

        # Send a DM to the user
        try:
            user = interaction.user
            await user.send(f"Template '{template_name}' has been successfully loaded.")
        except discord.Forbidden:
            print(f"Unable to send DM to {user.name}.")

        # Add CurrentTemplate select menu to the view
        view = interaction.message.components[0].children[0].view
        view.add_item(CurrentTemplate())
        await interaction.message.edit(view=view) ``` ```py
Ignoring exception in modal <cogs.Moderator.EmbedBuilder.SaveTemplateModal object at 0x0000022EFA45C190>:
Traceback (most recent call last):
  File "C:\Users\Ang_E\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ui\modal.py", line 341, in dispatch
    await value.callback(interaction)
  File "C:\Users\Ang_E\Desktop\test bot\cogs\Moderator\EmbedBuilder.py", line 345, in callback
    view = interaction.message.components[0].children[0].view
AttributeError: 'SelectMenu' object has no attribute 'view'```
rigid sluice
#

Modal haben kein View

fallow tiger
#

Hey ich gebe "pip install py-cord" aber es geht nicht was kann ich tun?

fierce dove
#

Fehler was kommt?

fallow tiger
rigid sluice
# fallow tiger

Hast du es bei der Installation auch zum path hinzufügen geklickt?

rigid sluice
#

Das Python zum path hinzugefügt wird

fallow tiger
#

wie geht das

ruby sparrow
#

da zeigt er das

fallow tiger
#

oki

fallow tiger
fallow tiger
viscid lake
#

kp was ich sonst noch probiere soll er geht einfach nicht weg

File "G:\bot\venv\Lib\site-packages\discord\webhook\async_.py", line 222, in request
    raise HTTPException(response, data)
discord.errors.HTTPException: 400 Bad Request (error code: 40060): Interaction has already been acknowledged.``` ( ```py
await ctx.respond(
                    "Es gab einen Fehler beim Setzen deines Geburtstags! Versuche es erneut, sollte es öfter passieren, wende dich an den Support!",
                    ephemeral=True
                )```

hier eben falls 
```py
embed = discord.Embed(
                title="![RedPresent](https://cdn.discordapp.com/emojis/1237403338987802675.webp?size=128 "RedPresent") | Geburtstag gespeichert!",
                description=f"Dein Geburtstag wurde erfolgreich gespeichert!\nNeuer Geburtstag: {geburtstag}",
                color=discord.Color.green()
            )
            if not ctx.response.is_done():
                await ctx.respond(embed=embed, ephemeral=True)
            else:
                await ctx.followup.send(embed=embed, ephemeral=True)``` bei ctx.respond
rigid sluice
#

3 KB Datei

viscid lake
outer ibex
#

Hey hat jemand lust mit mir ein public bot zuerstellen?

fierce dove
#

Ne

frosty nexus
#

<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Dashboard</title>
    <link rel="stylesheet" type="text/css" href="{{ url_for('static', path='style.css') }}">
</head>
<body>
    <h1> {{name}} </h1>
    <a href=/guilds class="link">
        <button class="button"> Zurück </button>
    </a>
    <a href=/logout class="link">
        <button class="button"> Logout </button>
    </a>

    <h2> ID: {{id}} </h2>
    <h2> Member: {{count}} </h2>

    <a href=/server/{{id}}/settings/example_feature class="link">
        <button class="button"> Beispiel-Feature </button>
    </a>
    <br><br> {{ feature }}
</body>
</html>




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>```

kann mir jemand sagen ob ich das  `<!DOCTYPE html>` auch zwei mal in einer html haben kann???
graceful fiber
graceful fiber
#

Mach doch einfach 2 HTML Dateien

frosty nexus
graceful fiber
#

Kann halt auf manchen Systemen und Servern zu Problemen führen

#

Möglich ja, Empfehlung nein 😅

thick haven
viscid lake
#

kp was ich sonst noch probiere soll er geht einfach nicht weg

File "G:\bot\venv\Lib\site-packages\discord\webhook\async_.py", line 222, in request
    raise HTTPException(response, data)
discord.errors.HTTPException: 400 Bad Request (error code: 40060): Interaction has already been acknowledged.``` ( ```py
await ctx.respond(
                    "Es gab einen Fehler beim Setzen deines Geburtstags! Versuche es erneut, sollte es öfter passieren, wende dich an den Support!",
                    ephemeral=True
                )```

hier eben falls 
```py
embed = discord.Embed(
                title="![RedPresent](https://cdn.discordapp.com/emojis/1237403338987802675.webp?size=128 "RedPresent") | Geburtstag gespeichert!",
                description=f"Dein Geburtstag wurde erfolgreich gespeichert!\nNeuer Geburtstag: {geburtstag}",
                color=discord.Color.green()
            )
            if not ctx.response.is_done():
                await ctx.respond(embed=embed, ephemeral=True)
            else:
                await ctx.followup.send(embed=embed, ephemeral=True)``` bei ctx.respond
ruby sparrow
viscid lake
odd kiteBOT
fierce dove
#

Mh

rigid sluice
#

;3

#

Ihr könnt auch einfach weiter ctx.respond benutzen

ruby sparrow
#

wie kann man ein background machen

fierce dove
#

body {
background-image: url("paper.gif");
}

rigid sluice
ruby sparrow
fierce dove
fierce dove