#Allgemeine Hilfe
1 messages · Page 84 of 1
Weder 1 noch 2
ctx und member zeigt es an danach geht nix mehr
Aber wie kann das sein
Mach mal das discord.Forbidden weg und versuche es nochmal
also nur except?
Ja nur mal zum testen
Also jetzt kam schonmal eine 2
Und er meinte er hätte keine berechtigung ihn zu entbannen
logisch ist ja auch er selbst
Ja da hast du den fehler
Aber was mir eben noch auffällt ich kann nur die Leute als Member auswählen die aufm Server sind
Ja das ist bei discord.Member so
Wie krieg ich das beheben? Weil irgendwie muss ich den banned user ja auswählen
Du könntest machen das man die ID eingibt
Hmm gibts da keine andere möglichkeot
Könnte das funken wenn ich das discord.forbidden entferne?
hab geht immernoch nicht
Hmm ne geht immer noch nicht
joa
ein bot kann webhooks senden halt als webhook was senden
musst du nur binden
Das ist ein error handling
Was bedeutet das?
bruder ich raste gleich aus warum ist das rot
Falsche einrückung
das ist im cog das muss so sein
Nope
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))
Falsche einrückung
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
Kein Problem
Wie bekomme ich die User Id?
Bzw wie frage ich sie im command ab
user: Option(discord.User.id, "Gebe die ID ein")
So?
Falsch
Inwiefern willst du es machen?
langsam bekomme ich gänsehaut von diesen errors
````discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: AttributeError: 'Ticket' object has no attribute 'respond'```
Für ein unban command siehe nhier
Wenn du eine Discord ID als Eingabe gibst, musst du STR als Option nehmen. Die ID kannst du dann mit z.b. get_user bekommen
und dann damit sachen ausführen
Funkt das auch wenn der user nicht mehr aufm server ist
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))
Komme mit dem unban command irgendwie seit stunden nicht weiter
ja.
du hast das self vergessen.
;-;

Danke danke
Wie kann ich buttons mit einem embed verbinden?
Also
user: Option(str, "Gebe die ID ein")
?
Inwiefern?
Ja.

Perfekt danke ich hoffe ich krieg das jetzt endlich ma hin
ich glaube bin zu dumm für diese buttons ich lasse den ticket system lieber 
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?
Timo hat das im Dashboard Tutorial gezeigt wie man einen bot zu seinem Account hinzufügt
okay danke dir
probier mal discord.utils.get_or_fetch_user
discord.Bot.get_or_fetch_user
discord.Client.get_or_fetch_user
discord.ext.commands.Bot.get_or_fetch_user
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
await ctx.bot.get_or_fetch_user
ah omg logisch
Warum ist das jetzt so
es ist eine id ich sehe da nirgends ein komma oder so
probier mal dein discord zu restarten villeicht hillft das
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
Musst es wahrscheinlich mit strings machen weil die Zahl zu groß ist
und eigentlich sollte es easy sein aber neeeeiiinnnnn
aber fetch_user will ja ein int
ah
fetch_user(int(id))
so vllt?
Probier aus aber warum machst du nicht direkt eine user Option?
Wie mach ich die
Weil der User ist ja nicht mehr aufm Server
Bin noch relativ neu was programmieren angeht so
könntest autokomplete nutzen wo du die gebannten user abfragst
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...
Das?
ja
Puh danke
Wenigstens mal ein anhaltspunkt weil auf yt gibts nicht so wirklich gescheides
Oder ich such falsch
Naja man kann aber trotzdem die User id angeben
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
hmm stimmt
👍
Könnt ihr mir da vllt helfen hab das video jetzt 3 mal angeschaut aber checke nicht wie ich das auf den entbann command anpassen soll
Die gebannten User ins autocomplete packen und dann hast du dann die ids direkt
Aber wahrscheinlich bisschen kompliziert für den Anfang
Hmm mit ner for schleife oder wie
Entfern mal Zeile 37 und mach das int(id) direkt darunter wo du grade nur id stehen hast
Glaub auch.. gibt es denn eine Möglichkeit die einfacher ist=
also auf fetch_user?
so?
ok
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
await ctx.guild.get_user maybe?
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...
Schau mal hier
Ne will ich nicht :) hab Urlaub
Mit was
pycord unban command
Warum willst du Mit autocomplete machen
mit cog
Mir wurde des vorgeschlagen idk bin noch anfänger
Dann hab ich es mit fetch_user versucht
Aber irgendwie will discord die id nicht als ganze zahl ansehen
@wraith garden https://youtu.be/H6-S_NUgjvU
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...
mit string und dann in int wandeln will er auch nicht
Haab ich schon 3x angeschaut check aber nicht wie ich das in den ccommanddeinbauen soll
sitze seit 7 Uhr dadran und krieg es nicht hin
Alles klkar
was geht nicht XD
Nichts. 👀
async def ping(ctx, user: discord.Member):
await ctx.channel.send(f"{user.mention}")```
Wieso wird der Command nicht vorgesclagen
- Discord neugestartet?
Falls in Cog: Cog geladen?
Btw.await ctx.channel.send(f"{user.mention}")wird einen Interaction fehlgeschlagen Fehler ausgeben, ich empfehle dir ctx.respond zu nutzen.
ich nehme einfach mal an, du hast den cmd in einer main.py, dann einfach discord neustarten
zeig mal dem code
async def ping(ctx, user: discord.Member):
await ctx.respond(f"{user.mention}")```
was geht nicht
Command wird nicht angezeigt
start mal dein discord neu
strg + r
warum zeig dem command auf alle server an
Wie meinst
dem command zeig an aber er bot ist nicht auf dem server
Vielleicht wegen User Install
ja aber hab das an es soll nur dem server anzeigen
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???
Ist es nicht FastAPI()?
eig schon
ups yes, das is es

danke 🤪
Gerne
kannst du mich helfen
hier
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?
nop geht nicht
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
Video weiter befolgen.
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)
@fierce dove zeig mal modal class @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)
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
Ich schaue
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)```
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
Kontext und Code waren sinnvoll, vllt auch nur der relevante Error 🙂
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?
Was meinst du
Wozu genau?
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
Achso ok ok danke
kann wer helfen
hast gemacht das man den nur auf der guild nutzen kann. nd guild install
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
99%
Dann schau die 1% nochmal an 🙂
Ist doof gesagt, aber es klappt halt sonst bei den anderen auch 
ist gefixxt, danke das du nicht direkt geholfen hast, hatte ein kleinen fehler
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?
mit /server
dein boost läuft nach 7 tagen ab
ja da steht dass der der neu installiert wird. aber das schon seit 10h
@solid ingot
Hast du mal die Server Id für uns? Die sollte in der url stehen wenn ich mich richtig erinnere
Oder kommst du gar nicht ins Panel?
Wenn nicht einmal Passwort zurücksetzen
i try
hast du schon /extend benutzt um die server wieder zu aktivieren?
supi
Joa entschuldige, aber am Handy kann ich schwer den Code abgleichen 🙂↔️
das war nicht böse gemeint 🙂
Aso 🙂

