#Allgemeine Hilfe
1 messages · Page 62 of 1
ah danke
Bitte
starke antwort xd
Achso bruh hab gelesen ob das geht
hhahahhaah
Hab das wie nicht gesehen xD
digga bester kommentar xd
genauso wie bei pycord
if __name__ == "__main__":
for filename in os.listdir("cogs"):
if filename.endswith(".py"):
bot.load_extension(f"cogs.{filename[:-3]}")``` sollte so gehen
Weiss was fĂŒr commands ich coden kann
die commands die ich schon hab sieht man im bild
zahlen Raten
đ
Traceback (most recent call last):
File "C:\Users\SchĂŒler\Documents\Timo\Discord\Bots\EzCloudBot\bot.py", line 3, in <module>
import ezcloud
File "C:\Users\SchĂŒler\AppData\Local\Programs\Python\Python311-32\Lib\site-packages\ezcloud\__init__.py", line 6, in <module>
from . import blacklist, components, emb, logs, sql, times, utils
File "C:\Users\SchĂŒler\AppData\Local\Programs\Python\Python311-32\Lib\site-packages\ezcloud\blacklist.py", line 12, in <module>
from .internal import EzConfig
File "C:\Users\SchĂŒler\AppData\Local\Programs\Python\Python311-32\Lib\site-packages\ezcloud\internal\__init__.py", line 5, in <module>
from .ready_style import *
File "C:\Users\SchĂŒler\AppData\Local\Programs\Python\Python311-32\Lib\site-packages\ezcloud\internal\ready_style.py", line 5
from __future__ import annotations
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: from __future__ imports must occur at the beginning of the file
__title__ = "ezcloud"
__author__ = "timoodev"
__license__ = "MIT"
__version__ = "0.5.8"
from . import blacklist, components, emb, logs, sql, times, utils
from .bot import *
from .components import *
from .emb import *
from .enums import *
from .logs import *
from .sql import *
from .times import *
from .utils import *
der Future Import bei ready Style muss in die erste zeile
was zum f@ck ist timtdone
das gibt es nicht, deswegen kannst du es auch nicht importieren @ruby sparrow
Also timtdone zu timezone nh
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for multidict
Failed to build aiohttp multidict
ERROR: Could not build wheels for aiohttp, multidict, which is required to install pyproject.toml-based projects```
nutzt du Python 3.12? wenn ja, Versuch es Mal mit Python 3.11
weiĂ nicht wo sehe ich das
was hast du den dir fĂŒr eine python versiongedownlaodet
3 unterschidliche
wieso haha
github sachen und so
lösch alle und lad dir nur 3.11 herunter
wie lösche ich alle
suchen unten links und deinstalieren
Moinooo bekomme diesen Error, macht meiner Meinung aber kein Sinn, da lvl definiert ist:
Traceback (most recent call last):
File "/home/container/.local/lib/python3.10/site-packages/discord/ext/tasks/__init__.py", line 169, in _loop
await self.coro(*args, **kwargs)
File "/home/container/cogs/levelsystem.py", line 331, in is_connected
lvlup.add_field(name="â Neues Level!", value=f"Du hast die Rolle `{lvl}` freigeschaltet!")
NameError: name 'lvl' is not defined
Code kann ich aus irgendeinem Grund nicht reinschicken da ich einen Error bekomme
python --version
@solid ingot hast du was an ezcord gemacht bekomme jetzt den fehler den ich davor nicht bekommen habe
es gab kein Update, wenn du nicht auf den master Branche aktualisiert hast hat sich also nichts geÀndert
nutzt du Discord.py?
kann wer helfen?
falls lvl Bei dir irgendwo definiert ist, acht darauf, dass der definierungs Code auch ausgefĂŒhrt wird, bevor du die variable nutzt. wenn du das zB in einer If Bedingung hast, kann es sein, dass die variable nicht definiert wird, www wenn die Bedingung nicht true wird
bin Grad am Handy, send vlt mal ein Screenshot von der Stelle im Code, wo du lvl definierst
wenn es nicht funktioniert nicht 
wo definierst du lvl?
weiter oben, ist nicht im screenshot weil wie soll ich das drauf kriegen?
naja, Level ist auf jeden fall nicht in allen FĂ€llen definiert
der Fehler ist also weiter oben bei der definition
ist lvl im else Teil definiert?
nein
das ist der fehler
insane
wenn new_level zum Beispiel 2 ist, ist lvl nicht definiert
ist es denn gezwungen im else zu definieren oder gibt es da umwege?
es gibt andere Wege, aber immer wenn du lvl benutzen willst, musst du es vorher definiert haben
du könntest Level am Anfang auf None setzen und den Text nur anzeigen, wenn lvl nicht None ist
Wie kann ich kekshosting Panel mit GitHub verbinden das wenn ich was auf GitHub hochlade das der Code auf kekshosting Panel geupdated wird
WeiĂ jemmand wie das geht
Nein
Komisch hab voll die Probleme jetzt
hast vlt aus Versehen installiert
wenn du die gleiche ezcord Version nutzt wie davor hast du was anderes falsch installiert
Kann mir jemand helfen
versuch das mal
keine ahnung ob das rchtig ist aber
ok
muss mein repo öffentlich sein
probiers aus
versuch mit privaten repo dann öffentlichen
aber ich denke mal öffentlich
ok
aso und ich glaub du brauchst das
Es ist ja möglich von einer .env-Datei Informationen mithilfe os.getenv() zu erhalten.
Ist es auch möglich, Informationen zu updaten?
z.B. so:
TEST = 0```
```py
os.setenv('TEST', '1')```?
ja, da gibt es mehrere Möglichkeiten, zB direkt mit os.environ
Hast du hier ein Beispiel?
os.environ["SHEESH"] = "1"
Ich danke dir. Teste ich dann aus. 
Hey zusammen!
Hat jemand von euch auch mal den Fehler von einem Discord Bot bekommen der meldet HTTP ERROR (403): The Authorization token you passed did not have permission to the resource und ihn lösen konnte?
Ich habe es schon seit fast 2 Stunden versucht das zu fixen aber es klappt nicht. Ich habe den Bot natĂŒrlich auch alle rechte gegeben und der geht auch online sobald dieser startet aber sobald ein Report in-game gemacht wird womit dieser Report an einem Kanal des Discord Server gesendet wird, taucht der Fehler auf und die Nachricht erscheint auch nicht sowohl auch geht der Discord Bot dann direkt offline. WeiĂ jemand was das sein kann?
Hast du denn einen Code, wie du das genau an den Kanal ĂŒbermittelst?
ja das habe ich. Bin mir nur nicht sicher welcher code es ist da es von einem Entwickler damals fĂŒr mich entworfen worden ist. Ich weiĂ nicht ob dieser Abschnitt den ich hier als Bilder dazu schicke das richtige ist was du meinst?
Weil damals hatte der Bot einwandfrei funktioniert auf einem anderem Server, nun versuche ich diesen auf einem neuen Server einzurichten was diesmal nicht funktioniert. đŠ
Sieht mir nicht nach dem richtigen Code aus.
Oh okay, du willst wissen wie der Bot die Nachrichten verschickt richtig?
Ja, du hast ja geschrieben, dass er eine Nachricht an einen anderen Server schickt?
Nein nein das habe ich nicht. Das Problem ist der Discord Bot ist mit einem Server Manager verbunden der die Assetto Corsa Servern betreibt. Bei einer Eingabe des Report (In-Game) wird normalerweise eine Nachricht an den Discord Server gesendet was aber nicht funktioniert da die Fehlermeldung mit dem HTTP 403 kommt. Ich weià das es sich um nicht ausreichende berechtigungen handelt oder um einen Auth Problem aber ich bekomme das nicht gelöst
Der Bot geht ja auch online wenn er gestartet ist nur springt er sofort wieder auf offline wenn ein Report gesendet wird.
@silk gulch
ping nicht einfach so wenn du keine antwort kriegst, Danke!

Quelle: ChatGPT
Es scheint, als ob der Discord Bot Schwierigkeiten hat, Nachrichten an den Discord Server zu senden, insbesondere wenn es sich um einen In-Game-Report handelt. Der HTTP 403-Fehler deutet darauf hin, dass es an Berechtigungen oder Authentifizierungsproblemen mangelt.
-
Bot-Berechtigungen ĂŒberprĂŒfen:
-> Stelle sicher, dass der Bot ĂŒber die erforderlichen Berechtigungen verfĂŒgt, um Nachrichten in den entsprechenden Discord-Server zu senden.
-> ĂberprĂŒfe, ob der Bot die Berechtigung "SEND_MESSAGES" fĂŒr den Textkanal hat, in den die Meldung gesendet werden soll. -
Bot-Token ĂŒberprĂŒfen:
-> Stelle sicher, dass du das richtige Bot-Token verwendest und dass es nicht abgelaufen oder zurĂŒckgesetzt wurde.
-> Gehe sicher, dass der Bot auch in den richtigen Discord-Server eingeladen wurde und die richtigen Berechtigungen hat. -
Discord API-RatenbeschrÀnkungen:
-> ĂberprĂŒfe, ob dein Bot nicht durch die Discord-API-RatenbeschrĂ€nkungen eingeschrĂ€nkt wird. Wenn zu viele Anfragen innerhalb kurzer Zeit gesendet werden, kann dies zu einer vorĂŒbergehenden Sperrung fĂŒhren. -
Logging hinzufĂŒgen:
-> FĂŒge Logging-Statements in deinem Code hinzu, um zu ĂŒberwachen, was genau passiert, wenn ein Report gesendet wird. Das kann bei der Fehlersuche helfen.
Ahhh, sehe ok dann versuche ich es nochmal wusste gar nicht das so etwas mit ChatGPT auch möglich ist dachte ChatGPT sendet nur Codes und so. Vielen Dank. đ
$ йЎŃŃŃ $ da ist meine Antwort. 
Der Ping war dennoch ungerechtfertigt. Hier kann dir ja jeder helfen, nicht nur ich. đ
Du hast aber keine antwort bekommen und hast gepingt

Naja wenn man von einer Person eine Antwort bekommt geht man davon aus das diese Person auch helfen wird. đ Aber hat sich ja jetzt gelöst. đ
Naja, Schwamm drĂŒber. Ist nun mal passiert & daraus lernt man.
Mir ist es eigentlich Wurst, ob ich gepingt werde oder nicht.
Solange man es nicht ĂŒbertreibt. Also ich komm jetzt nicht mit nem Nudelholz und hau dir damit auf den Kopf.
Genau das meine ich. đ Solange es kein ping spam ist oder sonstiges. đ Nachrichten zu markieren auf diese man Antworten möchtet ist auch nicht anderes als pingen.
Exactly.
Ne Frage kann das hier eigentlich ignoriert werden? Das bekomme ich nÀmlich immer beim Discord Developer Portal einmal wenn ich eine neue Anwendung erstelle?
wernns dir keine probleme macht kanns du es warscheinlich ignorieren
Naja, Probleme werde ich schon damit haben weil ich immer noch diesen HTTP Error 403 versuche zu beheben. Der Bot eigentlich alles was er braucht aber was will er denn noch? đ
Ok fixed....
Das ist echt seltsam.... Ich habe jetzt mal auf einem anderen PC versucht die Anwendung zu erstellen wo auch dieser Fehler nicht angezeigt worden ist und alles dasselbe gemacht wie vorher sonst auch. Spricht einladen des Bot, rechte vergeben etc. wirklich alles dasselbe und jetzt scheint er die nachrichten zum Discord zu senden. Vermutlich hat Discord meinen Konto eingeschrÀnkt somit auch die Rechte des Bot aufgrund des Fehler was beim erstellen der Anwendungen kommt? Echt seltsam...
Hab ich oben sogar in der ChatGPT-Response dir geschrieben:
ĂberprĂŒfe, ob dein Bot nicht durch die Discord-API-RatenbeschrĂ€nkungen eingeschrĂ€nkt wird. Wenn zu viele Anfragen innerhalb kurzer Zeit gesendet werden, kann dies zu einer vorĂŒbergehenden Sperrung fĂŒhren.
chatGPT ist hier im Channel nicht erlaubt
@solid ingot ey timo

Oh? Ja das verstehe ich aber nur nicht ganz weil das schlieĂlich meine erste Anfrage war die ich seit langem nicht mehr tat. Unc ich muss auch mal in meinen E-Mails schauen ich habe nĂ€mlich das gefĂŒhl das mein Discord Account irgendeine EinschrĂ€nkung hat da wieder dasselbe Problem ist. Wenn ich dies aber mit einem anderen Discord Account mache geht es ohne Probleme
Traceback (most recent call last):
File "/home/docs/checkouts/readthedocs.org/user_builds/cloudcord/envs/latest/lib/python3.11/site-packages/sphinx/config.py", line 358, in eval_config_file
exec(code, namespace) # NoQA: S102
^^^^^^^^^^^^^^^^^^^^^
File "/home/docs/checkouts/readthedocs.org/user_builds/cloudcord/checkouts/latest/docs/conf.py", line 12, in <module>
from cloudcord import __version__
ImportError: cannot import name '__version__' from 'cloudcord' (unknown location)
Es ging letztlich nur um die Analyse und was die einzelnen Fehler bedeuten.. Sind ja keine Codes gewesen oder sonstiges.. 
soso, dieses Mal verzeihe ich dir noch 
sag mal was er error heist
dass version nicht importiert werden kann
wieso nicht
Discord-Formatting
weiĂ nicht wie man diese Codeblock Zeichen am Handy macht :(
Steht dahinter: unknown location
das muss doch so sein oder
kommt auf die Position der Datei an, und darauf wie die init datei von cloudcourd aussieht
iPhone?
ja aber Gboard Tastatur
Dann RIP.
Wieso kann ich da self nicht verwenden?
__title__ = "cloudcord"
__author__ = "littxle/timo"
__license__ = "MIT"
__version__ = "1.0.0"
from . import blacklist, components, emb, logs, sql, times, utils
from .bot import *
from .components import *
from .emb import *
from .enums import *
from .logs import *
from .sql import *
from .times import *
from .utils import *```
so
oder
wenn es funktioniert ja đđœ
self kannst du nur innerhalb der Methoden verwenden
du könntest getAvailableLanguages() als staticmethod nutzen
Will ja aber self.available_languages ausm init nutzen.
self geht aber nicht
Wie könnte ich es dann nutzen?
Hi, weià irgendwer warum die ID's von meinen Slash commands auf allen Discord Servern unterschiedlich sind? Meine Commands sind nicht guild only und sonnst könnte ich mir auch nicht vorstellen warum das so ist! Ich habe schon probiert einen anderen Bot zu erstellen und es nochmal zu probieren, aber ich hatte das gleiche Problem!
Das ist der Code vom Slash command falls das hilft
@leavecmd.command(description="Set the channel for the leave system.")
@commands.has_permissions(administrator=True)
async def channel(self, ctx, channel: Option(discord.SlashCommandOptionType.channel,
description="The channel for the leave system")):
cursor.execute(f"SELECT * FROM leavemsg WHERE guildId = '{ctx.guild_id}'")
res = cursor.fetchall()
if not res:
cursor.execute(
f"INSERT INTO leavemsg (guildId, channelId, message) VALUES ('{ctx.guild_id}', '{channel.id}', '[member_mention] left [guild_name]')")
db.commit()
await ctx.respond(
f"{yes}{dot}The channel for the leave system is now <#{channel.id}>! You can use </leave toggle:1185703776825380902> to enable the system!",
ephemeral=True)
else:
cursor.execute(f"UPDATE leavemsg SET channelId = '{channel.id}' WHERE guildId = '{ctx.guild_id}'")
db.commit()
await ctx.respond(
f"{yes}{dot}The channel for the leave system is now <#{channel.id}>! You can use </leave toggle:1185703776825380902> to enable the system!",
ephemeral=True)
als Klassenvariable zum Beispiel. aktuell ist es bei dir eine Instanzvariable (das mit self)
bin zwar kein Profi in dem Gebiet, du könntest die Command IDs aber dynamisch laden, sodass immer automatisch die richtige ID genzutzt wird
falls du ezcord nutzt, kannst du bot.get_cmd dafĂŒr benutzen
Also ich habe das mal ausprobiert und warum auch immer wird der Command nur auf einem Discord Server gementioned, auch wenn ich ihn vom diesem Server kicke funktioniert es nicht
@slash_command()
async def test(self, ctx):
await ctx.respond(self.bot.get_cmd("test"))
Okay, nvm
Ich hatte noch in der main.py die debug guilds drin obwohl ich dachte, dass ich sie entfernt hatte! Jetzt funktioniert alles, danke 
freut mich :)
Wie mache ich aus eine Liste von member eine Liste von discord.SelectOptions
du könntest den Namen als Anzeige nehmen und die ID als value
Ah sad, das habe ich befĂŒrchtet, danke!
alternativ kannst du halt direkt User als Option type nehmen, aber dann kann man halt alle User auswÀhlen
Ja das wĂŒrde ich gerne umgehen, so habe ich es derzeit umgesetzt. Kriegt man die Profilbilder irgendwie angezeigt?
hm ne keine Chance denke ich
höchstens in nem generierten Bild mit dropdown darunter
Ich verstehe, danke schonmal. Das hat jetzt zumindest schonmal so funktioniert, wie ich es mir erhofft habe^^
Keine Ergebnisse fĂŒr Boost message gefunden. Meintest du Folgendes?
Keine Ergebnisse fĂŒr boost gefunden. Meintest du Folgendes?