Dann kann's ja jetzt happy weitergehen:)
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}")```
[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?
wie meinst du?
hat dein bot die rechte?
ja
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
war eher in dem sinne das du es mir nicht vorsagst weil ich lernen soll.
help me
Nö
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
@buoyant warren https://youtu.be/tcMI4jWCu40
Unser Discord Server
► https://discord.gg/zfvbjTEzv6
Mein eigener Discord Bot (CookieBot)
► https://cookie-bot.xyz
Discord Developer portal
► https://discord.dev
Bots können endlich eigene Emojis haben PARTY!!
soweit bin ich, nur kann ich das von mir hinzugefügte nicht verwenden
@solid ingot kannst du mir sagen woran das liegt
PS: Sorry for ping
ist veraltet, hab die neue version in den github code gepackt
danke, schaue direkt rein
also da hat sich leider nichts geändert
gefixxt
help me @solid ingot

user select zeigt immer alle user an, das ist so von discord gemacht
wie kann ich das anders machen das nur gebannte User anzeigt?
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.
hast zu viele oder zu wenige user, müssen 1-25 sein
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
@ruby sparrow
@fierce dove
@tawdry leaf
Wie kann ich abfragen welche Option bei einem Dropdown Menu ausgewählt wurde.
Also?
if ...
@violet pendant https://youtu.be/MO-qFfHjcDE
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github ► https://github.com/tibue99/tutorial-bot
Discord Developer Portal ► https://discord.com/developers/applications
Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/introduction/
Discord Server ► https://discord.gg/pycord
In diesem Video stelle ich euch S...
kann mir jemand sagen warum dieser error beim dashboard autfritt?
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)```
bot.py gestartet?
er bot ist nicht gestart
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 ```
@ruby sparrow hast du nh idee warum
dieses problem besteht weiterhin
Das ist dort nd
Doch
Doch guck dir mal video an
Habe es jetzt drei mal geschaut ._.
Ich hasse select menus
da steht ja 1zu1 das selbe
nope 😮
Hmmmmm

danke
if selected_option == "test":
Test muss dann der value sein?
Von der option
Von der option
https://stackoverflow.com/questions/78798771/python-async-playwright
Vllt kann mir jemand weiter helfen
Ich schreibe ein Programm was von der ilovemusic Website die Streams abspielen soll. Das funktioniert auch. Nur das Problem ist wenn ich die Scraper Klasse in der main.py aufrufe über scraper_task =
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
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
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.
Also die Antwort klingt irgendwie wie Google oder ChatGPT.
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
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
Was ist in der file?
Weil ich glaub du kannst keine ".database" in python inportieren
und meist du villeicht eine .sql?
nee ist ne .py file
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
jo zeig mal was in der ".database" file ist
um welches video geht es eingentlich
Da ich mir schon ungefähr denken kann was dein fehler ist
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()
sind das beides .py?
es geht um die dashboard videos
das ist eine datei
aber gesplittet wegen discord
die datei die den import hat ist auch .py
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
heist die for real .database?
also ohne noch was davor?
häh
und dann nur from filename import db
Gieb der einfach nen normalen Namen und speicher sie als .py
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
hast du ne ide
mal neugestartet? hast du es gespeichert?
……..
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
gespeichert ist es
ich versuchs mal
half net
jezt gibt er einen neuen error
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> ```
Datei vorhanden? Ist sie im gleichen Ordner?
Will keiner Kekse?
@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
Du kannst nur Tabs oder Leerzeichen benutzen
Mach mal in Zeile 46 die Einrückung ganz weg und dann neu
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
Doch
alle wollen kekse
Magst du mir helfen dann bekommst du welche
Wasn dein Problem?
das ist doch bestechen
Ne
…
ich nehme erst kekse danach hilfe xD
Das ist Business
Angebot und nachfrage nenne ich das
So läuft das nd
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 🙂
bot_guilds ist wahrscheinlich None
Printe dir das mal
diese nix finden
Ja und warum machst du dann:
If [...] in bot_guilds[...]?
Du kannst ja nicht einfach bot_guilds aus dem nichts beschwören
Ist gefixxt Dankeschön
ja

habe mehr bekommen ^^
hat jemand ne idee?
denk mal drüber nach
Kann ich die bekommen
Ne
Mano
Und der Error?
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>
muss ich erstmal kopieren
Probier mal .db_loader
das hatte ich voher
geht auch net
hieß ja voher .database
warte
musst net direkt pingen
from .api import DiscordAuth
from .db_loader import db, feature_db
Nope, 50 50
Bei welchem Part bist du
hab ziemlich alles nach gemachgt
ja beim nachmachen passieren oftmals Fehler 🙂
hast dein code mit dem github code mal verglichen?
Sorry sieht eigentlich alles richtig aus
Hier findest du das Dashboard Template 😩
ja
das passt soweit
ja musst die anderen davor erstmal deinstalieren
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
du widersprichst dir ja selber..
wieso sollte es ein Fehler sein du hast doch alles in der requirements datei
es geht darum das ich einige sachen global installiert hate
die nicht in einer entwicklungs umgenbung war
ich weiß auch nicht mehr wozu was war und obs wichtig war
aber du benutzt des doch nur für des dashboard?
es gibt auch noch ein paar andere projekte
benutze doch dazu virual enviroments
alles fürs dashboard läuft in einem seperaten teil das extra instaliert
ja dann sollte doch nix passieren wenn du das extra dafür machst?
ja hab ich
ich schmeiß halt das globale zeug runter
das wurde alles deinstalliert
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
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
@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
stinker
Was ist der Error? Schick mal nur den relevanten 🙈
Hallo weiß wer wie ich nachsehen kann wer einen user eingeladen hat, brauche das für ein Invite Leaderboard
result = await api.get_token_response(data)
File "/workspaces/Anfang/backend/api.py", line 31, in get_token_response
response = await self.session.post(API_ENDPOINT + "/oauth2/token", data=data)
AttributeError: 'DiscordAuth' object has no attribute 'session'
Sicher dass du die aiohttp richtig initialisiert?
ich denke mal ja
perfekt einf denken
Also die class ist in der init.py und auch in der main.py als Import
@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
Ja weil du invites_before und invites_after beides auf Guild.invites setzt. Das ist ja auch natürlich das gleiche. Und es wird ja auch erst ausgeführt nachdem der User gejoint ist also ist er schon eingerechnet.
ja das hab ich auch gecheckt
Daher frag ich ja wie ich es anders machen kann
Da mit nichts anderes einfällt
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
aber dann muss ich doch alle einladungen speicher oder?
Das ist ja dann eine risige menge
Kannst du nicht für jeden Invite Code die invites speichern ?
schon aber der bot ist auf mehreren servern mit mehreren tausend nutzern
Das werden dann schon sehr schnell viele invites
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
Wer mir Hilfe bekommt 55 Kekse
@limpid wolf du hast doch immer Interesse an kekse:)
Was los
Du musst glaube noch bei der init Self.session = session machen
@frosty nexus
Okay, aber ich importiere ja die class und Session ist ja in der class
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
Gerne :) was war das Problem?
Echt jz, wirklich keine Ahnung.
Habe bisschen an der main rum gespielt und dann new gestartet
Stark Xd
Jo
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
Warum wird keine Radio Option angezeigt in ezcord Help Command
class RadioInfoCog(ezcord.Cog, name="Radio"):
def __init__(self, bot):
self.bot = bot
Wird der cog geladen?
Ja
Habs. Geschafft
@frosty nexus pass auf, dass du das "T" bei INTEGER nicht vergisst, der automod hat dich deswegen getimeoutet :D
Oha Timo noch wach
bitte was, wtf
wegen Ne...
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
ja haha
das ist echt belastend
DAS T WAR AN DER FALSCHEN STELLE XD
War der schon wieder timeout

🤣
so ich geh jetzt pennen, diesmal musst dus richtig schreiben
es ist echt sad für mich hahah
Gute Nacht
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
die setup methode wird normalerweise in der api.py aufgerufen
Bist du genervt
Schau später mal , habe gerade alles aus gemacht.
War 2 mal im to
Oki
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
```
ah ich meinte die main.py, sorry
da wird im tutorial das datenbank setup ausgeführt
kein problem
du musst on_startup noch als lifespan festlegen
app = FastAPI(lifespan=on_startup)
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'
Welche Nachricht?
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```
Kannst du mal die File structure zeigen?
Diese Struktur 
Was los

Ich finde es sieht recht Ordentlich aus xd
Ich weiß das es nicht schön ist xd, aber ich bin hier um Hilfe zu bekommen und nicht damit ihr euch über meine Struktur lustig machen könnt…
Zeig deine main.py
Ok
bitte
hast du nh idee warum?????
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")```
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)```
vllt mit https://docs.pycord.dev/en/master/ext/commands/api.html#discord.ext.commands.BotMissingPermissions
The following section outlines the API of Pycord’s prefixed command extension module. Bots: Bot: Attributes activity, allowed_mentions, application_flags, application_id, cached_messages, case_inse...
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)```
benutzt du interaction bei einem slash command oder ist das ein Button etc?
Einen Button
async def channel_button(self, button, interaction: discord.Interaction):
channel = await interaction.client.fetch_channel(interaction.channel.id)
await channel.send(embeds=create_embeds)```
das event on_application_command_error ist natürlich auch für slash commands und nicht buttons
gibts sowas auch für button usw. oder muss ich try nutzen
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?
Naja weil er immer angzeigt hat von wo also wie wenn ich dir jetzt antworten würde
solltest immer get_x benutzen und wenn es None ist dann erst fetchen
aber jetzt bekomme ich imemr None
if channel is None:
return print("Channel Not Found")```
Ist die channel id in db ?
Bin dumm ich hole mir die channel id mit interaction.guid.id XDs
ich weiß mit interaction.channel.id
Ja das geht ja auch XD
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
Was geht nicht
denn lösch die db noch mal
das problem ist der bot ist öffenlich und dann werden alle daten von den benutzern gelöscht, und das will ich zu 100% vermeiden
Wenn du neue Sachen in db machst denn muss removen
ehm
@solid ingot sorry das ich dich pinge aber du bist doch der profi.
Bearbeite die Tabelle mit irgend nem sql viewer Programm und füg die Tabelle selber hinzu
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
Nein muss man nicht
Denn sry
okay, muss dan mal schauen da ich so damit noch nicht drinnen ist
benutzt du auch eigentlich aiosqlite bei deinem bot?
yes
Ich frage, da ich ebenhalt sqlite3 bei deinem Code sehe ^^
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
Was ist CacheSlotProperty?
ist noch irgendwas anderes als PyCord installiert?
zeig Mal die ganze Methode
Hey könnte mir jemand ein js code in py umschreiben?
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 💀
kurze frage:
wie kann ich es machen das eine Nachricht an den Nutzer gesendet der gebannt wurde
Meiste du über dm oder wie?
Ja
Du musst erst dem User eine Nachricht schicken und denn ban
Frag unseren Kumpel ChatGPT
ChatGPT ist unserse Nicht freund
Warum nicht
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
Hat jemand eine idee?
Bin net zuhause
Intent im code nicht geladen I guess
Wie meinst du genau?
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
Zeig mal deine Main wo du dir intents definiert hast
#Intents
intent = discord.Intents.default()
intent.members = True
intents = discord.Intents.all()
bot = commands.Bot(command_prefix=data["Prefix"], intents=intents)
Du hast intents 2x definiert lösch mal die oberen beiden
Hat keinen Effekt, aber ich hät was villeicht hilft das und zwar hab ich in den tasks mal alle guild printen lassen ist ne lerre liste und danach wurde mir geprintet das on_ready durchgelaufen ist
Ahh ja starte die task mal in einem on Ready Event
Bekomen einen error das ich self adden muss
Code?
@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
wait until ready ist unnötig weil du machst das ganze ja schon im on Ready btw
Zeig mal den Error
Mach doch ein on Ready Event in Die gleich Datei ist cleaner
Der bot besteht aus mehr als 19 files ich kann glaub nicht in jedem ein on_ready adden
TypeError: LeaderboardSystem.edit_leaderboard_invite() missing 1 required positional argument: 'self'
Klar alles was zusammen gehört kommt in einen cog
Zeig mal woher du LeaderbordSysrem hast
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
from cogs.leaderboard_system import *
nimm bitte niemals einfach * als import
Also wenn ich es importiere und dabei in keinen cog habe geht es jedoch habe ich jetzt schon alles eingebunden und so
Ich hab da drinnen um die 30 buttons
am ende ist es dein Bot ^^
Ich hab angefangen Views in einem eigenen Ordner zu erstellen
Musst du die dann nicht auch alle einzeln importieren?
Mach das on Ready einfach in der gleichen Datei wie im tasks Video beschrieben dann klappt alles
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
UTC Zeitzone
► https://time.is/de/UTC
Code auf Github
► https://github.com/tibue99/tutorial-bot
Tutorial Playlist
► https://youtube.com/playlist?list=PLwRWzD1Sw5lXZApchxorxeBQ_P_Fjdsj1
Discord Developer Portal
► https://discord.com/developers/applications
Pycord
Docs ► https://docs.pycord....
Ich benutze oft __init__.py und __all__=[] bei diesen Datein
geht pelican Panel auch mit debian 12
Ja
Pelican Panel is designed to run on your webserver.
@fierce dove
Ja
freiwilliger noob
Freese
fresse*
Juckt mich
Hab eine Frage: Weiß jemand zufällig, wie man Cogs reloadet, wenn der Bot online ist? Ich bekomme das irgendwie nicht hin...
du musst die cogs nur laden
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!!!!!!
Ik, aber die wollen nicht neuladen
Weil ich will was am Code verändern und dann soll das neuladen
bot restarten heheh
Z.B. von
await ctx.respond("1")
zu
await ctx.respond("2")
OHNE Restarten vom Bot
Ich will, dass der On bleibt
@limpid wolf mein lieber du kriegst sogar 150 , wenn du mir weiterhelfen konntest hehe 