Mach einfach:
@commands.Cog.listener()
async def on_guild_boost(self, AndereCooleSachenDieIchGeradeNichtWeiĂ)
Kannst du mir es bitte als @bot.event geben?
In pycord, oder?
Ja
@bot.event()
async def on_guild_boost(boost):
<CODE>
Danke
Kein Problem
wenn du des clean machst fĂŒg guild id hinzu
Kennt sich wer mit wavelink aus und kann mir helfen?
Ne sorry
Kann dir gerne in 5min im talk helfen wenn du magst
Habe mir gerade was zu essen geholt
Kennst dich aus?
Ginge auch etwas spÀter?
jo klar
DĂŒrfte ich dich dann pingen, wenn ich kann?
klar
Okay vielleicht hab ich es schon geschafft, aber teste es erstmal dann aus. đ
[WAVELINK] Node "myso9h4y61hs851n" started!
@limpid wolf hast in ca. 30 Minuten noch Zeit?
bestimmt
muss mal schauen aber bin bestimmt noch da
aiohttp==3.8.6
aiosignal==1.3.1
aiosqlite==0.19.0
async-timeout==4.0.3
attrs==23.1.0
betterstack-uptime==1.0.3
certifi==2023.11.17
charset-normalizer==3.3.2
chat-exporter==2.6.1
colorama==0.4.6
emoji==2.8.0
ezcord==0.4.1
frozenlist==1.4.0
grapheme==0.6.0
idna==3.6
multidict==6.0.4
py-cord==2.4.1
python-dotenv==1.0.0
pytz==2023.3.post1
requests==2.31.0
string-py==0.1.3
urllib3==2.1.0
yarl==1.9.3
mehr hab ich nicht
vlt nutzt du aus Versehen eine andere Python als diese
installier auf jeden Fall pycord neu
Wo kann Mann die Version Àndern in Pycord in welchem File
@solid ingot weiĂt du wo Mann die Version Ă€ndern kann
Weiss wer warum meine /commands nd mehr regrestriert wird, also die werden auch nd in intergrationen angezeigt oder bei mein /register commands command
also der cog wird regrestriert aber mein command nd
geht wieder hab die dev version aus #đă»pycord-help genommen
Moin eine Frage wie macht man das ein Bot keinen Online/dnd/idle status hat?
Also am profilbild ist kein status
Was meinst du
@tawdry leaf Denke er meint sowas
Dass der Bot zwar online ist, aber nirgends ein Status steht
Oder @lofty rock ?
Ja
Aber er meinte damit nicht mich
Er meinte timoo4dev
Oh, verlesen
Jungs
Eine frage undzwar mein Code fĂŒr meine Bots sind auf einem anderen Laptop
Nun habe ich kein Zugriff mehr auf diese, hat jemand eine idee wie ich die wieder bekommen könnte?
In dem du deinen eigenen Leptop Hacks đ
Schande đ
GitHub
Hab es nicht benutzt