...
ich bin mir unsicher ob das geht
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 
Ich glaube ja
Weil eig will ich nur, dass ich Commands auf Servern deaktivieren kann, während der Bot on bleibt
Ich verstehe jetzt nicht, warum ich jetzt zu vorschläge soll
weil das doch ein vorschlag für kekshosting ist oder nicht
Nein
Wie kommst du darauf
asoooooooooooo, das kann man mit einem slash command machen aber das ist recht knifflig.
Ich meinte Premium für mein Bot z.B.
😦
Ich brauche das 😦
ich kenne mich selber noch nicht damit aus
dann erkläre es mir gerne nochmal
Am anfang meinte ich haha
Nein, das stimmt so wollte ich das haha
okay, ich weiß das es dazu ein docs gibt aber ich persölich habe das nirgents offen
#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
- das # muss bei der class weg
- Frag besser nicht ChatGBT
Hat aber Safe nix mit Command zu tun lol
das war nur zum zeigen, wo das hinkommt
- ja idk ich weiß nicht weiter
ist das mit PyCord geschrieben?
glaube du kannst die version mit bot.__version__ bekommen aber bin mir nicht mehr sicher kannst mir ja sagen ob es klappt oder was genau versuchst du?
joa
PyCord benutzt kein await beim laden von Extensions
Und beim "reload" von Cogs musst du die ganzen Commands Syncen wenn diese Slash commands enthalten
ist vom dashboard
ah ja alle versionen passen?
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```
sehe py-cord da gar nicht drin
Stimmt 
installier das mal dann sollte es klappen :D
er findet 'version_info' von discord nicht, habe pycord jz installiert
aaah
ich nutze immer Slash
Lade cogs auch nicht beim on_ready event
oder die werden nicht gehen/laden bei discord
pycord oder py-cord?
haha fr, pycord und py-cord einf unterschied, dass nervt sogar mich
willst du ein paar Sachen erfahren?
PyCord versucht es schon pycord und py-cord zu bekommen
check ich net
was meinst du genau?
wo kekse? :D
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
Jap
aaah
Nur der ersteller von pycord stellt sich ein wenig "sturr" könnte man sagen
Typ? Also ich nutze kein Chatgbt.
Zudem erstelle ich zum rum probieren gerne neue Seiten;)
...
wie macht ich nochmal User commands?
@indigo sleet https://youtu.be/rxNtX_KxJmY
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github ► https://github.com/tibue99/tutorial-bot
Discord Developer Portal ► https://discord.com/developers/applications
Tutorial Playlist ► https://youtube.com/playlist?list=PLwRWzD1Sw5lXZApchxorxeBQ_P_Fjdsj1
Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/int...
Ups falsch
@indigo sleet https://youtu.be/2PBvsuCDt8k
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...
ich check dieses Video nicht ganz
bruh
nur wegen den discord.commands xD
Hä
Neuste pycord Version
hab ich aber schon
Welche
ich ladt nochmal runter
Welche pycord Version
2.6.0 glaube ich
Ja ist richtig
Ja
aber wieso bekomme ich diesen Error
bisschene
Was
@restive herald warum ist das denn so, was muss ich da eintragen ist aus deinem code
imports?
Ich muss gucken wait
Jz wo du es sagst, ist gefixxt

Pfff 100 Kekse sind zu wenig
was ist asyncpg?
und
beides gibt es nicht
und die libaus dem video ist weg
404
@solid ingot meinst du es gibt noch nen ersatz dafür
wofür?
für die lib
welche lib?
die scheint es ja net mehr zu geben
Failed to clone https://github.com/NeloBlivion/pycord at 'app_emoji', verify ref exists on remote.
Pycord, a maintained fork of discord.py, is a python wrapper for the Discord API - NeloBlivion/pycord
doch, das gibt es noch
welchen befehl gibst du denn ein?
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.
ne nicht was das da kommt, sondern das was du eingibst
pip install git+https://github.com/NeloBlivion/pycord@app_emoji
wie du es im video gemacht hast
ah, da fehlt ein s hinten
ja, weiß leider auch nicht wie man das deaktivieren kann
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?
also ich weiß nicht ob man diese yt links deaktivieren kann
ups
in der beschreibung
alles gut
doch, ich weiß nicht wie man diese yt links in der videobeschreibung deaktivieren kann
das bei pip install meine ich
mit den 3 punkten am ende
ja ist nen github link
kann mir jemand sagen wie ich im dashboard es so machen kann das der user gepinngt wird wenn er joint??????
mit user.mention oder member.mention
Kann ich das einfach da rein schreiben wo ich die Willkommens Nachricht festlegen kann?
Dankeschön
Mh sus
es gibts kein user_name nur ein user.name
was den
es müssen heißt so py f"**test timo is cool, {member.mention}!**"
Es soll ja im Dashboard automatisch passieren das der User gepinnt wird
Gepingt*
@frosty nexus 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>```
behalte im Kopf, dass bei PyCord get_x nur funktioniert, wenn dieser channel auch im Cache ist
Und was willst du mir damit sagen?
Naja, du müsstest ebenhalt fetch_x und get_x benutzen
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?
Welcher Code
Fehler
wo?
Der Fehler
welcher fehler?
Vom Code
wo ist denn da der fehler?
Egal
geil
beste freiwilliger noob
du schreibst egal
Dann mach dub
interaction.guild.get_channel du kannst nur mit der channel id getten
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...
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 😄
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
Nein, du musst genau erklären warum und wieso und das dass wofür es genutzt wird ( Commands//dashboard)
@vast cradle https://youtu.be/E9VL1MblALw
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...
fresse* 🙂
fresse
geht doch 🙂
Ok
Ok
kann kir jemad sagen warum der error auftritt
code
welcher denn ??????
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?
wait
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```
ist der port vielleicht schon benutzt?
benutze standart 8000
häääääää
setz mal nen anderen port
yes
if __name__ == "__main__":
uvicorn.run("main:app", host="localhost", port=8000, reload=True)```
das ist uvicorn
also deine api
abner das ist nicht better-ipc
läuft der bot vielleicht grade schonmal auf deinem pc?
wait
ist auf github und vsc gelaufen, warum auch immer war bei gitgub nicht mal drinnen.
ist aber jz weg, danke
also klappt alles?
soweit ja, muss nur noch was fixxen.
aber das krige ich alone hin
perfekt
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
@ruby sparrow habe ich schon nen Post
ja aber das du hast dem ganze code
Was ist mit dem ganzen Code
was macht das wenn man ein bot zum acc hinzufühgt?
Auf jedem server
Ja
mein freund kann Py-cord nicht runterladen wie kann wires fixen?
Was für ein error kommt ?
@indigo sleet
Kannst du ihn mal auf dem Server einladen @indigo sleet und denn kann er dem error sagen
weiß jemand wie man das so machen kann
mit html css und js
oder python
Ich würde css lib emüfehlen damit du das besser und (Modewrner) Umsetzten kannst
In Python bindet man im Endeffekt auch wieder nur ne HTML und CSS ein 😂
Bitte mach keine Website mit dieser Python Library 
Ist in manchen Fällen gar nicht schlecht, aber nur wenn man auch n vernünftiges Backend haben möchte
Es gibt einfach heutzutage so viele Möglichkeiten dafür xd
Es ist halt einfach nur Wichtig zu wissen, das wnen du z. B. einen Button hat, der irgentwas auf der Webseite verändert, das du das mit Javascript Lösen musst, außer du willst das man den Seite reload sieht/machen muss
Das kannst du auch mit Python
Habe ich selber auch
wie das den?
Kann leider gerade nicht schauen bin auf Arbeit
Okay, wäre cool wenn du mir das später villeicht zeigen könntest
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'```
Modal haben kein View
Hey ich gebe "pip install py-cord" aber es geht nicht was kann ich tun?
Fehler was kommt?
Hast du es bei der Installation auch zum path hinzufügen geklickt?
was hinzugefügt?
Das Python zum path hinzugefügt wird
@fallow tiger https://youtu.be/PAsRoedhyOU
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Discord Developer Portal
► https://discord.com/developers/applications
Downloads
Python ► https://www.python.org/downloads/
PyCharm ► https://www.jetbrains.com/de-de/pycharm/
Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/introduction/
Discord Server ► https://discor...
da zeigt er das
oki
Python habe ich ja schon soll ich das alels löschen und alles neu installieren?
kannst du kurz call?
ja
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=" | 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
3 KB Datei
oke?
Hey hat jemand lust mit mir ein public bot zuerstellen?
Ne
<!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???
Warum solltest du überhaupt?
Aber nein eigentlich geht das nicht
Mach doch einfach 2 HTML Dateien
Doch klappt habe es gerade ausprobiert 
Ja klappt schon, aber sollte man nicht
Kann halt auf manchen Systemen und Servern zu Problemen führen
Möglich ja, Empfehlung nein 😅
Kannst du mir vilelciht zeigen wie du das nicht neuladne mit python umsetzt?
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=" | 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
Gibt es ein ctx.followup.send?
steht im code
Keine Ergebnisse für followup.send gefunden. Meintest du Folgendes?
discord.Interaction.followup
discord.ApplicationContext.followup
discord.ApplicationContext.send_followup
Mh
wie kann man ein background machen
body {
background-image: url("paper.gif");
}
okay danke
?
Bitti