Gibt es wirklich keinen anderen Weg?
wie genau auf einen anderen Laptop
Hab damals alle meine Codes in KeksHosting in die Cogs da rein gepastet jetzt wurde mein Server dort auch noch gelöscht
Auf nem anderen Laptop halt
hast du den Laptop noch
Nope
ja dann gehts nd
F
vllt hat timo ein backup von gelöschten was ich aber eher nicht denke wegen Datenschutz
ĂĂfff
Hast du ein Backup vom gelöschten Server?
ne, du?
xD
guter witz
WeiĂ jemand wie man einen User von einem Voice Channel disconnecten kann?
bei member.move_to kannst du None als channel eintragen
Danke 
warum kann ich die version nicht Àndern
Uploading ezcloud-0.5.1-py3-none-any.whl
100% ââââââââââââââââââââââââââââââââââââââââ 56.0/56.0 kB âą 00:00 âą ?
WARNING Error during upload. Retry with the --verbose option for more details.
ERROR HTTPError: 400 Bad Request from https://upload.pypi.org/legacy/
This filename has already been used, use a different version. See https://pypi.org/help/#file-name-reuse for more information.Uploading ezcloud-0.5.1-py3-none-any.whl
100% ââââââââââââââââââââââââââââââââââââââââ 56.0/56.0 kB âą 00:00 âą ?
WARNING Error during upload. Retry with the --verbose option for more details.
ERROR HTTPError: 400 Bad Request from https://upload.pypi.org/legacy/
This filename has already been used, use a different version. See https://pypi.org/help/#file-name-reuse for more information.
Aktuelle version ist die 0.4.9 möchte aber zu version 0.5.1 umÀndern
die version existiert anscheinend bereits
ok
aber die existiert nicht
wurde jedenfalls schonmal irgendwo auf pypi oder testpypi hochgeladen. du musst die version also nochmal Àndern bevor du es hochladen kannst
zum beispiel
@solid ingot was bringt das es wurde nix in denn Files dafĂŒr verĂ€ndert
doch
Zeig wo
Ok
ich habe ein audit log system gemacht aber wenn ich ein embed lösche wird das nicht angezeigt
kaputt
warum
ja weil er nd geht
print halt ma
Ka
Ich glaube man muss extra ĂŒberpfĂŒfen ob da embeds bei der gelöschten nachricht wahren und die dann halt extra sichholen. Bin mir aber nicht sicher
ok
Hab in den docs nachgeschaut
Die embeds einer message kriegst du mit message.embeds und dann musst du halt bei der message die embeds anghÀngen. Man muss das aber mit embeds=message.embeds machen da halt ne liste returnt wird
Gibt es ein Event, wenn ein User einen Voice Channel betritt? Ich hatte bis jetzt das hier, aber wenn man bereits in einem Voice Channel ist, ist der State immer noch gleich (oder Discord Ratelimited mich gerade xD)
@commands.Cog.listener()
async def on_voice_state_update(self, member, before, after):
if before.channel is None and after.channel is not None:
...
Ich glaub discord hat dich ratelimited
das wĂŒrde er doch eig als print bekommen đ€
Wenn ich das richtig verstehe musst du ĂŒberprĂŒfen ob der before.channel und der after.channel gleich sind. Wenn nicht hat der user den kanal gewechselt und wenn doch keine ahnung wie man das schaffen kann. Wenn der After.channel None ist heiĂt das der user hat den voice kanal verlassen und wenn der before.channel none ist ist der user nem kanal beigetreten
Beides der gleiche channel kommt wenn der user sich muted oder gemuted wird
Bedingung auf "if after.channel is not None:" kĂŒrzen?
Nö, das gibt kein Ratelimit. Eine Àhnliche Methode lauscht bei mir auf voice wechsel von ~400_000 Nutzern, hat nie Probleme gemacht.
Edit; zumindest der Teil der in deinem Beispiel gezeigt wird dĂŒrfte keine Probleme machen
warum kann ich das nicht auf testpy hochladen
Uploading devcord-0.5.1-py3-none-any.whl
100% ââââââââââââââââââââââââââââââââââââââââ 56.1/56.1 kB âą 00:00 âą ?
WARNING Error during upload. Retry with the --verbose option for more details.
ERROR HTTPError: 403 Forbidden from https://upload.pypi.org/legacy/
Invalid or non-existent authentication information. See https://pypi.org/help/#invalid-auth for more
information.
@solid ingot kannst du mir helfen
naja lies Mal den error, deine Authentifizierungsdaten sind nicht richtig
und Timo wie kann man Tests veröffentlichen?
auf testpypi
das passwort ist aber richtig
send mal link
passwor ist richtig
hihi
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\interactions.py", line 847, in send_message
self._parent._state.store_view(view)
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\state.py", line 386, in store_view
self._view_store.add_view(view, message_id)
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\view.py", line 581, in add_view
view._start_listening_from_store(self)
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\view.py", line 425, in _start_listening_from_store
self.__timeout_expiry = time.monotonic() + self.timeout
~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
TypeError: unsupported operand type(s) for +: 'float' and 'Button'```
@discord.ui.button(label="timout", style=discord.ButtonStyle.blurple, custom_id="timeout",
emoji="")
async def timeout(self, button: discord.ui.Button, interaction: discord.Interaction):
if self.user.guild_permissions.timeout_members:
await interaction.response.send_message("Du kannst keine Moderatoren timeout geben", ephemeral=True)
await asyncio.sleep(5)
await interaction.delete_original_response()
return
if self.user.id == interaction.user.id:
await interaction.response.send_message("Du kannst dich nicht selbst timeout geben!", ephemeral=True)
await asyncio.sleep(5)
await interaction.delete_original_response()
return
if interaction.user.top_role.position < self.user.top_role.position:
await interaction.response.send_message("Du kannst keinen Nutzer timeout geben, der eine höhere Rolle hat als du!", ephemeral=True)
await asyncio.sleep(5)
await interaction.delete_original_response()
return
await self.user.kick(reason=self.reason)
await interaction.response.send_message(f"{self.user.mention} wurde timeout fĂŒr `{self.reason}`", ephemeral=True)
await asyncio.sleep(5)
await interaction.delete_original_response()```
Könnt ihr mir bitte sagen wie man den online status von einen Bot entfernen kann wie hier:
du könntest deinen bot offline nehmen
Ja aber dann wird er nicht in der online Liste angezeigt
das ist keine helfe?
Einfach keinen in deinem Code definieren. Ist halt nicht ganz so schwer auf die Lösung zu kommen
Dann wir er zwar als Online angezeigt, aber hat keinen Status
WeiĂ jemand eigentlich, wie das geht?
wie was geht?
Du musst mehr erklĂ€ren, wer weiss wie was geht? aber ich denk mal das mit dem server hinzufĂŒhgen oder?
Ignoring exception in view <PunishView timeout=180.0 children=3> for item <Button style=<ButtonStyle.primary: 1> url=None disabled=False label='timout' emoji=<PartialEmoji animated=False name='icon_bestrafung_timeout' id=987644033784483890> row=None>:
Traceback (most recent call last):
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\view.py", line 414, in _scheduled_task
await item.callback(interaction)
File "d:\Projects\cloud-bot\cogs\Panel.py", line 133, in timeout
await self.user.ban(reason=self.reason, delete_message_days=0, until=until)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: Member.ban() got an unexpected keyword argument 'until'```
@discord.ui.button(label="timout", style=discord.ButtonStyle.blurple, custom_id="timeout",
emoji="")
async def timeout(self, button: discord.ui.Button, interaction: discord.Interaction):
if self.user.guild_permissions.kick_members:
await interaction.response.send_message("Du kannst keine Moderatoren timeout geben", ephemeral=True)
await asyncio.sleep(5)
await interaction.delete_original_response()
return
if self.user.id == interaction.user.id:
await interaction.response.send_message("Du kannst dich nicht selbst timeout geben!", ephemeral=True)
await asyncio.sleep(5)
await interaction.delete_original_response()
return
if interaction.user.top_role.position < self.user.top_role.position:
await interaction.response.send_message("Du kannst keinen Nutzer timeout geben, der eine höhere Rolle hat als du!", ephemeral=True)
await asyncio.sleep(5)
await interaction.delete_original_response()
return
# Calculate the time until the user should be unbanned (e.g., 180 seconds from now)
until = datetime.datetime.utcnow() + datetime.timedelta(seconds=self.timeout)
await self.user.ban(reason=self.reason, delete_message_days=0, until=until)
await interaction.response.send_message(f"{self.user.mention} wurde timeout fĂŒr `{self.reason}`", ephemeral=True)
await asyncio.sleep(5)
await interaction.delete_original_response()```
was soll passieren was soll nd passieren
er user getimeout
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...
@tough thicket meinst du das?
im code sagst du await self.user.ban(reason=self.reason, delete_message_days=0, until=until)
Ne, seinen Status
Also nicht online oder dnd, einfach nichts
er user ist kein Admin, aber es zeigt an, dass das ein Admin ist, also kann ich es nicht nutzen, kein Timeout, was könnte das sein?```py
@discord.ui.button(label="timout", style=discord.ButtonStyle.blurple, custom_id="timeout",
emoji="
")
async def timeout(self, button: discord.ui.Button, interaction: discord.Interaction):
await interaction.response.send_modal(TutorialModal(title="warum willst du ihn timeout", user=interaction.user))
class TutorialModal(discord.ui.Modal):
def init(self, user, *args, **kwargs):
self.user = user
super().init(
discord.ui.InputText(
label="why do you want to timeout him",
placeholder="reason"
),
discord.ui.InputText(
label="how long will it have the timeout",
placeholder="give the time!",
style=discord.InputTextStyle.long
),
*args,
**kwargs
)
async def callback(self, interaction):
embed = discord.Embed(
title=self.children[0].value,
description=self.children[1].value,
color=discord.Color.green()
)
if interaction.user.guild_permissions.kick_members:
await interaction.response.send_message("Du kannst keine Moderatoren timeout geben", ephemeral=True)
await asyncio.sleep(5)
await interaction.delete_original_response()
return
if interaction.user.id == self.user.id:
await interaction.response.send_message("Du kannst dich nicht selbst timeout geben!", ephemeral=True)
await asyncio.sleep(5)
await interaction.delete_original_response()
return
if interaction.user.top_role.position < self.user.top_role.position:
await interaction.response.send_message("Du kannst keinen Nutzer timeout geben, der eine höhere Rolle hat als du!", ephemeral=True)
await asyncio.sleep(5)
await interaction.delete_original_response()
return
until = datetime.datetime.utcnow() + datetime.timedelta(seconds=self.timeout)
await interaction.user.timeout(reason=self.reason, until=until)
await interaction.response.send_message(f"{interaction.user.mention} wurde timeout fĂŒr `{self.reason}`", ephemeral=True)
await asyncio.sleep(5)
await interaction.delete_original_response()```
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 geht meine ich mit "INTERACTIONS ENDPOINT URL" im Dev Dashboard. https://www.youtube.com/watch?v=ywtBI9cEXIk&t=332s Hier im Video wird das ein wenig erklĂ€rt und anschlieĂend auch ein Beispiel gecodet jedoch in js.
Besser Discord Interaction Bots programmieren (mit Interactions ĂŒber HTTP)
In diesem Video geht es ĂŒber die Vorteile von Interactions ĂŒber HTTP anstatt ĂŒber Websockets, was die Endpoint Url in deinem Discord Developer Portal zu heiĂen kannst und wie du das alles anwenden und deployen kannst.
Discord Developer Docs: https://discord.com/develope...
danke dir
Es gibt die channel select menĂŒ funktion kann man auch einstellen das nur Text KanĂ€le angezeigt werden?
ja das geht
Und wie? genau?
du kannst channel_types angeben
@bot.event
async def on_application_command(ctx):
try:
channel = ctx.channel.mention
except:
channel = "#1186017387791794206"
options = ctx.options or []
options_info = "\n".join(
[f"**{option.name}:** {option.value}" for option in options]
)
embed = discord.Embed(
title=f"Command Used: {ctx.command.qualified_name}",
color=discord.Color.blue(),
)
embed.add_field(name="Options", value=options_info or "No options provided")
embed.add_field(name="User", value=ctx.author.mention)
embed.add_field(name="Channel", value=channel)
log_channel = bot.get_channel(1186014503205343335)
if log_channel:
await log_channel.send(embed=embed)```
warum gibt der mir nur None zurĂŒck?
recieved options gehört zu /my_command
Wie macht man sowas?
wasn
das geht im Discord developer portal
Mein Discord Server
âș https://discord.gg/zfvbjTEzv6
Links aus diesem Video
FFMPEG âș https://ffmpeg.org/download.html
I Love Radio âș https://ilovemusic.de/streams
âŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹ
Mein Hosting* âș https://tidd.ly/3gJufg6
Code auf Github âș https://github.com/tibue99/tutorial-bot
PYCORD
Docs âș https://docs.pycord.dev/
Guide âș https://guide....
habs gefunden danke
kein ding
wie kann ich da die deutsche zeot einstellen
{member.created_at.strftime("%d.%m.%Y %H:%M")}
meisnt du zeitzone?
Ja
import pytz
de_timezone = pytz.timezone('Europe/Berlin')
created_at = member.created_at.replace(tzinfo=pytz.utc).astimezone(de_timezone)
{created_at.strftime("%d.%m.%Y %H:%M")}
Hatte jetzt mal testweise diesen cog hier erstellt:
class Activity(commands.Cog):
def __init__(self, bot: discord.Bot) -> None:
self.bot = bot
self.refresh_activity.start()
@tasks.loop(minutes=5)
async def refresh_activity(self):
num_guilds = len(self.bot.guilds)
activity = discord.CustomActivity(f'Ich bin in {num_guilds} guild(s).')
await self.bot.change_presence(activity=activity)
@refresh_activity.before_loop
async def before_member_count(self):
await self.bot.wait_until_ready()
Bot profil zeigt aber einfach nix an also halt kein status oder so, passiert einfach nix ^^
Wenn ich nach dem presence change die bot.activity ausgebe ist diese immernoch None
welche pycord Version hast du?
2.4.1
fĂŒr den Custom Status brauchst du den master branch
hatte ich schon gesehen, bin davon ausgegangen dass der standardmĂ€Ăig von master pulled
voting?
vlt hilft dir das: https://discord.com/channels/1010915072694046794/1114509920184836128
Versuch auch gerne Mal einen Post aufzumachen wenn dir niemand antwortet, statt die Frage mehrmals zu senden
Du kannst das ezcord Status Event benutzen
Keine Ergebnisse fĂŒr bot status gefunden. Meintest du Folgendes?
ezcord sagt mir nix
Keine Ergebnisse fĂŒr bot.add_status_changet gefunden. Meintest du Folgendes?
Mein Discord Server
âș https://discord.gg/zfvbjTEzv6
Links aus diesem Video
EzCord Docs âș https://ezcord.readthedocs.io/
EzCord GitHub âș https://github.com/tibue99/ezcord
âŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹâŹ
Mein Hosting* âș https://tidd.ly/3gJufg6
Code auf Github âș https://github.com/tibue99/tutorial-bot
PYCORD
Docs âș https://docs.pycord.dev/
Guide âș https:...
Ja aber dfu hast das doch bei dir auch drinne? Weil der psot nĂŒtz mir nix weil der github link nciht geht
aktuell leider noch nicht, alternativ könntest du py-cprd-dev nutzen (bei #đă»pycord-help ganz unten)
schau dir die unterste Nachricht an
ja super hat direkt geklappt! Wieso ist das aber so dass CustomAcitivity und so schon alles verfĂŒgbar ist aber einfach nicht funktioniert
das ist so, weil es customactivity schon vorher gab, nur halt nicht fĂŒr Bots
frĂŒher gab es das nur bei normalen Usern
versetehe verstehe danke
hast du eine idee wie man diese buttons als status machen kann? Ist das eine EmbeddedActivity?
ich denke nicht das Bots das können
Hab ich auch das gefĂŒhl aber ich bin mir sehr sicher dass ich das schonmal irgendwo gesehen hab
Ich glaube das hat was hiermit zu tun
kenne sich hier einer mit git aus?
was brauchst du denn?
Keine Meta frage
Gibts so ein Tutorial fĂŒr Python?
Wenn du meinst um es zu lernen wenn ja schau dir die Tutorial Reihe an
Ein Tutorial in Python wie man den Online status von einen Bot removen kann meine ich
Must du halt coden ich weiĂ nicht ob Timo das gemacht hat ich schau mal nach
Mein Discord Server
âș https://discord.gg/zfvbjTEzv6
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.dev/
Guide âș https://guide.pycord.dev/i...
Hier schau dir das mal an da wird es erklÀrt
Ich meine nicht Idle Status oder so ich meine garkeinen
nope
Bro der hat einfach kein Zeichen als Status
garkeinen status
Dann helf ihn wenn du es weiĂt
Must glaube wie im tutorial und dann glaube könnte es sein bei Status None oder so
Nein
Ich weiĂ es wirklich nicht Kamm noch nie auf die idea frag mal Timo am besten
man kann nur invisible, dnd, idle und Online machen
Ok
Idk, aber damit funktioniert dein Bot halt grundlegend anders. WĂŒrde es nicht machen nur wenn du diesen Status weg bekommen möchtest
ich mag den status nicht
Na dann viel spaĂ dir, den Bot um zu schreiben.
Weiss jmd wie ich den Pfad richtig angeben muss fĂŒr ddas get_config
from utils.funcs import get_config ModuleNotFoundError: No module named 'utils.funcs'
welche Datei hast du gerade offen?
und ne iidee
hm da steht du brauchst ein gĂŒltiges webhook
Ka
Hat jemand eine Idee wie man eine SlashCommandGroup in mehreren Cogs verwenden kann? Hab schon gefĂŒhlt alles probiert aber die commands werden dann einfach nicht registriert
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...
@urban glen hier ist video er zeigt
đ«Ą

ich denke das geht nicht
Achso ja er zeigt ja generell Command groups, ich meine dass ich eine group in nem anderen cog verwende weil das Ding jetzt schon viele viele hunderte Zeilen hat
Oder eine andere Idee wie ich den Code irgendwie auslagern kann dann
ka ob es geht
Geht nicht
Also wenn man jz viele commands in einer Gruppe hat dann wir deer cog einfach immer voller und voller
Und wie geht das mit dieser Meldung?
das ist automatisch von discord
Wie kann ich es ermöglichen, Sterne von Ihrem Konto abzuheben?
Kann man keine Eigenen Emoji als Embed Footer verwenden? also z.b. !server_owner_xenority
Wie meinst du das?
embed.set_footer(text="đ")
das mit Windows + . emoji die werden angezeigt wenn ich das embed sende aber das hier nicht also wenn ich nen custom emoji nehme
embed.set_footer(text="!server_owner_xenority")
Hmm
schau
kann wer mir dem link zu DB Browser SQLite senden
ah danke
async def setup(self):
await self.execute(
"""CREATE TABLE IF NOT EXISTS users(
user_id INTEGER PRIMARY KEY,
stern INTEGER DEFAULT 0,
streak INTEGER DEFAULT 0,
Konto INTEGER DEFAULT 0,
)"""
)```
[ERROR] Error in event on_ready
Traceback (most recent call last):
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
await coro(*args, **kwargs)
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\cloudcord\bot.py", line 374, in _db_setup
await instance.setup()
File "d:\Projects\cloud-bot\cogs\Stern.py", line 16, in setup
await self.execute(
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\cloudcord\sql.py", line 322, in execute
return await self.exec(sql, *args, end=end, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\cloudcord\sql.py", line 314, in exec
raise e
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\cloudcord\sql.py", line 309, in exec
cursor = await db.execute(sql, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 184, in execute
cursor = await self._execute(self._conn.execute, sql, parameters)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 129, in _execute
return await future
^^^^^^^^^^^^
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 102, in run
result = function()
^^^^^^^^^^
sqlite3.OperationalError: near ")": syntax error```
das letzte komma muss weg
thx
muss man testen
Mit welchem Check denn? Bei mir wird halt nur ne exception geworfen
welche denn?
Hab selber nen decorator gemacht mit commands.check
Bin mir grad nicht sicher aber glaub das ist halt der CheckFailure
@solid ingot https://discord.com/application-directory/1005119817294041209 wie bekommt man so ein link mit seinen bot?
Kannst du nicht einfach deine application id da einfĂŒgen?
Ich meine, dass der Bot dafĂŒr Verifiziert sein muss
Hey Leute! Mal eine Frage, gibt es einen BOT oder einen Mittel womit man das beheben kann? Es geht nĂ€mlich darum das ich meinen ganze Discord Server in einer Custom Schriftart umgebaut habe spricht es ist keine Standart Schriftart. Jetzt habe ich natĂŒrlich das Problem das man durch diese Schriftart keine Rollen/KanĂ€le mehr erwĂ€hnen kann da die Text Eingabe die Schriftart es nicht erkennt. Nun gibt es da irgendeine Lösung wie zum beispiel einen Bot dwom man fĂŒr jeden Kanal/Rolle eine ID eingeben kann mit der Standart Schriftart?
Wie zum Beispiel so:
ID - Kanal ID
Kanal Name - Allgemein
Dennoch bleibt die Custom Schriftart aber bei den KanÀlen und Rollen
Bin mir nicht sicher ob es so etwas gibt oder möglich ist?
Ich hoffe ihr wisst woraf ich hinaus will? đ
WĂŒrde mich auf jeder Hilfe freuen.
Speichern der IDs: Der Bot speichert die IDs aller KanÀle und Rollen zusammen mit ihren Namen und benutzerdefinierten Schriftarten.
ErwĂ€hnung generieren: Wenn jemand eine Rolle oder einen Kanal erwĂ€hnen möchte, gibt der Benutzer die gewĂŒnschte ID in einem speziellen Befehl ein, z.B. /mention Kanal_ID.
Bot generiert ErwĂ€hnung: Der Bot liest die gespeicherte Standard-ID fĂŒr den angegebenen Kanal/Rolle und sendet dann eine ErwĂ€hnung in der Standard-Schriftart.
Ist nur sehr grob und weiss nicht ob es gehen wird, probier es jedoch aus
Okay đ€ Ich werde es mal Probieren weil wie gesagt die KanĂ€le haben jetzt eine andere Schriftart als vorher und durch diese Anpassung der Schriftart kann natĂŒrlich in der Text Eingabe die Rollen/KanĂ€le nur mithilfe der ID erwĂ€hnt werden was ich eigentlich nicht gerne möchte weshalb ich versuchen möchte es mit dem Text zu machen statt Zahlen.
Zum Beispiel heiĂt der eine Kanal đâđźđđđđđđ jedoch kann dieser nicht in der Text Eingabe markiert werden da dies von der Standard Schriftart nur erkannt wird. đ€
was soll denn am ende rauskommen? willst du das fĂŒr commands haben wo user einen TextChannel auswĂ€hlen können oder meinst du jz normal beim schreiben
Ja ich meine das eigentlich ganz normal wie zum Beispiel das ich in Text Eingabe** #regeln** eingeben kann ohne eine ID eingeben zu mĂŒssen.
WĂŒrde ich die selbe Schriftart die auf den Kanalnamen sind in der Text Eingabe einfĂŒgen, wĂŒrde es erkennen dennoch nicht mit der normalen Schriftart. :/
Ja welcher denn bestimmt das es das Attribute nicht gibt 
ka
@tawdry leaf sowas skommt beiir raus
``<!doctype html>
<html class="no-js" lang="en" data-content_root="./">
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="#" />
<link rel="shortcut icon" href="_static/favicon.ico"/><!-- Generated with Sphinx 7.2.6 and Furo 2023.09.10 --><title>Search - <h3 align='center'>0.5.1</h3></title><link rel="stylesheet" type="text/css" href="_static/pygments.css?v=a746c00c" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=135e06be" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
<link rel="stylesheet" type="text/css" href="/_/static/css/badge_only.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=36a5483c" />
<style>
body {
--color-code-background: #f8f8f8;
--color-code-foreground: black;
}
@media not print {
body[data-theme="dark"] {
--color-code-background: #202020;
--color-code-foreground: #d0d0d0;
}
@media (prefers-color-scheme: dark) {
body:not([data-theme="light"]) {
--color-code-background: #202020;
--color-code-foreground: #d0d0d0;
}
}
}
</style>
<!-- RTD Extra Head -->
<link rel="stylesheet" href="/_/static/css/readthedocs-doc-embed.css" type="text/css" />
<script type="application/json" id="READTHEDOCS_DATA">{"ad_free": false, "api_host": "https://readthedocs.org", "builder": "sphinx", "canonical_url": null, "docroot": "/docs/", "features": {"docsearch_disabled": false}, "global_analytics_code": "UA-17997319-1", "language": "en", "page": "search", "programming_language": "words", "project": "ezycord", "proxied_api_host": "/_", "source_suffix": ".rst", "subprojects": {}, "theme": "furo", "user_analytics_code": "", "version": "latest"}</script>
<!--
Using this variab``
wieso html
wtf
ka
stark
also nich mal alles umschreiben
idk was du meinst gehst du schlafen jz?
Ne warum
@tawdry leaf jz sagt er
Es wurde nix mit add_ready_info gefunden
import ezycord
import discord
import requests
from discord import slash_command
from utils import *
class Docs(ezycord.Cog):
@slash_command()
async def ezycord(
self,
ctx,
docs: str
):
api_url = "https://ezycord.readthedocs.io/en/latest/search.html?q={}"
formatted_api_url = api_url.format(docs)
try:
response = requests.get(formatted_api_url)
response.raise_for_status()
docs = response.json()
for result in docs.get("result", []):
result_text = result.get("content", "").strip()
if result_text:
embed = discord.Embed(
title="EzyCord",
description=f"``{result_text}``",
color=successcolor
)
await ctx.respond(embed=embed)
except requests.RequestException as e:
await ctx.respond(f"Es wurde nix mit ``{docs}`` gefunden")
def setup(bot):
bot.add_cog(Docs(bot))
@tawdry leaf du idiot
wie wÀre es mal mit json ausrpinten
keine lus#
genauso wie zu snapen đ
@tawdry leaf
{'count': 0, 'next': None, 'previous': None, 'projects': [], 'query': 'add_ready_info', 'results': []}
import ezycord
import discord
import requests
from discord import slash_command
from utils import *
class Docs(ezycord.Cog):
@slash_command()
async def ezycord(
self,
ctx,
docs: str
):
api_url = f"https://readthedocs.org/api/v3/search/?project=ezycord&q={docs}"
formatted_api_url = api_url.format(docs)
try:
response = requests.get(formatted_api_url)
response.raise_for_status()
docs = response.json()
print(docs)
for result in docs.get("result", []):
result_text = result.get("content", "").strip()
if result_text:
embed = discord.Embed(
title="EzyCord",
description=f"``{result_text}``",
color=successcolor
)
await ctx.respond(embed=embed)
except requests.RequestException as e:
await ctx.respond(f"Es wurde nix mit ``{docs}`` gefunden")
def setup(bot):
bot.add_cog(Docs(bot))
fehlt da nach ezycord das /
ich schaue denke film
verstehe nd wo du suchst xD
was meinst du
ich schlafe
nnenene
Was könnte es sein, dass die ganze Zeit mit Minus rechnet? ```py
@stern.command(description="holt dir eine Belohnung ab")
# @commands.cooldown(1, 86400, commands.BucketType.user)
async def daily(self, ctx):
user_id = ctx.user.id
current_streak = await db.get_streak(user_id)
current_stern = random.randint(1, 60)
if current_stern > 0 and await db.check_streak(user_id):
current_stern += 1
await db.update_streak(user_id, current_stern)
message = f"TĂ€gliche stern\nDu hast dir **{current_stern}** stern abgeholt! Sehr schmackhaft\n\nStreak: {current_streak} Tage + Streak beibehalten"
else:
await db.reset_streak(user_id)
current_streak = 1
await db.update_streak(user_id, current_streak)
message = f"TĂ€gliche stern\nDu hast dir **{current_stern}** stern abgeholt! Sehr schmackhaft\n\nStreak: {current_streak} Tag - Streak verloren"
total_stern = await db.get_stern(user_id)
await db.add_stern(user_id, current_stern)
await db.close()
embed = discord.Embed(
title="TĂ€gliche stern",
description=message,
color=discord.Color.yellow()
)
embed.add_field(name=f"Du hast nun {total_stern + current_stern} stern â", value=" ")
embed.set_thumbnail(url=ctx.author.display_avatar.url)
await ctx.respond(embed=embed)```
ezycord? 

was ist das xd
Dasselbe wie ezcord
bin verwirrt
Du kannst discord kopieren ist Open Source
aso
Ok
warum sagt er mir gib eine gĂŒltige zahl an? ich habe doch int drin
https://max1385.no-friends.xyz/G1Z2bIga.png
https://max1385.no-friends.xyz/HyCxiUqJ.png
fĂŒr IDs musst du string nutzen
einfach beim command debug_guilds=[] adden
debug_guilds musst man beim bot adden, bei einzelnen commands kann man guild_ids=[] schreiben
ah stimmt
Moin, habe eine Frage wie ich in Pycord eine !masskick @User/ID @User/ID @User/ID @User/ID ...
Programmieren kann LG đ
alles klar, danke euch
hab ich, Àndert aber nix^^
ist trotzdem ein globaler command
das mĂŒsstest du dann direkt in der command group festlegen, nicht in den group commands
hi nikos
verstehe, danke
wo hast du denn deine dns records?
machst du das mit cloudflare oder wer ist da dein provider?
was meiste du
ionos
und die nameserver hast du auch nicht verÀndert?
ne
Dann musst du dich bei ionos anmelden und dort den dns record hinzufĂŒgen
Kenne mich bei ionos nicht aus
hast du irgendwo die Möglichkeit DNS Records zu verwalten?
was hast du denn da alles eingestellt, hast du die möglichkeit noch einen eintrag hinzuzufĂŒgen?
oder war das schon die seite von eben
und bei wert readthedocs.io
cname
was jerzt
ich weiĂ ja nicht was da bei dir steht
kann keine gedanken lesen
Wie ich es oben schon gesagt habe
hostname
Zeigt auf
was hat du denn fĂŒr auswahl möglichkeiten?
nh Stunde mĂŒsste passen
fĂŒr was
Hinweis
Der TTL-Wert auf IONOS Domains betrĂ€gt bis zu einer Stunde fĂŒr alle A-, AAA-, MX-, TXT- und CNAME-EintrĂ€ge.
"Wenn Ihre DNS-TTL-Einstellung 12 Stunden betrÀgt, werden Ihre DNS-EintrÀge 12 Stunden lang zwischengespeichert, bevor sie ablaufen und die neuen Informationen wirksam werden."
mach einfach eine Stunde, solange dauert es eh wahrscheinlich bis Ionos das weitergibt
jerzt
ja huch
warum hast du einen spf TXT record als docs hostname
spf hat was mit mails zu tun
ka
wie kann ich löchen ?
Zeig mal den gesamten screen was da zu sehen ist
Meinte eigentlich hier
es ist so jerzt
was jerzt
Klappt es?
Also wird es von readthedocs erkannt?
Kann bis zu einer stunde dauern
ne
.
ah ok
kann mir einer Helfen Bei meiner Subdomain ?
was hast du denn fĂŒr ein problem?
Ich habe meine website auf meinem server und meine domain bei Ionos
und ich weiĂ net weiter
was hast du denn fĂŒr eine website auf deinem server?
einfach die html datein oder einen webserver?
Html
Dann brauchst du noch einen Webserver
hdym
achso, das ist ja ein pterodactyl server und kein eigener
Was ist denn da fĂŒr ein egg drauf?
doch der server ist bei strato
also eine VPS / KVM?
nikos kommt ich e-meil
?
KVM
dann brauchst du halt einen webserver
kann bis 1 stunde dauern oder
wie mache ich das ??
was denn?
magst du grade mal talk kommen, da ist das entspannter zu erklÀren
ja
das was wir gereden haben
Moinooo, ich will einen Logchannel machen. Hier ist ein kleiner Teil:
Ich bekomme keinen Error, nur die Nachricht wird nicht gepostet. Ich nutze Py-cord und EzCord...
# LOG CHANNEL --- DELETE MESSAGE
@commands.Cog.listener()
async def on_message_delete(self, message):
embed = discord.Embed(
title="âNachricht wurde gelöscht.",
description="",
color=discord.Color.red(),
timestamp=discord.utils.utcnow())
embed.add_field(name="Nachricht:", value=f"``{message.content}``", inline=False)
embed.add_field(name="Verfasser:", value=f"``{message.author.mention}``", inline=False)
embed.add_field(name="Ursprung:", value=f"``{message.channel.mention}``", inline=False)
embed.set_footer(text=f"Keesus's Zentrale :rocket:", icon_url="https://cdn.discordapp.com/attachments/1176981686827896964/1181701861787578451/SERVERICON.png")
z = self.bot.fetch_channel(LOGCHANNEL)
await z.send(embed=embed)
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 dir evtl mal das hier an
@solid ingot hab mir das Video nun angeschaut, aber leider hat nix geholfen.
schade, wird das event denn ausgefĂŒhrt?
Ja
in dem fall mĂŒsstest du eigentlich einen error bekommen. hast du irgendeinen error handler?
wenn das fetch_channel ausgefĂŒhrt wird und kein error kommt, musst du sich erstmal darum kĂŒmmern dass dir error meldungen richtig angezeigt werden
wie macht man so einen arror handler? hast du ein tutorial dazu gemacht?
Mein Discord Server
âș https://discord.gg/zfvbjTEzv6
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.dev/
Guide âș https://guide.pycord.dev/i...
danke sehr
aber auch ohne error handler solltest du eigentlich einen error angezeigt bekommen
[ERROR] Error in event on_message_delete
Traceback (most recent call last):
File "C:\Users\Kai\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 399, in _run_event
await coro(*args, **kwargs)
File "c:\Users\Kai\Desktop\BullenscheiĂe\DISCORDSERVER\FlauschiBot\cogs\loginfos.py", line 26, in on_message_delete
await z.send(embed=embed)
TypeError: coroutine.send() takes no keyword arguments
C:\Users\Kai\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py:404: RuntimeWarning: coroutine 'Client.fetch_channel' was never awaited
await self.on_error(event_name, *args, **kwargs)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
genau, sehr gut
bei fetch_channel fehlt ein await
z = await self.bot.fetch_channel(LOGCHANNEL)
z = await self.bot.fetch_channel(LOGCHANNEL)
await z.send(embed=embed)
Also so? Ist das await in der anderen Zeile dann kein Problem?
nein
bekomme immernoch den gleichen error
dann hast du deinen bot nicht neu gestartet
TypeError: LogInfos.on_message_edit() missing 1 required positional argument: 'after'
what does that mean
# LOG CHANNEL --- DELETE EDIT
@commands.Cog.listener()
async def on_message_edit(self, message, before, after):
embed = discord.Embed(
title="âNachricht wurde bearbeitet.",
description="Ein User hat eine Nachricht bearbeitet.",
color=discord.Color.blue(),
timestamp=discord.utils.utcnow())
embed.set_thumbnail(url=message.author.avatar.url)
embed.add_field(name="Bevor:", value=f"``=`{before.message}``=`", inline=False)
embed.add_field(name="Danach:", value=f"`=``{after.message}``=`", inline=False)
embed.add_field(name="Verfasser:", value=f"{message.author.mention}", inline=False)
embed.add_field(name="Ursprung:", value=f"{message.channel.mention}", inline=False)
embed.set_footer(text=f"Keesus's Zentrale :rocket:", icon_url="https://cdn.discordapp.com/attachments/1176981686827896964/1181701861787578451/SERVERICON.png")
z = await self.bot.fetch_channel(LOGCHANNEL)
await z.send(embed=embed)
btw. beim on_message_edit gibt es nur before und after https://docs.pycord.dev/en/stable/api/events.html#discord.on_message_edit
This section outlines the different types of events listened by Client. There are two ways to register an event, the first way is through the use of Client.event(). The second way is through subcla...
kein message?
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(setupview(self.bot, self.listener))
def listener(self, message):
with open('tempmail.json', 'r', encoding='utf-8') as f:
data = json.load(f)
if message['to']['address'] in data:
channel = self.bot.get_channel(data[message['to']['address']]['channel_id'])
embed = discord.Embed(
title=f"New email from {message['from']['name']} ({message['from']['address']})",
description=f"# Subject: {message['subject']}\n\n{message['text'] if message['text'] else message['html']}",
color=discord.Colour.embed_background()
)
asyncio.run_coroutine_threadsafe(channel.send(embed=embed), self.bot.loop)
print(f"New email from {message['from']['name']} ({message['from']['address']}) with subject {message['subject']}")
asyncio.run_coroutine_threadsafe(self.delete_mail(), self.bot.loop)
else:
print(f"No channel found for email address {message['to']['address']}")
nope, after ist nachdem die msg bearbeitet wurde und before bevor die msg bearbeitet wurde
schau einfach in die docs da steht alles
Wie mache ich es dann in dem Fall, wenn ich den Ursprung (also channel.mention) haben will, finde dazu nix in den docs
Wieso wird dieser error hier angezeigt und nicht die Mail die empfangen werden sollte?
after.channel.mention
steht auch so in den docs btw
wo genau wenn ich fragen darf, bin glaube blind? 
oh man ich bin ehrlich blind...
kuss, danke dir!
Dann auf channel
und dann mention bzw textChannel, musst halt gucken ob es den type ĂŒberall gibt
Kein Ding haha
TypeError: list indices must be integers or slices, not str
Kann mir einer erklĂ€ren was das heiĂt?
message['to'] scheint eine liste zu sein. Und bei einer Liste kannst du nicht den index 'adress' angeben. Du musst dort einen integer oder slice angeben. Z.B. message['to'][0]
# LOG CHANNEL --- DELETE EDIT
@commands.Cog.listener()
async def on_message_edit(self, before, after):
embed = discord.Embed(
title=":exclamation:Nachricht wurde bearbeitet.",
description="Ein User hat eine Nachricht bearbeitet.",
color=COLOR_BLUE(),
timestamp=discord.utils.utcnow())
embed.add_field(name="Bevor:", value=f"``{before.message.content}``", inline=False)
embed.add_field(name="Danach:", value=f"``{after.message.content}``", inline=False)
embed.add_field(name="Verfasser:", value=f"{after.author.mention}", inline=False)
embed.add_field(name="Ursprung:", value=f"{after.channel.mention}", inline=False)
embed.set_footer(text="Keesus's Zentrale :rocket:", icon_url="https://cdn.discordapp.com/attachments/1176981686827896964/1181701861787578451/SERVERICON.png")
z = await self.bot.fetch_channel(LOGCHANNEL)
await z.send(embed=embed)
???
Traceback (most recent call last):
File "C:\Users\Kai\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 399, in _run_event
await coro(*args, **kwargs)
File "c:\Users\Kai\Desktop\BullenscheiĂe\DISCORDSERVER\FlauschiBot\cogs\loginfos.py", line 45, in on_message_edit
embed.add_field(name="Bevor:", value=f"``{before.message.content}``", inline=False)
AttributeError: 'Message' object has no attribute 'message'
before ist schon eine Message, deswegen kannst du nicht before.message schreiben
schreib stattdessen direkt before.content
Jo hier gibt es halt kein message Attribut
Deswegen kommt das natĂŒrlich
was muss man noch mal fĂŒr einen öffentliches Ticketsystem alles in die Datenbank abspeichern?
ServerID, ChannelID, CategoryID, TeamRoleID
Sowas halt
wie kann ich das hier mit nem followup machen?
@discord.ui.button(label="Comment this feedback", style=discord.ButtonStyle.blurple, custom_id="comment-button")
async def button_callback2(self, button, interaction):
for child in self.children:
child.disabled = True
await interaction.response.edit_message(view=self)
await interaction.response.send_modal(NoteModal(title="Comemnt this feedback"))
aktueller fehler:
Ignoring exception in view <ConfirmView timeout=None children=2> for item <Button style=<ButtonStyle.primary: 1> url=None disabled=True label='Comment this feedback' emoji=None row=None>:
Traceback (most recent call last):
File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\view.py", line 414, in _scheduled_task
await item.callback(interaction)
File "c:\Users\Max\PycharmProjects\Vysion\cogs\feedback.py", line 72, in button_callback2
await interaction.response.send_modal(NoteModal(title="Comemnt this feedback"))
File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\interactions.py", line 1049, in send_modal
raise InteractionResponded(self._parent)
discord.errors.InteractionResponded: This interaction has already been responded to before
@tough thicket
ah warte du meinst mit dem modal
probier mal zuerst das modal zu senden und dann ein followup zu machen
so wĂŒrde es grade auch gehen, kommt darauf an, wie ich den rest mache, sonst muss ich es so machen wie du meinst
MailTm API funktioniert nicht (listener
)
MailTM: https://pypi.org/project/MailTm/
Error:
[ERROR] Error while executing /ticket setup
Traceback (most recent call last):
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "d:\Projects\keks\cogs\ticket.py", line 48, in setup
await db.set_config(server_id, category_id, ticket_channel_id, log_channel_id, closed_tickets_channel_id)
File "d:\Projects\keks\cogs\ticket.py", line 30, in set_config
await cursor.execute(
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\cloudcord\sql.py", line 322, in execute
return await self.exec(sql, *args, end=end, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\cloudcord\sql.py", line 314, in exec
raise e
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\cloudcord\sql.py", line 309, in exec
cursor = await db.execute(sql, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 184, in execute
cursor = await self._execute(self._conn.execute, sql, parameters)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 129, in _execute
return await future
^^^^^^^^^^^^
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 102, in run
result = function()
^^^^^^^^^^
sqlite3.OperationalError: no such table: config```
async def setup(self):
await self.execute(
"""CREATE TABLE IF NOT EXISTS tickets(
ticket_id INTEGER PRIMARY KEY,
user_id INTEGER,
server_id INTEGER,
channel_id INTEGER,
category_id INTEGER,
team_role_id INTEGER
)"""
)
async def add_ticket(self, user_id, server_id, channel_id, category_id, team_role_id):
async with self.start() as cursor:
await cursor.execute(
"INSERT OR REPLACE INTO tickets (user_id, server_id, channel_id, category_id, team_role_id) VALUES (?, ?, ?, ?, ?)",
(user_id, server_id, channel_id, category_id, team_role_id)
)
async def set_config(self, server_id, category_id, ticket_channel_id, log_channel_id, closed_tickets_channel_id):
async with self.start() as cursor:
await cursor.execute(
"INSERT OR REPLACE INTO config (server_id, category_id, ticket_channel_id, log_channel_id, closed_tickets_channel_id) VALUES (?, ?, ?, ?, ?)",
(server_id, category_id, ticket_channel_id, log_channel_id, closed_tickets_channel_id)
)
db = TicketDB()
class Ticket(cloudcord.Cog, emoji="đ«"):
ticket = SlashCommandGroup("ticket", description="Ticket commands")
@ticket.command()
async def setup(self, ctx, category: discord.CategoryChannel, ticket_channel: discord.TextChannel, log_channel: discord.TextChannel, closed_tickets_channel: discord.TextChannel):
server_id = ctx.guild.id
category_id = category.id
ticket_channel_id = ticket_channel.id
log_channel_id = log_channel.id
closed_tickets_channel_id = closed_tickets_channel.id
await db.set_config(server_id, category_id, ticket_channel_id, log_channel_id, closed_tickets_channel_id)
await ctx.respond("Ticket-Konfiguration wurde erfolgreich festgelegt!")```
steht da doch too many requests du wurdest warscheinlich geratelimited
du hast keine tabele config
auch nicht im code
Wie mache ich das alle 60 Sekunden das hier ausgefĂŒhrt wird:
def listener(self, message):
with open('tempmail.json', 'r', encoding='utf-8') as f:
data = json.load(f)
if message['address'] in data:
channel = self.bot.get_channel(data[message['to']]['channel_id'])
embed = discord.Embed(title="New email", description=f"Subject: {message['subject']}\nContent: {message['text'] if message['text'] else message['html']}", color=discord.Colour.embed_background())
channel.send(embed=embed)
nh tak wurde ich behaupten
danke
sag bescheid wenn du mehr hilfe brauchst
Brauche Hilfe
wobei
kann im loop nichts awaiten
ah ne jz gehts
/home/container/.local/lib/python3.11/site-packages/mailtm/message.py:33: RuntimeWarning: coroutine 'Loop.__call__' was never awaited
self.listener(message)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
@tasks.loop(seconds=60)
async def listener(self, message):
with open('tempmail.json', 'r', encoding='utf-8') as f:
data = json.load(f)
if message['address'] in data:
channel = await self.bot.get_channel(data[message['to']]['channel_id'])
embed = discord.Embed(title="New email", description=f"Subject: {message['subject']}\nContent: {message['text'] if message['text'] else message['html']}", color=discord.Colour.embed_background())
await channel.send(embed=embed)
hab doch alles awaited
class setupview(discord.ui.View):
def __init__(self, bot, listener):
super().__init__(timeout=None)
self.bot = bot
self.listener = listener
@discord.ui.button(label="Create temp mail", style=discord.ButtonStyle.primary, emoji="â", custom_id="keks", row=2)
async def button_callback1(self, button, interaction):
current_GMT = time.gmtime()
time_stamp = calendar.timegm(current_GMT)
self.email = Email()
self.email.register()
self.email.start(self.listener)
category = self.bot.get_channel(1189704833607938060)
channel = await category.create_text_channel(self.email.address)
with open('tempmail.json', 'r', encoding='utf-8') as f:
data = json.load(f)
data[self.email.address] = {
"address": self.email.address,
"channel_id": channel.id,
"time_created": time_stamp
}
with open('tempmail.json', 'w', encoding='utf-8') as f:
json.dump(data, f, indent=4)
embed = discord.Embed(title="Temp mail created", description=f"Your temp mail is {self.email.address}", color=discord.Colour.embed_background())
await interaction.response.send_message(embed=embed, ephemeral=True)
await channel.send(embed=embed)
was geht nicht ?
Mail empfangen
/home/container/.local/lib/python3.11/site-packages/mailtm/message.py:33: RuntimeWarning: coroutine 'Loop.__call__' was never awaited
self.listener(message)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
eror ?
oben hab eben geschickt
@discord.ui.button(label="Create temp mail", style=discord.ButtonStyle.primary, emoji="â", custom_id="keks", row=2)
async def button_callback1(self, button, interaction):
current_GMT = time.gmtime()
time_stamp = calendar.timegm(current_GMT)
self.email = Email()
self.email.register()
self.email.start(self.listener)
category = self.bot.get_channel(1189704833607938060)
channel = await category.create_text_channel(self.email.address)
with open('tempmail.json', 'r', encoding='utf-8') as f:
data = json.load(f)
data[self.email.address] = {
"address": self.email.address,
"channel_id": channel.id,
"time_created": time_stamp
}
with open('tempmail.json', 'w', encoding='utf-8') as f:
json.dump(data, f, indent=4)
embed = discord.Embed(title="Temp mail created", description=f"Your temp mail is {self.email.address}", color=discord.Colour.embed_background())
await interaction.response.send_message(embed=embed, ephemeral=True)
await self.listener(message)
await channel.send(embed=embed)
test so
Moment
LĂŒcken sind egal?
huh
sry verschreibenb
wie meinst du lĂŒcken, bei der class?
Ja LĂŒcken bei der class
makier mal denn button und die classe
und mach shift und tab
das muss alles eins nach links
einrĂŒckung ist richtig
Das hier ist der eigentliche Grund weshalb ich hier bin
/home/container/.local/lib/python3.11/site-packages/mailtm/message.py:33: RuntimeWarning: coroutine 'Loop.__call__' was never awaited
self.listener(message)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
await self.listener(data[self.email.address])
wird ausprobiert
Ignoring exception in view <setupview timeout=None children=1> for item <Button style=<ButtonStyle.primary: 1> url=None disabled=False label='Create temp mail' emoji=<PartialEmoji animated=False name='â' id=None> row=2>:
Traceback (most recent call last):
File "/home/container/.local/lib/python3.11/site-packages/discord/ui/view.py", line 414, in _scheduled_task
await item.callback(interaction)
File "/home/container/cogs/tempmail.py", line 69, in button_callback1
await self.listener(data[self.email.address])
File "/home/container/.local/lib/python3.11/site-packages/discord/ext/tasks/__init__.py", line 303, in __call__
return await self.coro(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/container/cogs/tempmail.py", line 29, in listener
channel = self.bot.get_channel(data[message['to']]['channel_id'])
~~~~~~~^^^^^^
KeyError: 'to'
@lucid furnace error nach error... vorhin ging das noch
hmm
@commands.Cog.listener()
def listener(self, message):
with open('tempmail.json', 'r', encoding='utf-8') as f:
data = json.load(f)
if message['address'] in data:
channel = self.bot.get_channel(data[message['address']]['channel_id'])
embed = discord.Embed(title="New email", description=f"Subject: {message['subject']}\nContent: {message['text'] if message['text'] else message['html']}", color=discord.Colour.embed_background())
await channel.send(embed=embed)
Naja jetzt ist es doch kein task loop mehr werde ich wieder geratelimited?
guck gleich wenn ich wieder zuhasuse bin
đ
mache jerzt wieder
Hey, ist es möglich einzelne User vom Cooldown auszuschlieĂen? Mein Cooldown sieht aktuell so aus
@commands.cooldown(1, 30, commands.BucketType.user)
@commands.cooldown(1, 30, commands.BucketType.user, exempt_users=[
user1,
user2,
user3,
])``` Ich denke, das kannst du zum Beispiel aber idk
Das funktioniert leider nicht, trotzdem danke
jungs
@tasks.loop(seconds=60)
async def listener(self, message):
with open("configs/tempmail.json", "r", encoding="utf-8") as f:
data = json.load(f)
if message["address"] in data:
channel = self.bot.get_channel(
data.get(message.get("to", ""), {}).get("channel_id")
)
if channel:
embed = discord.Embed(
title="New email",
description=f"Subject: {message['subject']}\nContent: {message['text'] if message['text'] else message['html']}",
color=discord.Colour.embed_background(),
)
await channel.send(embed=embed)
laut error hab ich vergessen irgendwas zu awaiten
wie startest du diesen task ding
startest du die task auch
ich glaube ja weil er ja ein fehler dafĂŒr kriegt
weiĂ aber selber nicht ganz
stimmt
def is_not_excluded_user(
excluded_users = [123456789012345678, "ExcludedUser#1234"] # FĂŒge die IDs oder Namen der ausgeschlossenen Benutzer hinzu.
return ctx.author.id not in excluded_users
@commands.cooldown(1, 30, commands.BucketType.user)
@commands.check(is_not_excluded_user)
Also irgendwie sieht das aus als hÀtte ChatGPT das generiert xD Aber ich habe nen weg gefunden wie es funktioniert
def customCooldown(ctx):
if ctx.author.id in cooldown_bypass:
return None
else:
return commands.Cooldown(1, 30)
class Economy(ezcord.Cog):
economy = SlashCommandGroup("economy")
@economy.command(
description="Beg for some money",
description_localizations={"de": "Bettele um ein wenig Geld"}
)
@commands.dynamic_cooldown(customCooldown, commands.BucketType.user)
async def beg(self, ctx):
...
naja eig das selbe wie meins abr so gehts auch
Kennt wer eine gute api fĂŒr temp mail?
Geht das, dass man bestimmte Slash Commands, welche bspw. nur fĂŒr den Bot Owner gĂŒltig sind, fĂŒr andere User ausblenden lassen kann? Ich meine jetzt auĂer diesen Discord Tab in den Servereinstellungen.
Ich glaube ich habe das mal auf einem Server gelesen, dass das möglich wÀre, aber nicht mit Pycord oder so.
Vielleicht weiĂ dort ja jemand mehr, oder ich frage direkt bei Pycord. đ
Es gibt die möglichkeit @discord.default_permissions() zu benutzen. Ich glaube das blendet die commands aus
@slash_command()
@discord.default_permissions(administrator=True)
async def command(self, ctx):
await ctx.respond(âDies ist ein Commandâ)
So ungefÀhr
was hast du gegen die servereinstellungen?
ich bin grad etwas lost warum werden die emoji nicht in der db gespeichert
import discord
from discord.ext import commands
import ezcord
from discord.commands import slash_command, Option
class emojiDB(ezcord.DBHandler):
def __init__(self):
super().__init__("emoji.db")
async def setup(self):
await self.execute(
"""CREATE TABLE IF NOT EXISTS users(
user_id INTEGER PRIMARY KEY,
emoji_1 TEXT,
emoji_2 TEXT,
emoji_3 TEXT
)"""
)
async def get_emoji_1(self, user_id, emoji_1):
return await self.one("SELECT emoji_1 FROM users WHERE user_id = ?", user_id, emoji_1) or ""
async def get_emoji_2(self, user_id, emoji_2):
return await self.one("SELECT emoji_2 FROM users WHERE user_id = ?", user_id, emoji_2) or ""
async def get_emoji_3(self, user_id, emoji_1):
return await self.one("SELECT emoji_3 FROM users WHERE user_id = ?", user_id, emoji_1) or ""
async def set_emoji_1(self, user_id, emoji_1):
await self.execute("UPDATE users SET emoji_1 = ? WHERE user_id = ?", (emoji_1, user_id))
async def set_emoji_2(self, user_id, emoji_2):
await self.execute("UPDATE users SET emoji_2 = ? WHERE user_id = ?", (emoji_2, user_id))
async def set_emoji_3(self, user_id, emoji_3):
await self.execute("UPDATE users SET emoji_3 = ? WHERE user_id = ?", (emoji_3, user_id))
db = emojiDB()
class emoji(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(description="Setze bis zu 3 Emoji")
@discord.ext.commands.guild_only()
@commands.cooldown(1, 10, commands.BucketType.user)
async def emoji(self, ctx, emoji_1: Option(str, "Das erste Emoji", required=True), emoji_2: Option(str, "Das zweite Emoji", required=True), emoji_3: Option(str, "Das dritte Emoji", required=True)):
if not ctx.author.guild_permissions.administrator:
ctx.command.reset_cooldown(ctx)
embed = discord.Embed(
title="Fehler",
description="Du benötigst die Berechtigung `Administrator` um diesen Befehl auszufĂŒhren!",
color=discord.Color.red()
)
await ctx.respond(embed=embed, ephemeral=True)
return
if emoji_1 == emoji_2 or emoji_1 == emoji_3 or emoji_2 == emoji_3:
ctx.command.reset_cooldown(ctx)
embed = discord.Embed(
title="Fehler",
description="Du kannst keine doppelten Emojis verwenden!",
color=discord.Color.red()
)
await ctx.respond(embed=embed, ephemeral=True)
return
print(f"Emojis: {emoji_1}, {emoji_2}, {emoji_3}")
embed = discord.Embed(
title="Erfolgreich",
description="Deine Emojis wurden erfolgreich gesetzt!",
color=discord.Color.green()
)
await ctx.respond(embed=embed, ephemeral=True)
user_id = ctx.author.id
await db.set_emoji_1(user_id, emoji_1)
await db.set_emoji_2(user_id, emoji_2)
await db.set_emoji_3(user_id, emoji_3)
def setup(bot):
bot.add_cog(emoji(bot))```
um etwas in der DB zu speichern brauchst du INSERT, du hast aktuell nur UPDATE
Asoo oh
Das erklÀrt es
also es geht aber bei emoji 1 und 2 steht null drinnen nur beu 3 steht der emoji drinnen
dann hast du wohl nur ein emoji eingefĂŒgt
user_id = ctx.author.id
await db.set_emoji_1(user_id, emoji_1)
await db.set_emoji_2(user_id, emoji_2)
await db.set_emoji_3(user_id, emoji_3)``` hier sind 3 und der db oben (set) ist der gleich wie bei emoji3
es werden auch 3 geprintet
hast du alle 3 zu insert geÀndert?
Ja
du hast user_id als primary key festgelegt, das heiĂt es ann immer nur einen eintrag mit dieser user_id geben
entweder fĂŒgst du alle 3 gleichzeitig ein, oder du benutzt erst ein insert und dann updates
Traceback (most recent call last):
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
await coro(*args, **kwargs)
File "d:\Projects\keks\cogs\test.py", line 12, in on_ready
self.bot.add_view(AvatarView(avatar_url))
^^^^^^^^^^^^^^^^^^^^^^
File "d:\Projects\keks\cogs\test.py", line 38, in __init__
@discord.ui.button(label="PNG", style=discord.ButtonStyle.link, url=f"{avatar_url}.png")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: button() got an unexpected keyword argument 'url'```
import discord
from discord.ext import commands
import cloudcord
class Avatar(cloudcord.Cog):
def __init__(self, bot):
self.bot = bot
@commands.Cog.listener()
async def on_ready(self):
# Fetching the bot's avatar URL since avatar_url is not defined yet
avatar_url = self.bot.user.display_avatar.url
self.bot.add_view(AvatarView(avatar_url))
@commands.slash_command(name='avatar', description='Fetch a user\'s avatar from the server')
async def avatar(self, ctx, *, user: discord.User = None, id: int = None):
if user is None and id is None:
user = ctx.author
avatar_url = user.display_avatar.url
embed = discord.Embed(
color=discord.Color.dark_orange(),
title=f'{user.display_name}\'s Avatar',
url=avatar_url,
timestamp=ctx.message.created_at,
footer=discord.EmbedFooter(text=f"User ID: {user.id}")
)
embed.set_image(url=avatar_url)
await ctx.respond(embed=embed, view=AvatarView(avatar_url))
def setup(bot):
bot.add_cog(Avatar(bot))
class AvatarView(discord.ui.View):
def __init__(self, avatar_url):
super().__init__(timeout=None)
@discord.ui.button(label="PNG", style=discord.ButtonStyle.link, url=f"{avatar_url}.png")
async def button_callback1(self, button, interaction):
pass
@discord.ui.button(label="JPG", style=discord.ButtonStyle.link, url=f"{avatar_url}.jpg")
async def button_callback2(self, button, interaction):
pass
@discord.ui.button(label="JPEG", style=discord.ButtonStyle.link, url=f"{avatar_url}.jpeg")
async def button_callback3(self, button, interaction):
pass # Your code here
@discord.ui.button(label="GIF", style=discord.ButtonStyle.link, url=f"{avatar_url}.gif")
async def button_callback4(self, button, interaction):
pass
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...
schau dir hier den abschnitt zu URL buttons an
wie kann ich am besten abfragen ob der emoji aus dem server ist bei mir klappt es irgendwie nicht
guild = ctx.guild
emoji_1 = discord.utils.get(guild.emojis, name=f"{emoji_1}")
emoji_2 = discord.utils.get(guild.emojis, name=f"{emoji_2}")
emoji_3 = discord.utils.get(guild.emojis, name=f"{emoji_3}")
if not emoji_1 or not emoji_2 or not emoji_3:
embed = discord.Embed(
title="Fehler",
description="Du musst die Emojis auf dem Server haben!",
color=discord.Color.red()
)
await ctx.respond(embed=embed, ephemeral=True)
return```
guild = ctx.guild
emoji_1_objekt = discord.utils.get(guild.emojis, name=f"{emoji_1}")
emoji_2_objekt = discord.utils.get(guild.emojis, name=f"{emoji_2}")
emoji_3_objekt = discord.utils.get(guild.emojis, name=f"{emoji_3}")
if not emoji_1_objekt or not emoji_2_objekt or not emoji_3_objekt:
embed = discord.Embed(
title="Fehler",
description="Du musst die Emojis auf dem Server haben!",
color=discord.Color.red()
)
await ctx.respond(embed=embed, ephemeral=True)
return
Probier mal so
yes
Geht ?
Sag ich gleich
Fehler
Du musst die Emojis auf dem Server haben!
es klappt bei beiden nicht also wenn ich emojis von meinem server nehme und wenn ich welche von einem anderen nehme da kommt immer Fehler
Mhm und deine Emoji Ăbergabe also deine nicht Objekt Variablen klappen?
Was meinst du grade genau
Wie kann ich das so machen ob geprĂŒft wird, ob das ist ein Bot ist oder ob es sich um einen eigenen Benutzer handelt?
Probier mal dein Emoji 1 2 &3 zu Printen
Ich glaube so weil habe auch sowas Àhnliches in meinem Code
if ctx.author.bot or member == ctx.author:
return await ctx.respond("Deine Nachricht")
None
None
None
Alr dann schick mal bitte wie du die 3 Emojis kriegst also wie die Variable zu Stande kommt
@slash_command(description="Setze bis zu 3 Emoji")
@discord.ext.commands.guild_only()
@commands.cooldown(1, 10, commands.BucketType.user)
async def emoji(self, ctx, emoji_1: Option(str, "Das erste Emoji", required=True),
emoji_2: Option(str, "Das zweite Emoji", required=True),
emoji_3: Option(str, "Das dritte Emoji", required=True)):
if not ctx.author.guild_permissions.administrator:
ctx.command.reset_cooldown(ctx)
embed = discord.Embed(
title="Fehler",
description="Du benötigst die Berechtigung `Administrator` um diesen Befehl auszufĂŒhren!",
color=discord.Color.red()
)
await ctx.respond(embed=embed, ephemeral=True)
return
guild = ctx.guild
emoji_1_objekt = discord.utils.get(guild.emojis, name=f"{emoji_1}")
print(emoji_1_objekt)
emoji_2_objekt = discord.utils.get(guild.emojis, name=f"{emoji_2}")
print(emoji_2_objekt)
emoji_3_objekt = discord.utils.get(guild.emojis, name=f"{emoji_3}")
print(emoji_3_objekt)
if not emoji_1_objekt or not emoji_2_objekt or not emoji_3_objekt:
embed = discord.Embed(
title="Fehler",
description="Du musst die Emojis auf dem Server haben!",
color=discord.Color.red()
)
await ctx.respond(embed=embed, ephemeral=True)
return
if emoji_1 == emoji_2 or emoji_1 == emoji_3 or emoji_2 == emoji_3:
embed = discord.Embed(
title="Fehler",
description="Du kannst keine doppelten Emojis verwenden!",
color=discord.Color.red()
)
await ctx.respond(embed=embed, ephemeral=True)
return
print(f"Emojis: {emoji_1}, {emoji_2}, {emoji_3}")
embed = discord.Embed(
title="Erfolgreich",
description="Deine Emojis wurden erfolgreich gesetzt!",
color=discord.Color.green()
)
await ctx.respond(embed=embed, ephemeral=True)
user_id = ctx.author.id
await db.set_emojis(user_id, emoji_1, emoji_2, emoji_3)
Aber hast du im Cmd denn Emojis angebeben?
Ja gib mal welche an also z.B. 
Ok und wo ist jz der Fehler ?
Naja wenn ich Emojis von meinem Server nehme kommt das die nicht von meinem Server sind
Die 3 Emojis sind alle vl. meinem Server
Ach so oh Gott ja klar. Sorry!
Ok ich gucke es mir spÀter nochmal an. Ich bin am handy und das ist einfach alles horrible
Beim discord utils get ist der Name nicht gleich Emoji_3
Bei dem Beispiel wĂŒrde als Name nach dem ganzen <:staff:27272 Ding gesucht werden
Obwohl der Name nur âstaffâ wĂ€re
Du musst dir also was anderes ĂŒberlegen um die Emoji Objekte zu bekommen
[ERROR] Error while executing /stern steal
Traceback (most recent call last):
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "d:\Projects\keks\cogs\test.py", line 204, in steal
embed.set_thumbnail(url=ctx.author.display_avatar.url)
^^^^^
UnboundLocalError: cannot access local variable 'embed' where it is not associated with a value```
@stern.command(
description="Oh je, wenn du den Befehl befolgst, wirst du nie Freunde findenâč"
)
@commands.cooldown(1, 7200, commands.BucketType.user)
async def steal(self, ctx, member: Option(discord.Member)):
if member.id == ctx.author.id or member.id == ctx.bot.user.id:
embed = discord.Embed(
title="**Bruder warum**",
description="Bruder aber warum versuchst du, dich selbst oder den Bot zu bestehlen?",
color=discord.Color.red(),
)
embed.set_thumbnail(url=ctx.author.display_avatar.url)
await ctx.respond(embed=embed, ephemeral=True)
return
success_chance = random.randint(1, 30)
stolen_stern = random.randint(1, 100)
total_stern_stealer = await db.get_stern(ctx.author.id)
total_stern_victim = await db.get_stern(member.id)
await db.subtract_stern(member.id, stolen_stern)
await db.add_stern(ctx.author.id, stolen_stern)
embed_stealer = discord.Embed(
title="stern Diebstahl!",
description=f"Du hast {stolen_stern} â von {member.mention} geklaut!",
color=discord.Color.yellow(),
)
embed_stealer.set_footer(
text=f"Du hast nun {total_stern_stealer + stolen_stern} stern â"
)
embed_victim = discord.Embed(
title="stern Diebstahl!",
description=f"Deine stern wurde von {ctx.author.mention} gestohlen! đą",
color=discord.Color.red(),
)
embed_victim.set_footer(
text=f"Du hast nun {max(0, total_stern_victim - stolen_stern)} stern â"
)
embed.set_thumbnail(url=ctx.author.display_avatar.url)
await ctx.respond(embed=embed_stealer)
await ctx.respond(embed=embed_victim)```
Ich glaube du wolltest statt embed.set_thumbnail dann embed_stealer.set_thumbnail oder embed_victim.set_thumbnail weil das hast du da ja so genannt
Also denke das es so ist
das embed.set_thumbnail(url=ctx.author.display_avatar.url) am ende muss ĂŒber return
oder du machst einmal embed_stealer.set_thumbnail und einmal embed_victim.set_thumbnail
Wie kann ich ein wait_for mit einem button abbrechen?
Moin, ich will fuer meine Welcomemessage jeweils eine zufaellige Begruessung schreiben lassen. Also habe ich das hier gecodet:
def randomquotes(self, kategorie):
quotes = {
"random_quotes": [
"Ein wildes etwas ist aufgetaucht!",
"Ooooh, ein neuer User!",
"Willkommen, Willkommen! đ",
"Moin Chef!",
"Oh, wer ist das? Kennt man den?",
"Oooh, hiiii đđ",
"Jetzt steigt die Party, willkommen! đ„ł",
"Warte, war das geplant? Egal, hiiii!",
"HA, ein neuer User hehe.",
"Willkommen im Irrenhaus.",
"Moinooo, hoffentlich weiĂt du was du tust. đš"
]
}
randomquotes = random.choice(quotes[kategorie])
while randomquotes == self.zuletzt_verwendet.get(kategorie):
randomquotes = random.choice(quotes[kategorie])
self.zuletzt_verwendet[kategorie] = randomquotes
return randomquotes
# --- WELCOME MESSAGE
@bot.event # - CHANNEL
async def on_member_join(self, member):
randomquotes = self.randomquotes("random_quotes")
embed = discord.Embed(
title=f" {randomquotes}",
description=f"Willkommen **__{member.mention}__** in ``Keesus's Zentrale!`` đ\n"
f'> Schön, dass du da bist! Bitte lies dir in Ruhe die __đ©-Regeln__ durch.\n'
f'> Ansonsten wĂŒnschen wir dir einen tollen Aufenthalt! \n'
f'``Du brauchst Hilfe? = /help``',
color=discord.Color.random(),
timestamp=discord.utils.utcnow())
embed.set_thumbnail(url=member.avatar.url)
embed.set_footer(text="Keesus's Zentrale :rocket:", icon_url="https://cdn.discordapp.com/attachments/1176981686827896964/1181701861787578451/SERVERICON.png")
channel = bot.get_channel(WELCOMECHANNEL)
dm_embed = discord.Embed( # - DM
title=f":wave: Willkommen **__{member.mention}__**! :rocket:",
description=f"Ich bin Flauschi, dein persönlicher Freund & Helfer.\n"
f"Meine Aufgabe ist es, dein Erlebnis auf diesem Server zu verbessern.\n\n"
f"Damit du den Server in vollem Glanz siehst, brauchst du die *'Neuling'*-Rolle.\n"
f"Diese bekommst du in der Server-EinfĂŒhrung.",
color=discord.Color.green(),
timestamp=discord.utils.utcnow())
dm_embed.add_field(name="Solltest du weitere Fragen haben:", value="Mach einfach ``/help`` in #đ€ăąbot-commands! :eyes:")
dm_embed.set_image(url="https://cdn.discordapp.com/attachments/1176981686827896964/1186346046289354812/DM_PICTURE.png")
dm_embed.set_footer(text="Keesus's Zentrale :rocket:", icon_url="https://cdn.discordapp.com/attachments/1176981686827896964/1181701861787578451/SERVERICON.png")
await channel.send(embed=embed)
await member.send(embed=dm_embed)
Das problem wiederum ist, dass ich self, member zusammen nicht nutzen kann. Kann mir wer evtl helfen?
Warum wird da nicht Inhaber angezeigt
code?
if author.id == 1138761982317711443:
msg_embed.set_author(name=f'{author.name}âđĄ Moderator', url=f'https://discord.com/users/{author.id}', icon_url=icon)
elif self.is_global_member(message.author.id): # type: ignore # TODO: Implement this
msg_embed.set_author(name=f'{author.name} âđČ Inhaber', url=f'https://discord.com/users/{author.id}', icon_url=icon)
else:
msg_embed.set_author(name=author.name, url=f'https://discord.com/users/{author.id}', icon_url=icon)
icon_url = guild.icon.url or "https://i.giphy.com/media/xT1XGzYCdltvOd9r4k/source.gif"
msg_embed.set_thumbnail(url=icon_url)
chatgpt?
was meinst du
ist das von chatgpt
er dachte weil da bei elif am ende Text ist
kann mir wer helfen?
was meinst du genau mit zusammen nutzen?
naja member und self muessen jeweils an erster stelle stehen
deswegen ist ja meine frage ob es eine ander methode fuer gibt
sollte eig mit self, member gehen
also es ist keine cog sondern in der main
[ERROR] Error in event on_member_join
Traceback (most recent call last):
File "C:\Users\Kai\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 399, in _run_event
await coro(*args, **kwargs)
TypeError: Welcome.on_member_join() missing 1 required positional argument: 'member'
achso, dann musst du das self entfernen
Hey, ich bekommen diesen Error
Traceback (most recent call last):
File "C:\Users\lukas\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 399, in _run_event
await coro(*args, **kwargs)
File "D:\Dev\Pycharm\Nova-Bot\cogs\invite_logger.py", line 23, in on_guild_join
integrations = await guild.interactions()
^^^^^^^^^^^^^^^^^^
AttributeError: 'Guild' object has no attribute 'interactions'
wenn ich das hier ausfĂŒhre
class InviteLogger(ezcord.Cog):
@commands.Cog.listener()
async def on_guild_join(self, guild):
botUser = await self.bot.get_or_fetch_user(1157320015943569549)
channel = await discord.utils.get_or_fetch(self.bot, "channel", 1190440291635826710, default=None)
try:
integrations = await guild.interactions()
except discord.Forbidden:
embed = discord.Embed(
color=discord.Color.red(),
title=f"{info}ă»Joined Guild Error",
description=f"The bot joined a guild, but couldn't get the interactions for it."
)
channel.send(embed=embed)
return
for integration in integrations:
if isinstance(integration, discord.BotIntegration):
if integration.application.user == self.bot.user:
embed = discord.Embed(
color=discord.Color.green(),
title=f"{info}ă»Joined Guild",
description=f"**Inviter:**{integration.user.display_name}\n**Guild Name:** {guild.name}\n**Guild ID:** {guild.id}\n**Guild Owner:** {guild.owner.mention}\n**Guild Owner ID:** {guild.owner.id}\n**Guild Member Count:** {guild.member_count}\n**Guild Created At:** {guild.created_at}"
)
embed.set_footer(text=f"Guild Count: {len(self.bot.guilds)}")
embed.set_author(name="NovaBot", icon_url=botUser.avatar)
embed.set_thumbnail(url=guild.icon)
channel.send(embed=embed)
break
Nvm
Ich habe interactions geschrieben und nicht integrations
class afkDB(ezcord.DBHandler):
def __init__(self):
super().__init__("afk.db")
async def setup(self):
await self.execute(
"""CREATE TABLE IF NOT EXISTS AFK(
user_id INTEGER PRIMARY KEY,
afk TEXT,
datum TEXT
)"""
)``` warum erstellt er die db nicht
ich weiĂ nicht aber wĂŒrde sagen weil es groĂbuchstaben sind
Welche GroĂbuchstaben
wo wie
asoo
dein table
benutzt du die tabelle auch irgendwo?
ne ganz neu eig
du musst irgendwo sowas stehen haben wie db = afkDB()
wieso kommt da kein ezcord error
naja wenn man die Datenbank nirgends nutzt muss sie auch nicht erstellt werden
bin wieder dumm gehe auch jetzt schlafen
wenn ich wieder in den chat schreibe wird mein afk status entfernt da soll stehen wie lange ich afk war aber irgendwie bekomme ich das nicht hin kann sein das ich den falschen style nutze oder so
@commands.Cog.listener()
async def on_message(self, message):
afk_data = await db.get_afk(message.author.id)
if afk_data:
afk_status, afk_time = afk_data
try:
afk_time = datetime.fromisoformat(afk_time)
afk_time = afk_time.replace(tzinfo=pytz.utc).astimezone(
pytz.timezone('Europe/Berlin'))
new_time = discord.utils.format_dt(afk_time, "R")
except ValueError:
new_time = "Unbekannt"
embed = discord.Embed(
title="AFK",
description=f"Du bist nun nicht mehr Abwesend. Grund: `{afk_status}`\n"
f"Du warst {new_time} abwesend",
color=discord.Color.green()
)
await message.channel.send(embed=embed)
user_id = message.author.id
await db.remove_afk(user_id)```
wie auf dem foto da soll stehen `Du warst 56 Minuten abwesend` also ohne in
F nicht R
Schau ich morgen
Geht mit discord nicht
Weil das Zeitpunkte anzeigen und nicht zeitspannen
wie dann
Du mĂŒsstest selber was schreiben was dir eine Zeitspanne ausrechnet
dein async def ist auserdem falsch eingerĂŒckt keine ahnung ob es dir probleme geben wird
gibt es eine art on_application_command_create event, wo man bei jeder slash command ausfĂŒhrung ĂŒberprĂŒfen kann, ob der user auf einer blacklist ist, und keine commands mehr ausfĂŒhren darf?
ich habe eben nichts dazu in den docs gefunden.
achsoo, danke dir, versuche ich mal
soweit wie ich weiĂ nicht
Hi, ich wollte mal fragen ob es möglich ist alle Buttons von einer Nachricht zu disablen? Aktuell sieht mein Button Callback so aus
async def button_callback1(self, button, interaction):
r_int = random.randint(1, 100)
type = random.randint(1, 2)
botUser = await interaction.client.get_or_fetch_user(1157320015943569549)
if economyGetMoneyByID(interaction.user.id) >= 100:
if type == 1:
if interaction.locale == "de":
embed = discord.Embed(
color=discord.Color.blurple(),
title="Shop Rob",
description=f"Du raubst einen Laden aus und bekommst 1000 {cookie}! \n \nDu hast nun **{economyGetMoneyByID(interaction.user.id) + 1000}** {cookie}"
)
else:
embed = discord.Embed(
color=discord.Color.blurple(),
title="Shop Rob",
description=f"You robbed a shop and got 1000 {cookie}! \n \nYou now have **{economyGetMoneyByID(interaction.user.id) + 1000}** {cookie}"
)
embed.set_thumbnail(url=interaction.user.avatar)
embed.set_author(name="NovaBot", icon_url=botUser.avatar)
button.disabled = True
await interaction.response.edit_message(embed=embed, view=self)
^ @hot thunder
Danke 
type = random.randint(1, 2) nenn das lieber anders weil es gibt in python ja etwas was "type" ist und ich glaube da kann dann auch ein fehler irgendwann vieleicht auftreten
Jo
Ist es irgendwie möglich die Message ID von einer Nachricht zu bekommen die durch
await ctx.respond()
gesendet wurde? Mein Code sieht aktuell so aus
@economy.command(
description="Commit a (fake) crime for some cookies!",
description_localizations={"de": "Begehe ein (gefĂ€lschtes) Verbrechen fĂŒr ein paar Kekse!"}
)
@commands.dynamic_cooldown(customCooldown20, commands.BucketType.user)
async def crime(self, ctx):
if ctx.interaction.locale == "de":
embed = discord.Embed(
color=discord.Color.blurple(),
title="Crime",
description="WÀhle das verbrechen, welches du begehen möchtest!"
)
else:
embed = discord.Embed(
color=discord.Color.blurple(),
title="Crime",
description="Choose the crime you want to commit!"
)
embed.set_author(name="NovaBot", icon_url=self.bot.user.avatar)
embed.timestamp = datetime.datetime.now()
embed.set_thumbnail(url=ctx.author.avatar)
embed.set_footer(text=f"{ctx.author.display_name}", icon_url=ctx.author.avatar)
await ctx.respond(embed=embed, view=View())
erst musst du das message object in einer variable speichern:
message = await ctx.respond(embed=embed)
Und dann bekommst du die id wahrscheinlich (ich guck jetzt nochmal nach) durch message.id
Ich hab nachgeguckt die message id bekommt man mit message.id wie ich es oben gesagt habe
Okay, ich probiere das mal aus
Also so bekomme ich irgendwie nicht die ID von der Nachricht die durch
await ctx.respond()
gesendet wird. Ich bekomme irgendeine ID aber nicht die von der Nachricht die gesendet wird
Bei meinem TempMail system macht man /mail dann wird ein channel gemacht nur fĂŒr dichwas versucht du denn
Also eigentlich ist das fĂŒr meinen /economy crime Command bei dem ich den Crime in ner Datenbank mit Message ID und User ID speichern möchte, um zu checken, wer den Crime gestartet hat, damit nur der User der ihn gestartet hat die Buttons verwenden kann
Versuch mal herauszufinden von welcher Nachricht die id ist.
Ich bin mir nichtmal sicher ob das ĂŒberhaupt von einer Nachricht ist xD
Das ist die ID von der Nachricht die gesendet wird 1190761150799949895 und das ist die ID die ich erhalte wenn ich mir msg.id printe 1190761149071904870
@slash_command()
async def test(self, ctx):
msg = await ctx.respond("test")
print(msg.id)
wozu denn die msg.id?
das kannst du doch auch mit dem user nur
Das geht auch ohne die Message ID und User ID zu speichern
Wie denn?
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
Heute klÀren wir eine Frage, die ...
du musst bei den buttons einf nur den user der den cmd geschrieben hat ĂŒbergeben
Indem du den User an die View ĂŒbergibst
Ah
Also so hab ich es auch von Codingkeks
Danke 
async def on_application_command_error(self, ctx, error):
if isinstance(error, commands.MissingPermissions):```
Ich möchte das wenn der Bot z. B. nach einem Button drĂŒcken einen channel erstellt aber keine perms hat einen errror bekommen aber mit dem oder Botmissiing perms geht das nicht kann mir da jmd helfen
Du musst BotMissingPermissions machen
Das hier nutze ich wenn mein Bot keine Rechte hat
@commands.Cog.listener()
async def on_application_command_error(self, ctx, error):
if isinstance(error, commands.MissingPermissions):
if ctx.interaction.locale == "de":
await ctx.respond(f"**ă»**Du hast nicht genug Rechte, um das auszufĂŒhren!", ephemeral=True)
else:
await ctx.respond(f"**ă»**You don't have permission to do that!", ephemeral=True)
return
elif isinstance(error, commands.BotMissingPermissions):
if ctx.interaction.locale == "de":
await ctx.respond(f"{no}**{dot}**Ich habe nicht genug Rechte, um das auszufĂŒhren!")
else:
await ctx.respond(f"{no}**{dot}**I don't have enough permissions to execute this!")
Aber ich weiĂ net ob das auch bei Buttons funktioniert
Hab ich ja aber ich bekomme diesen fehler
embed, file = await error_embed(ctx=ctx,
title="Commands",
command="Fehlende Berechtigungen",
reason="DafĂŒr benötige: **`{error}`** ich Berechtigungen.".format(error=error))
return await ctx.respond(embed = embed, file = file, ephemeral=True)```
aber das ist der fehler:
Ignoring exception in view <View timeout=180.0 children=4> for item <ChoiceButton style=<ButtonStyle.danger: 4> url=None disabled=False label='Red' emoji=None row=None>:
Traceback (most recent call last):
File "C:\Users\jurek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\ui\view.py", line 414, in _scheduled_task
await item.callback(interaction)
File "c:\Users\jurek\Documents\Development\Python\DC Bots\Xenority\Xenority-Main-Pycord-V2-PY\cogs\dev\tempvoice.py", line 368, in callback
category = await interaction.guild.create_category("ââââJoin2Createââââ â", reason="TempVoiceSystem")
File "C:\Users\jurek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\guild.py", line 1586, in create_category
data = await self._create_channel(
File "C:\Users\jurek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\http.py", line 365, in request
raise Forbidden(response, data)
discord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions
du siehst ja dass die exception discord.errors.Forbidden ist
also probier es doch mal damit
Also es kann halt auch sein das dass von oben net mit Buttons funktioniert
Ja denke ich auch das dass allgemein was mit interaction zu tun hat
Das kommt ja wenn du den button "Red" drĂŒckst oder
ja genau weil ich will den error in meinen error handler einbauen und ned mit try und so ich frag mal bei pyccord nach
Ersetz doch einfach mal:
if isinstance(error, commands.BotMissingPermissions):
mit
if isinstance(error, discord.Forbidden):
Bei button drĂŒcken geht das in einer View mit ```py
async def on_error(self, error: Exception, item: discord.ui.Item, interaction: discord.Interaction):
Und hier dann das mit der error nachricht senden
das ist was von create_category, was du ja machen willst, geworfen werden kann
fehlende permissions ist Forbidden
WĂŒrde dann glaube ich so aussehen:
async def on_error(self, error: Exception, item: discord.ui.Item, interaction: discord.Interaction):
if isinstance(error, (discord.Forbidden, discord.HTTPException)):
return await ctx.response.send_message("Ich kann kein channel machen")
Aber kann auch falsch sein weiĂ ich nicht genau
wenn du deinen globalen error handler behalten willst ist das schon okay so, du musst halt nur die excpetion Àndern
isinstance unterstĂŒtz tuples also du könntest auch einfach if isinstance(error, (discord.Forbidden, discord.HTTPException)) schreiben
Das wusste ich nicht, aber werde ich gleich korrigieren. Danke fĂŒr die Info đ
ne das geht leider ned ich hab mal bei pycord anchgefragt
kalr kann man das mit try und except machen abernee
Aber bei mir funktioniert das
Ja?
ja
aber du hast es in nem listerner event?
@commands.Cog.listener()
@commands.Cog.listener()
async def on_error(self, error: Exception, item: discord.ui.Item, interaction: discord.Interaction):
if isinstance(error, (discord.Forbidden, discord.HTTPException)):
return await ctx.response.send_message("Ich kann kein channel machen")```
nein
In der View
The library has helpers to help create component-based UIs. Shortcut decorators: Objects: Attributes children, disable_on_timeout, message, timeout. Methods cls View.from_message, def add_item, def...
class meineklasse(discord.ui.View):
def __init__(self):
super().__init__(timeout=None)
async def on_error(self, error: Exception, item: discord.ui.Item, interaction: discord.Interaction):
if isinstance(error, (discord.Forbidden, discord.HTTPException)):
return await ctx.response.send_message("Ich kann kein channel machen")
@discord.ui.button(label="abc")
async def ...(...):
...
Ja gut ich arbeite mit seperaten klassen fĂŒr buttons usw. hhm aber da muss es doch irgenwie ein globales event geben hm
Meinst du
class buttonklasse(discord.ui.Button)
?
Aber das fĂŒgst du ja auch zu einer View hinzu oder nicht?
naja
in nem command z.b.
view.add_item(create_button)
view.add_item(delete_button)```
async def channel_create_error_handling(error: Exception, item: discord.ui.Item, interaction: discord.Interaction):
if isinstance(error, (discord.Forbidden, discord.HTTPException)):
return await ctx.response.send_message("Ich kann kein channel machen")
view = View()
view.on_error = channel_create_error_handling
view.add_item(create_button)
view.add_item(delete_button)
So könnte es glaube ich gehen
@thick haven
musst nur die EinrĂŒckung beachten
File "C:\Users\jurek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\ui\view.py", line 414, in _scheduled_task
await item.callback(interaction)
File "c:\Users\jurek\Documents\Development\Python\DC Bots\Xenority\Xenority-Main-Pycord-V2-PY\cogs\dev\tempvoice.py", line 303, in callback
view.on_error = self.channel_create_error_handling(interaction)
TypeError: temp_voice_create.channel_create_error_handling() missing 3 required positional arguments: 'error', 'item', and 'interaction'```
also interaction ist klar aber dder rest nicht so
Sorry fĂŒr die Falsch info
ah okay gut tzd danke
hallo, habe eine ganz kleine frage wie kann man 10 Sekunden timer machen in ein msg?
Wie meinst du das genau? So das z.B. nach zehn Sekunden dem User geantwortet wird?
nein halt ein Counter 10 9 8 ... 0 sowas in ein msg
Also das die Nachricht dann immer bearbeitet wird?
nein kann man auch ohne edit machen
Meinst du als Timestamp?
ja
Ja genau
Okay, wie das in Code geht weiĂ ich leider nicht
kannst du es auf 10 Sekunden machen?
from datetime import datetime, timedelta
jetzt = datetime.now()
zeitdifferenz = timedelta(hours=10)
neue_zeit = jetzt + zeitdifferenz
unix_timestemp = int(neue_zeit.timestamp())
print(unix_timestemp)```
dankee
hours musste auf seconds machen
@native plume hast du mich vergessen 
Stimmt sorry ich Probier mir Zeit zu nehmen
async def call2(self, interaction):
result = await db.is_locked(interaction.channel)
if result:
if result == interaction.user.id:
await db.remove_claim(interaction.channel)
embed = discord.Embed(
title="Ticket wurde entsperrt",
description=f":checkmark_dev: Das Ticket wurde entsperrt.",
colour=0x82e873
)
await interaction.response.send_message(embed=embed)
print("1")
new_name = interaction.channel.name[2:]
print("2")
await interaction.channel.edit(name=f"đĄ-{new_name}")
print("3")
else:
embed = discord.Embed(colour=0xff5555)
embed.add_field(name=f"",
value=f"**:crosshair_dev: Dieses Ticket wurde schon von <@{result}> gesperrt**",
inline=False)
await interaction.response.send_message(embed=embed, ephemeral=True)
Warum wird der name nicht geÀndert ?
Kosnole:
1
2
Also bis zum Àndern kommt er, aber nicht weiter
wahrscheinlich ein rate limit, da du den namen nur 2 mal alle 10min Àndern kannst
ah, ok danke
wenn du nachschauen willst kannst du auch logs aktivieren, da siehst du dann genau rate limit infos
đ
Hast ja auch in meinem Server gefragt, da findest du ne Lösung
Alles gut Bro xd
Hast du emoji_1 etc mal geprinted
Hmm muss ich gleich schauen 
Moin moin! Kurze Frage zu diesem Blacklist-Feature bei EzCord: Ist dies dafĂŒr da, um Nutzer vom Bot auszuschlieĂen? Verstehe das leider mit den Docs nicht.
wie logs aktivieren
Pycord logs errors and debug information via the logging python module. It is strongly recommended that the logging module is configured, as no errors or warnings will be output if it is not set up...
ja genau
Okay, muss ich dann bei jedem Command checken, ob der Nutzer gebannt ist, oder macht EzCord das automatisch?
das macht ezcord :) das ist sozusagen der Sinn von dem Feature 
Geilomeilo


Aber es gibt einen Fehler:
File "C:\Users\Leand\PycharmProjects\keks-bot\main.py", line 14, in <module>
bot.add_blacklist(admin_server_ids=admin_server_ids, db_path='data/db/blacklist.db', db_name='blacklist', raise_error=False, disabled_commands=['add', 'remove', 'show', 'owner', 'server', 'show_servers'], owner_only=True)
TypeError: Bot.add_blacklist() got an unexpected keyword argument 'disabled_commands'```
Zeile 14:
```py
bot.add_blacklist(admin_server_ids=admin_server_ids, db_path='data/db/blacklist.db', db_name='blacklist', raise_error=False, disabled_commands=['add', 'remove', 'show', 'owner', 'server', 'show_servers'], owner_only=True)
Also gibts keine Variable die "disabled_commands" heiĂt?
erstelle doch einf ein List Object
du schreibst dort auch was in die Liste was in den docs nicht dabei steht das du es disablen kannst ?
damit kann ich nix anfangen da fehlt des wichtigste
all = [
'add', 'remove', 'show', 'owner', 'server', 'show_servers'
]
bot.add_blacklist(db_name="blacklist",db_path="blacklist.db",raise_error=False,owner_only=True,admin_server_ids=blacklist_servers,disabled_commands=all)```
vllt bringt es dir mehr als Foto
xD
matser branch đ
einf nur pip uninstall ezcord und dann pip install git+https://github.com/tibue99/ezcord
An easy-to-use extension for Discord.py and Pycord - GitHub - tibue99/ezcord: An easy-to-use extension for Discord.py and Pycord
nein
Doch, hatte extra in den Interpreter Settings geglozt
es wurden beim master branch sachen gefixt die beim anderen noch nicht gefixt sind
#1019974414487535736 message @twilit anvil
wenn bugs fixed werden sind die erst im master branch meist
Achso, sorry.
der master Branche hat dieselbe version
Was macht das Value? ich bekomme da eine n13 zurĂŒck ist das eine discord id also z.b. voice channels sind 5 text sind 3 stage 13 usw oder was heisst das
channel.type.value
wofĂŒr denn?
willst du herausfinden um welchen art von channel es sich handelt?
genau
also umgenau zu eseinen ob es ein satge channel ist
ich habe das so aber ich finde das sio nicht gut ichw eiss ned
if before.channel.type.name == "stage_voice":
if isinstance(channel, discord.StageChannel):
Wenn der Channel eine Instanz von einem StageChannel ist weiĂt du dass es eben ein Stage Channel ist
okay danke
Funktioniert natĂŒrlich mit allen Channel Typen, ist auf jeden Fall robuster und so macht man das normalerweise auch
kann man das auch besser abfragen oder so gut wie es ist
if not member.guild.me.guild_permissions.manage_channels:
reicht member.guild_permissions.manage_channels: nicht aus?
Application Command raised an exception: AttributeError: 'ApplicationContext' object has no attribute 'guild_permissions' ne dank ich ned und mit ctx.guild auch ned da muss so okas dann lass ich das so
Du hast doch jz bestimmt ctx.guild_permissions geschrieben oder?
Ich dachte du hast schon ein member object
ne ich nutze das entwerden m9it ctx oder interaction
weil fĂŒr was das member objekt ich will ja prĂŒfen ob der bot die perms hat
was ist denn da der unterschied zwischen ctx und interaction xD
gibt kein
dann lass doch des oder weg đŠ
Hey! Dieser Fehler tritt bei meinem Ban-Command auf, das passiert, weil der Nutzer den ich bannen möchte nicht auf dem Server ist. Wie kann ich ihn trotzdem bannen?
[ERROR] Error while executing /ban
Traceback (most recent call last):
File "/home/container/.local/lib/python3.11/site-packages/discord/commands/core.py", line 131, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "/home/container/.local/lib/python3.11/site-packages/discord/commands/core.py", line 1000, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "/home/container/cogs/moderation.py", line 44, in _ban
await member.ban(reason=reason)
Mit Wie kann ich ihn trotzdem Bannen ist gemeint, dass ich ihn ĂŒber meinen Bot bannen will.
du kannst guild.ban() nutzen
Geht leider immer noch nicht.
[ERROR] Error while executing /ban
Traceback (most recent call last):
File "C:\Users\Leand\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 131, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\Leand\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 1000, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "C:\Users\Leand\PycharmProjects\keks-bot\cogs\moderation.py", line 17, in _ban
await ctx.defer()
File "C:\Users\Leand\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\interactions.py", line 734, in defer
await self._locked_response(
File "C:\Users\Leand\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\interactions.py", line 1198, in _locked_response
await coro
File "C:\Users\Leand\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\webhook\async_.py", line 220, in request
raise NotFound(response, data)
discord.errors.NotFound: 404 Not Found (error code: 10062): Unknown interaction```
await ctx.guild.ban(user=member, reason=reason)```
ah nvm, bot lief zweimal, und einmal mit dem alten Code.
Wie kann ich wenn ich ein Member Objekt haben schauen in welchen Vooice Kanal der Member ist?
^ @novel ore
ui
Wieso sagt er jetzt auf einmal das es kein module namens pip gibt? vor 1 minute hat es noch funktioniert?

