#Allgemeine Hilfe

1 messages · Page 3 of 1

frail loom
solid ingot
#

ahh

#

dieses symbol erscheint automatisch sobald der bot globale slash commands hat

frail loom
#

das heißt ?
das ist nicht da weil ich das auf einen server debugt habe ?

solid ingot
#

genau

frail loom
#

ah okai gut zu wissen

#

danke

fickle creek
#

nein

fickle creek
#

kein problem mein bester

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @fickle creek, du bist jetzt Level 13 🎉

fickle creek
solid ingot
#

also wenn du die role hast, kannst du das mit ```py
if role in user.roles:
print("User hat diese Rolle")

#

role wäre hier das rollen objekt. wenn du nur die ID der rolle hast, müsstest du erst eine liste mit allen rollen IDs bekommen, die der user hat, und das dann so checken:

if ID in [role.id for role in user.roles]:
#

der name reicht leider nicht, du bräuchtest schon das role objekt

#

zum beispiel mit role = guild.get_role(ID)

iron apex
#

hey stehe gerade aufn schlauch und bräuchte hilfe, mein discord bot hat im moment folgenden output

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @iron apex, du bist jetzt Level 3 🎉

iron apex
#

die größen die dort stehen bekomme ich aus einer api
um diese aber in normale größen umzuwandeln muss ich auf eine andere api zugreifen, diese hab ich auch schon

#

und jz meine frage wie kann ich die sachen am besten abspeichern und abgleichen und dann ersetzten , ich möchte natürlich das die normale größe im embed steht und nicht der size code

solid ingot
#

machst du für jeden size code einen einzelnen api call, um die normale größe zu bekommen?

#

ich weiß gar nicht, ob ich es irgendwo abspeichern würde. wäre es nicht möglich, die andere API aufzurufen und die ergebnisse direkt ins embed zu schreiben?

iron apex
solid ingot
#

ist das alles in einem string?

iron apex
#

response von der api ist json welche ich parse und dann in einen string speichere , kann sonst auch wenn ihr zeit habt screen sharing machen , vlt kann ich das problem dann besser erklären

solid ingot
#

ja, wenn du magst kann ich gleich in #1020759567421931620 kommen

iron apex
#

jo

indigo sapphire
#

Wie hast du das gemacht!?

#

Hast du es mit ``` gemacht?

iron apex
#

habs jz geschaft kiss

iron apex
indigo sapphire
#

Und die letzte Update?

#

Zufällig mach ich sowas ähnliches für eine Video games

#

Es sollte Ausrüstung anzeigen was empfohlen wurde

#

Lol, Genshin Impact und 7DSGC

iron apex
indigo sapphire
#

Ohh 👀

#

Also schreibst du nicht einfach den datum in SQL?

iron apex
#

was meinst mit sql ?

#

bekomme von der api diesen wert
"modificationDate": "2022-09-06T04:42:00.000Z"
den brech ich dann runter in sekunden und kann das dann so schön anzeigen lassen mit der discord formatierung

fickle creek
#
Traceback (most recent call last):
  File "C:\Users\merto\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 377, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\merto\PycharmProjects\pythonProject\cogs\Stempel.py", line 11, in on_ready
    self.bot.add_view(stempelView())
  File "C:\Users\merto\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 1770, in add_view
    raise ValueError(
ValueError: View is not persistent. Items need to have a custom_id set and View must have no timeout```
fathom crescent
#

Kann man eigentlich mit anderen prefix auch ein autofill bekommen wie mit dem slash_command sprich das einzige was ich gefunden hab war so ein tree.

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

das nur mit einem anderen prefix

solid ingot
#

leider nicht, dass geht ausschließlich mit slash commands

iron apex
#

welche requirements muss man auf einem linux server installieren damit der bot aus den YT tutorials läuft, bei mir meckert er schon bei bei import discord

solid ingot
#

wenn du pycord installiert hast, sollte er da nicht meckern

iron apex
solid ingot
#

evtl musst du pip noch installieren: apt install python3-pip

iron apex
#

für die doku
pip3 install py-cord
nicht
pip install py-cord

okay pip geht bei neueren python versionen

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @iron apex, du bist jetzt Level 4 🎉

iron apex
#

jz aber

solid ingot
#

du hast eine zu alte pycord version

iron apex
fickle creek
#

Hey 👋 weiss jemand wie ich per Button jemanden eine rolle geben kann und wenn er wieder drauf drückt das die rolle von ihm weggenommen wird?

#

Meine jz nur wie ich die wieder weg nehme

fickle creek
indigo sapphire
#

hey leute kann mir jemand helfen mit @is_owner?

#

ich nutze normal slash command und es geht trotzdem nicht

thick haven
indigo sapphire
#

geht nicht

#

den commands.is_owner

#

es meldet ich bin kein owner@thick haven

#

hab owner_id schon eingestellt

#
bot = discord.Bot(
    command_prefix=prefix,
    status=status,
    activity=activity,
    case_insensitive=True,
    owner_ids=set(os.getenv('owner_ids')),
    debug_guild=os.getenv('debug_guild'),)
#

mein slash code check für owner

# Config ShiroSQLite database
    @slash_command(
        name='sql', 
        description = 'Konfiguriere ShiroSQLite database',
        )
    @option(
        name='select_sql',
        description='Optionen Einstellung für MySQL/SQLite',
        choices = ['MySQL', 'SQLite'],
        default=None
    )
    #@commands.is_owner() # erwühnscht
    async def sql(self, ctx, select_sql):
thick haven
#

Puh Okay

indigo sapphire
#

idk was da falsch ist

#

den error

Ignoring exception in command sql:
Traceback (most recent call last):
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\bot.py", line 1009, in invoke_application_command
    await ctx.command.invoke(ctx)
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 356, in invoke
    await self.prepare(ctx)
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 278, in prepare
    if not await self.can_run(ctx):
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 383, in can_run
    return await async_all(predicate(ctx) for predicate in predicates)  # type: ignore
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\utils.py", line 564, in async_all
    elem = await elem
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 2269, in predicate
    raise NotOwner("You do not own this bot.")
discord.ext.commands.errors.NotOwner: You do not own this bot.
#

ich weiss auch nicht wie man eine eigene check machen kann als @ parameter

indigo sapphire
#

so nebenbei

#

weiss jemand ob ich in value eine Tulpe machen kann wie zb ('DROP_SQLite','DROP')

DROP_MySQL = discord.SelectOption(
    label='DROP-MySQL Option',
    description='Diese Option DROP was Gewählt wurde: DATABASE , TABLE',
    emoji='❎',
    value='DROP_SQLite')
solid ingot
#

das owner bezieht sich auf den bot, nicht auf den server

indigo sapphire
#

Ja in

indigo sapphire
#

Ist alles Dieselbe

#

Den Befehl hab ich auch mit meine Main acc gemacht

solid ingot
#

dann sollte es eigentlich auch schon funktionieren, ohne dass du eine owner ID festlegst.

#

schau nochmal, ob du da die richtige ID hast

indigo sapphire
#

Hab ich schon 10 angeschaut

indigo sapphire
#

Wie gesagt es läuft alles über 2 bot und die hab ich erstellt

#

Der eine ist Beta und der andere offizielle bot

indigo sapphire
#

Wie du gesehen hast habe ich schon mal gemacht

solid ingot
#

Hey, meinst du dass direkt ein Dropdown Menü erscheint, wenn man einen Slash Command ausführt?
Dafür müsstest du einfach nur noch eine View Klasse in dein ctx.respond() tun

solid ingot
#

genau, da kannst du in eine slash command option einfach eine liste mit dingen schreiben, die der user auswählen darf

choices=["Keks", "Schokolade"]
solid ingot
#

da hast du deinem command oder einer option einen verbotenen namen gegeben

#

evtl zu lang, oder vlt ein sonderzeichen?

urban glen
#

Du könntest einf. _ nutzen, sonst geht es eig. nicht (denke ich)

#

Beispiel: hilfe_erhalten

solid ingot
#

leerzeichen bei slash commands sind nicht erlaubt, das geht nur bei user und message commands

fickle creek
#

Wie kann ich ein embed mit einem button schicken?

solid ingot
#

also du willst ein embed schicken und darunter soll ein button sein?

fickle creek
#

Ja

solid ingot
#

wenn deine view klasse TutorialView() heißt, geht das so

await ctx.respond(embed=embed, view=TutorialView())

fickle creek
#
Traceback (most recent call last):
  File "C:\Users\merto\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\cog.py", line 757, in _load_from_module_spec
    spec.loader.exec_module(lib)  # type: ignore
  File "<frozen importlib._bootstrap_external>", line 879, in exec_module
  File "<frozen importlib._bootstrap_external>", line 1017, in get_code
  File "<frozen importlib._bootstrap_external>", line 947, in source_to_code
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\Users\merto\PycharmProjects\pythonProject\cogs\Stempel.py", line 23
    await ctx.respond(embed=embed, view=stempelView())
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: 'await' outside function

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\merto\PycharmProjects\pythonProject\main.py", line 35, in <module>
    bot.load_extension(f"cogs.{filename[:-3]}")
  File "C:\Users\merto\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\cog.py", line 893, in load_extension
    self._load_from_module_spec(spec, name)
  File "C:\Users\merto\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\cog.py", line 760, in _load_from_module_spec
    raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.Stempel' raised an error: SyntaxError: 'await' outside function (Stempel.py, line 23)

Process finished with exit code 1```
#

mhh

fickle creek
urban glen
# fickle creek da

Fehlt da beim class dass c oder hast du einf. nicht so gut geschnitten?

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @elder epoch, du bist jetzt Level 4 🎉

solid ingot
fickle creek
#

steht da

fickle creek
solid ingot
#

achso ups

fickle creek
solid ingot
#

einrückung ist falsch

fickle creek
#

nach links oder?

solid ingot
#

ne rechts xD

fickle creek
#

mein freund bedankt sich sehr an dich timo

urban glen
#

Wie kann man eig. anzeigen lassen, wann der Befehl ausgeführt wurde?

fickle creek
#

kann man inline=False auch bei einer description nutzen?

solid ingot
#

nope

solid ingot
fickle creek
calm bone
#
            def check(message):
                return message.author == interaction.author
            msg = await client.wait_for('message', check=check)
            if msg.guild == None:
                break
calm bone
solid ingot
#

das müsste interaction.user heißen

urban glen
#

hab nichts passendes gefunden xD

#

@solid ingot Halt dass der Bot dann in der Nachricht anzeigt wann der Befehl genutzt wurde bei meinem Fall wann der Benutzer gebannt wurde.

solid ingot
#

achso die zeit

#

in einem embed?

urban glen
fickle creek
#

wie kann ich dann sowas machen?
habe embed.add_field ausprobiert ging aber net

fickle creek
solid ingot
urban glen
urban glen
#

mach mal await ctx.respond(embed=embed) @fickle creek

urban glen
#

wie genau soll das gehen? xD

fickle creek
urban glen
fickle creek
#

ich wil nur das dieser text sotiert ist

urban glen
fickle creek
#

ist weiter rechts

urban glen
fickle creek
solid ingot
#

das geht mit "\n"

indigo sapphire
#

hab es herausgefunden für is_owner darf man keine id setzen

old ore
indigo sapphire
#

unten fehlt nach dem else etwas

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @indigo sapphire, du bist jetzt Level 20 🎉

indigo sapphire
#

weiss jemand wie ich es eleganter machen kann?

def SQL(Select_DB_SQL=None, SQL_Command=None, Database=None, Table=None, Columns=None):
    if Select_DB_SQL == 'MySQL':
        async with MySQL_connect() as (MyDB, mdb):
            if SQL_Command == 'UPDATE':
                return mdb.execute()
            elif SQL_Command == 'CREATE':
                return mdb.execute()
            elif SQL_Command == 'SELECT':
                return mdb.execute()
            elif SQL_Command == 'INSER"':
                return mdb.execute()
            elif SQL_Command == 'ALTER':
                return mdb.execute()
            elif SQL_Command == 'DELETE':
                return mdb.execute()
            elif SQL_Command == 'DROP':
                return mdb.execute()
            #await db.execute(f"SELECT UserPremium FROM UserConfig WHERE (UserID='{ctx.author.id}')")
            #await mdb.fetchone()
#

ich hab vor eine def funktion für sql auswahl der command und es sollte in Discord slash command rein gehen

frail loom
#

kann man wenn man den überblick verloren hat irgendwie die requirements auslesen ?

solid ingot
#

das geht mit pip freeze > requirements.txt

frail loom
#

ein schatz bist du !

#

die, die man manuell installiert muss man sich dann raus picken?

solid ingot
#

ja genau

old ore
solid ingot
#

wieso machst du das als html datei?

old ore
frail loom
#

Die unteren beiden kann ich doch eigendlich weg machen oder ? 😄

solid ingot
#

das kommt drauf an, welche funktionen du hast. wenn du an keiner stelle den nachrichteninhalt brauchst, kannst du den message content intent entfernen

#

für das on_member_join event etc brauchst du zB den member intent

#

achsoooo du hast intents.all

#

ja dann kanns weg xD

frail loom
#

wo ist der unterschied zwischen all & default? 😄

solid ingot
#

bei default sind ein paar standard intents mit dabei, die man aber nicht im developer portal extra aktivieren muss. bei all sind alle dabei, also auch member und message content

frail loom
#

ah okai danke

#

und noch was

#

kann man in der .env datei nichts so einfügen?
Server = 123456789, 987654321

der haut dann fehler raus.
Arbeite nun mit Server1 und Server2

solid ingot
#

hm, das weiß ich nicht genau, ich glaube aber alles braucht eine eigene zeile

indigo sapphire
#

Discord?

#

Dann könntest du ja [0] das hier nutzen

#

Neben 'Server'[1] denke ich mal

past slate
#

Also, ich habe gerade das YouTube video von CodingKeks gesehen und da kam dann auf einmal der Error

 & C:/Users/dzwon/AppData/Local/Programs/Python/Python311/python.exe "f:/Normal/Discord/Discord Bot/program.py"
Traceback (most recent call last):
  File "f:\Normal\Discord\Discord Bot\program.py", line 20, in <module>
    async def greet(ctx, user: Option(discord.Member, "Der User, den du grüßen möchtest")):
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dzwon\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\options.py", line 198, in __init__
    from ..ext.commands import Converter
  File "C:\Users\dzwon\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ext\commands\__init__.py", line 18, in <module>
    from .flags import *
  File "C:\Users\dzwon\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ext\commands\flags.py", line 57, in <module>
    @dataclass
     ^^^^^^^^^
  File "C:\Users\dzwon\AppData\Local\Programs\Python\Python311\Lib\dataclasses.py", line 1221, in dataclass
    return wrap(cls)
           ^^^^^^^^^
  File "C:\Users\dzwon\AppData\Local\Programs\Python\Python311\Lib\dataclasses.py", line 1211, in wrap
    return _process_class(cls, init, repr, eq, order, unsafe_hash,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dzwon\AppData\Local\Programs\Python\Python311\Lib\dataclasses.py", line 959, in _process_class
    cls_fields.append(_get_field(cls, name, type, kw_only))
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dzwon\AppData\Local\Programs\Python\Python311\Lib\dataclasses.py", line 816, in _get_field
    raise ValueError(f'mutable default {type(f.default)} for field '
ValueError: mutable default <class 'discord.utils._MissingSentinel'> for field name is not allowed: use default_factory
#

und ich kann ihn nicht beheben

solid ingot
#

gib mal pip freeze in die konsole ein und schicke das ergebnis

calm bone
#
Ignoring exception in on_member_join
Traceback (most recent call last):
  File "E:\Pogrammieren\lib\site-packages\discord\client.py", line 382, in _run_event
    await coro(*args, **kwargs)
  File "e:\Pogrammieren\Shurts dc bot\cogs\newtest.py", line 27, in on_member_join
    url = data["result"][0]["media_formats"]["gif"]["url"]
KeyError: 'result'
past slate
# solid ingot gib mal `pip freeze` in die konsole ein und schicke das ergebnis
aiohttp==3.8.3
aiosignal==1.2.0
async-generator==1.10
async-timeout==4.0.2
attrs==22.1.0
certifi==2022.9.24
cffi==1.15.1
charset-normalizer==2.1.1
colorama==0.4.6
discord==2.0.0
discord.py==2.0.1
frozenlist==1.3.1
h11==0.14.0
idna==3.4
multidict==6.0.2
outcome==1.2.0
py-cord==2.2.2
pycparser==2.21
PySocks==1.7.1
selenium==4.5.0
sniffio==1.3.0
sortedcontainers==2.4.0
trio==0.22.0
trio-websocket==0.9.2
urllib3==1.26.12
wsproto==1.2.0
yarl==1.8.1
solid ingot
#

es könnte daran liegen, dass du discord und discord.py installiert hast. diese funktionieren nicht mit pycord zusammen. versuch mal, diese packages zu deinstallieren und dann pycord nochmal neu zu installieren

past slate
#

alles klar, sekunde

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @past slate, du bist jetzt Level 2 🎉

solid ingot
past slate
# solid ingot es könnte daran liegen, dass du discord und discord.py installiert hast. diese f...

jetzt findet der irgendetwas nicht

 & C:/Users/dzwon/AppData/Local/Programs/Python/Python311/python.exe "f:/Normal/Discord/Discord Bot/program.py"
Traceback (most recent call last):
  File "f:\Normal\Discord\Discord Bot\program.py", line 2, in <module>
    from discord.commands import Option
  File "C:\Users\dzwon\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\__init__.py", line 26, in <module>
    from .context import *
  File "C:\Users\dzwon\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\context.py", line 29, in <module>
    import discord.abc
ModuleNotFoundError: No module named 'discord.abc'
calm bone
solid ingot
solid ingot
#

hinter ["results"] fehlt noch eine zahl

calm bone
#

klappt👍

hoary copper
#

Kann mir jemand helfen

urban glen
#

Hast du dir das erste Tutorial von tibue angeschaut und alles befolgt?

past slate
# solid ingot das sieht immer noch nach einem installationsfehler aus, schau nochmal in <#1010...

jetzt hab ich halt py-cord neuinstalliert und alles gemacht was da stand, aber jetzt steht da wieder das gleiche vom anfang also

 & C:/Users/dzwon/AppData/Local/Programs/Python/Python311/python.exe "f:/Normal/Discord/Discord Bot/program.py"
Traceback (most recent call last):
  File "f:\Normal\Discord\Discord Bot\program.py", line 19, in <module>
    async def greet(ctx, user: Option(discord.Member, "Der User, den du grüßen möchtest")):
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dzwon\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\options.py", line 198, in __init__
    from ..ext.commands import Converter
  File "C:\Users\dzwon\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ext\commands\__init__.py", line 18, in <module>
    from .flags import *
  File "C:\Users\dzwon\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ext\commands\flags.py", line 57, in <module>
    @dataclass
     ^^^^^^^^^
  File "C:\Users\dzwon\AppData\Local\Programs\Python\Python311\Lib\dataclasses.py", line 1221, in dataclass
    return wrap(cls)
           ^^^^^^^^^
  File "C:\Users\dzwon\AppData\Local\Programs\Python\Python311\Lib\dataclasses.py", line 1211, in wrap
    return _process_class(cls, init, repr, eq, order, unsafe_hash,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dzwon\AppData\Local\Programs\Python\Python311\Lib\dataclasses.py", line 959, in _process_class
    cls_fields.append(_get_field(cls, name, type, kw_only))
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dzwon\AppData\Local\Programs\Python\Python311\Lib\dataclasses.py", line 816, in _get_field
    raise ValueError(f'mutable default {type(f.default)} for field '
ValueError: mutable default <class 'discord.utils._MissingSentinel'> for field name is not allowed: use default_factory
solid ingot
#

@past slate hast du zufällig python 3.11?

#

ah ja hast du

past slate
#

ja

solid ingot
#

leider funktioniert pycord noch nicht mit 3.11

past slate
#

achso, welche version soll ich mir herunterladen?

solid ingot
#

3.10 würde gehen

past slate
#

alles klar

solid ingot
#

alternativ könntest du dir auch die master version von pycord verwenden denke ich: pip install -U git+https://github.com/Pycord-Development/pycord

#

da bin ich mir aber nicht sicher

past slate
#

ok, hab jetzt 3.10 und es funktioniert. Aber was sehr nervig ist, ist, dass ich immer anstatt einfach "pip" "py -m pip" verwenden muss, hast du da eine lösung?

winter marten
past slate
#

achso, das hatte ich auch vorhin

winter marten
#

ok hab 33.11

past slate
#

du musst c++ sachen installieren

winter marten
#

hast link

past slate
#

wenn du dann drinne bist, dann musst du noch "Node.js-Entwicklung", "Desktopentwicklung mit C++" und ".NET" installieren

#

also .NET-Desktopentwicklung

#

dann sollte es gehen

solid ingot
past slate
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @past slate, du bist jetzt Level 3 🎉

past slate
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @winter marten, du bist jetzt Level 3 🎉

winter marten
#

brauch hilfe

obtuse estuary
#

Jo

past slate
#

bei was jetzt

winter marten
#

warum sagt er mir das mit den intents

past slate
#

ich bin mir nd sicher aber die definition von intents, also das 2 zeilen unten drunter, muss über intents.members stehen

past slate
#

du musst dir vorstellen, dass der code (abgesehen von asynchrone definitionen) von oben bis unten abgelesen wird. Also muss dementsprechend auch erst die Intents-Variable festgelegt werden, dass du sie danach benutzen kannst

#

also

intents = discord.Intents.default()
intents.members = True
winter marten
#

ah k

#

thc

past slate
#

kd

winter marten
#

aber meine greet geht nicht also der slash command

#

wenn ich / im dc benutze

past slate
#

sorry, da kann ich noch nd weiterhelfen, bin erst bei folge 3 im tutorial XD

winter marten
#

xD

#

dachte hast vllt kenntnisse ich hab halt null welsche lol

solid ingot
#

der slash command ist zu weit nach rechts eingerückt

fickle creek
#

Du*

winter marten
#

hahahaha

#

true

#

picasso einfach

past slate
#

ey @solid ingot ich wär voll gern freiwilliger helfer und so

#

bin ja voll krass

solid ingot
#

bewerben kann man sich in #🎫・tickets 😄

past slate
#

ah ok

winter marten
#

jemand einen tipp warum er nicht mit dem slash command nicht den command stream nimmt also ich benutz den command aber er wechselt nicht auf sream "lol" zb

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @past slate, du bist jetzt Level 4 🎉

past slate
#

ich hab zwar keine ahnung wie der code aussehen soll, aber ich denke es wär mal ein versuch wert, anstatt else, elif zu verwenden.

#

also

#
if typ == "game": 
  act = discord.Game(name = name)
elif typ == "stream": 
  act = discord.Streaming(
    name=name,
    url="..."
  )
else:
  print("Error")
#

idk ob's funktioniert, aber ich denke es wär ein versuch wert

winter marten
#

thx

#

klappt

past slate
#

bitte 👍

indigo sapphire
#

sowas zu machen

#

leider fehlt mir das wissen dazu

#
SELECT
indigo sapphire
#

naja vorerst hab ich dieses Problem.
ich möchte den oberigen text das es nach dem auswahl veschwindet wie mache ich das?

past slate
indigo sapphire
#

also ich will ein code erstellen für sql

#

es sollte auswählen welche sql

#

nach dem auswahl wartet es auf eine naricht als code block

#

wie kann ich das machen?

#

zusätlich sollte eine bestätigung button geben

#

@past slate

#

und dann führt bei, button die sql befehle

past slate
#

eh also ich kenn mich gerade noch nicht so gut damit aus, ich bin grad selbst noch am py-cord lernen

#

aber falls du fragen über sql code hast, dann kannst du mich fragen

indigo sapphire
#

naja problem hab ich gerade nur mit eine warte auf eine naricht

past slate
indigo sapphire
#

Oder was geschrieben wurde?

past slate
#

sekunde...

indigo sapphire
#

In einem cogs und als drop-down für callback

past slate
#
@bot.slash_command(description = "")
async def test(...):
    await ctx.respond("1.")

    @bot.event
    async def on_message(msg):
    print("2.")
#

idk ob's funktioniert, ist aber ein versuch wert

indigo sapphire
#

Also mach ich mit ein bot even in einem def?

#

xD

#

Werd ich sagen versuchen

#

Die Frage ist nur wie bekomme ich den Input? Also die naricht?

#

Wie du gesehen hast sollte das nacher als SQL Command gesendet werden

past slate
indigo sapphire
#

Bearbeitung gesehen werd ich heute Abend versuchen

past slate
#

ok

indigo sapphire
#

Wenn es geht schenk ich dir die owner command für mysql

indigo sapphire
#

Im Moment gibt nur die Option MySQL und SQLite

indigo sapphire
#

Problem nur jetzt in einem drop-down Menü als callback

indigo sapphire
past slate
indigo sapphire
#

Der Versuch könnte werd sein

#

Witzig du bist helper

past slate
#

ey, ich wollte das tutorial heute reinsuchten 😭

indigo sapphire
#

Gegen wir nachher #💬・chat

solid ingot
indigo sapphire
#

Und on_message f
Wie funktioniert das in einem Cogs zusätzlich auch in Callback?

solid ingot
#

?

indigo sapphire
#

Wie geht das denn in einem view drop-down menü

#

Als callback

#

Funktioniert nicht so gut mit wait_for als callback

solid ingot
#

doch geht

indigo sapphire
#

Wurde aber nicht in einem Video gezeigt

indigo sapphire
#

1:1 copy pastet

#
elif select_sql == 'SQLite':
            await ctx.respond(embed=embedSQLite, ephemeral=True)

            answer= await self.bot.wait_for('message')
            await answer.reply(f'du hast {answer.content} geschrieben', ephemeral=True)
#

was mich interessiert und du noch nie eine video gemacht hast wie kann ich als antwort was ich geschrieben hab löschen lassen?

#

denn content geht nicht warum?

#

ohne fehler

#

hier es sollte als text test stehen ist aber nicht so

solid ingot
#

hast du den message content intent aktiviert?

solid ingot
indigo sapphire
#

da hat mir jemand hier gezeigt da warst du ja dabei

solid ingot
#

naja, du musst die intents noch in das bot Objekt einfügen

indigo sapphire
#

also das oben und case_insensitive wegtun?

solid ingot
#

einfach noch intents=intents dazuschreiben

#

ein beispiel dafür zeige ich in folge 2

indigo sapphire
#

jup idk was case_insensitive=True sein sollte

#

es wurde mir einfach gesagt ich soll es machen

solid ingot
#

bitte nicht als txt datei

#

bin am handy

indigo sapphire
#

geht nicht anders

winter marten
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @winter marten, du bist jetzt Level 4 🎉

winter marten
#

bot geht nd on

indigo sapphire
#

js? rip me

solid ingot
# winter marten help

mit javascript wirst du nicht besonders viel hilfe erhalten, die meisten hier können nur python

winter marten
#

nein war nur nen spass

solid ingot
#

achso xD

winter marten
#

hahaha das ist nen screen von meiner ersten coding session

#

wo ich angefangen habe

#

kennst du milrato?

solid ingot
#

hab auch noch einen gescheiterten JS Versuch von vor 2 Jahren :D

#

ne

past slate
#

ey aber c# bots sind sooo verdammt kompliziert

solid ingot
#

Java Bots wahrscheinlich auch

winter marten
#

der hat 700 commands und coded auch bots für server hoster und sowas

past slate
indigo sapphire
indigo sapphire
past slate
# past slate

und der bot macht nichts außer "bereit" auszugeben

solid ingot
#

nice haha

winter marten
indigo sapphire
#

einfacher ist python

winter marten
#

obwohl ne

#

für bereit ist das mehr

solid ingot
#

aber #💬・chat bitte das hier ist der Help channel

indigo sapphire
#

tibue wie kann ich nach meine antwort als text löschen?

answer= await self.bot.wait_for('message', check=check_author)
            await answer.reply(f'du hast {answer.content} geschrieben')
#

und wie kann ich den antwort von bot unsichtbar machen?

answer= await self.bot.wait_for('message', check=check_author)
            await answer.reply(f'du hast {answer.content} geschrieben')
iron apex
#

kann man auch slash befehle nur für einen einzigen channel anzeigen lassen ?

indigo sapphire
#

naja wenn du als @ def schaffst ja

#

mein code

#Dropdown Menü für ShiroSQL
class ShiroSQLDropdownsSelect(discord.ui.Select):
    def __init__(self):
        super().__init__(
            min_values=1,
            max_values=1,
            placeholder='Hier deine SQL Optionen',
            options=SQL_Options,
            custom_id='ShiroSQLDropdownsSelect'
        )

    
    async def callback(self, interaction):
        #Check ob der eingabe von ctx.auhtor stammt wenn ja dann true
        def check(message):
            return message.author == interaction.author and message.channel == interaction.channel
        
        # Checkt was der user gewählt hat
        #await interaction.response.send_message(', ephemeral=True)
        
        # check select if SQLite
        if 'SQLite' in self.values:
            print(f'"{self.values[0]}" wurde Gefählt')
            await interaction.response.send_message(embed=embedSQLite, ephemeral=True)
    
            answer= await self.interaction.wait_for('message', check=check)
            await answer.reply(f'du hast {answer.content} geschrieben')

        # check select if MySQL
        elif 'MySQL' in self.values:
            print(f'"{self.values[0]}" wurde Gefählt')
            await interaction.response.send_message(embed=embedMySQL, ephemeral=True)

            answer= await self.interaction.wait_for('message', check=check)
            await answer.reply(f'du hast {answer.content} geschrieben')
#

mein fehler was da los?

"SQLite" wurde Gefählt
Ignoring exception in view <View timeout=900.0 children=1> for item <ShiroSQLDropdownsSelect placeholder='Hier deine SQL Optionen' min_values=1 max_values=1 options=[<SelectOption label='SQLite' value='SQLite' description='Diese Option wählt den SQLite' emoji=<PartialEmoji animated=False name='SQLiteIcon' id=1032218520467021895> default=False>, <SelectOption label='MySQL' value='MySQL' description='Diese Option wählt den MySQL' emoji=<PartialEmoji animated=False name='MySQL_Icon' id=1032216679578603530> default=False>] disabled=False>:
Traceback (most recent call last):
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ui\view.py", line 396, in _scheduled_task
    await item.callback(interaction)
  File "c:\Users\Manuel Berchtold\OneDrive - Kantonale Schule für Berufsbildung\Dokumente\Python\ShrioLaplaceBot\ShiroSystem\cogs\OwnerCommand.py", line 175, in callback
    answer= await self.bot.wait_for('message', check=check)
AttributeError: 'ShiroSQLDropdownsSelect' object has no attribute 'bot'
solid ingot
solid ingot
#

wenn du den bot in der View Klasse benutzen willst, musst du den bot an die View Klasse übergeben, oder du benutzt interaction.client

indigo sapphire
#

tibue

indigo sapphire
#

hey leute weiss jemand zufällig wie man eine bestätigung button macht?

#
#Button Bestätigung ShiroSQL
class ShiroMessageSQLButton(discord.ui.View):
    @discord.ui.button(label='Senden', style=discord.ButtonStyle.primary, emoji=':checkmark:')
    async def button_callback_checkmark(self, button, interaction):
        async with aiosqlite.connect('ShiroSQLite.db') as (slite, sl):
            await sl.execute()
#

will den button auf diese msg

answer= await self.bot.wait_for('message', check=check_author)
            await answer.reply(f'du hast {answer.content} geschrieben')
            #await answer.delete()
iron apex
#

ich hab einen fertigen slash command
und ich möchte jz noch einfügen das die eingaben und der username in einem anderen channel geloggt werden , wie gehe ich da am besten vor ?

solid ingot
#

da müsstest du zuerst den channel bekommen, indem du die Channel ID zb in guild.get_channel() einsetzt. dann kannst du mit channel.send() eine Log Nachricht senden

indigo sapphire
#

wie kann ich eine custom def für den callback machen?

#Button Bestätigung ShiroSQL
class ShiroMessageSQLButton(discord.ui.Button):
    def __init__(self, label, btStyle=discord.ButtonStyle.primary, emoji=None, callbackinput=None):
        super().__init__(
            label=label,
            style=btStyle,
            emoji=emoji,
        )
    async def callback(self, interaction):
        await interaction
#

es soll eine custom callback button machen.

elif select_sql == 'MySQL':
            async with MySQL_connect() as (MyDB, mdb):
                await ctx.respond(embed=embedMySQL, ephemeral=True)
                
                answer= await self.bot.wait_for('message', check=check_author)
                #await answer.delete()

                confirm= ShiroMessageSQLButton(
                    label='Confirm',
                    btStyle=discord.ButtonStyle.success,
                    emoji=':checkmark:',
                ).callback(interaction=await mdb.execute(answer.content)
                )
                view= discord.ui.View()
                view.add_item(confirm)

                await answer.reply(f'Dein SQL Befehl Eingabe:\nsql\n{answer.content}\n', view=view)

#

der custom callback input sollte das hier machen: ```py
await mdb.execute(answer.content)

hoary copper
#
import discord
from discord.ext import commands

intent = discord.intents.default()
intent.members = True

bot = commands.bot(command_prefix="!", intent=intent)

role_id = 123
guild_id = 123

class RoleButton(discord.ui.Button):
    def _init_(self):
        super().__init__(
              Label="Verifiziere dich hier!",
                style=discord.enums.ButtonStyle.blurple,
                 custom_id="interaction:rolebutton",
        )

    async def callback(self, interaction discord.interaction):
        user = interaction.user

        role = interaction.guild.get.role(role_id)

        if role is None:
            return

        if role not user.roles:
            await user.add_roles(role)
            await interaction.response.send_message(f"O Du Bist bereits Verifiziert!"), ephemeral = True)

        else:
            await interaction.response.send_message (f"x Du Bist bereits Verifiziert!"), ephemeral=True)

    BILD_URL = "https://cdn.discordapp.com/attachments/1034173654797398063/1034827766845161563/Unbensannt.JPG"

    BESCHREIBUNG = """Willkommen auf dem BLUE Server!

Allgemeine Regeln
Verhalte dich freundlich und respektvoll!
Akzeptiere die Meinung anderer User!
:rb: Mobbing und Diskriminierung werden nicht toleriert!
:rb: Wähle dein Usernamen und Profilbild bedacht aus!
:rb: Sei kein Arsch!
:rb: Halte dich an die allgemeinen Richtlinien von Discord!

@bot.command()
async def post(ctx: commands.Context):
    view = discord.ui.View(timeout=None)

    view.add_item(RoleButton())

    await ctx.send(f"{BILD_URL}")
    await ctx.send(f"{BESCHREIBUNG}", view=view)

@bot.event
async def on_ready():
    print("ONLINE!")
    view = discord.ui.view(timeout=None)
    view.add_item(RoleButton())
    bot.add_view(view)

bot.run("Token")

#

Hat jemand eine Idee?

solid ingot
#

die Klammer zu muss hinter ehemeral=True

#

also nicht nach verifiziert

hoary copper
#

also so ?

solid ingot
#

Nein, die Klammer zu muss hinter ehemeral=True, nicht hinter "Verifiziert!"

hoary copper
#

Achso jetzt verstanden

urban glen
#

Line 71

solid ingot
#

das problem hat jetzt nichts mehr mit dem problem eben zu tun, hier hast du wahrscheinlich nicht alle voraussetzungen für persistent views erfüllt

quiet socket
#

sitze gerade an dem kick command. problem ist das ich nicht weiss wie ich den grund angeben soll Cry

#

code:

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


class Admin(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @slash_command(description="Kicke einen User")
    async def kick(self,
                   ctx,
                   member:Option(discord.Member, "Wähle einen Member"),
                   reason: Option(discord.)
                                     ):
        await member.kick()
        embed = discord.Embed(
            title=":rotating_light: - Du wurdest gekickt!",
            description="┏👮‍ - GEKICKT VON: 
┣:construction: - GRUND: 
┗:rotating_light: - ACHTUNG: Sollte sich sowas wiederholen, wirst du gebannt!"
        )
        await member.send(embed=embed)

        @commands.Cog.listener()
        async def on_application_command_error(self, ctx, error):
            await ctx.respond(f"Es ist ein Fehler aufgetreten: ```{error}```")
            raise error


def setup(bot):
    bot.add_cog(Admin(bot))```
solid ingot
#

den grund kannst du als string angeben, also reason: Option(str)

quiet socket
solid ingot
#

str reicht, du kannst dahinter noch eine description schreiben

quiet socket
#

was soll ich dann unten beim embed eingeben?

solid ingot
#

f"- GRUND: {reason}"

quiet socket
#

Wie wird eigentlich angegeben welcher user dich gekickt hat?

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @quiet socket, du bist jetzt Level 4 🎉

solid ingot
#

den user kannst du mit ctx.author bekommen

quiet socket
#
embed.add_field(name="┏`👮` - **GEKICKT VON:**",value=ctx.author)```
#

so?

solid ingot
#

ja zum beispeil, evtl musst du ctx.author noch in einen string umwandeln

quiet socket
#

also erwähne ich ihn oben?

#

bzw. author: Option...?

#

Error...

#

Error:

#

C:\Users\Georgi\AppData\Local\Programs\Python\Python310\python.exe "C:\Users\Georgi\PycharmProjects\py-cord projekt eucord ai\main.py" 
ΞUROPΞ CORD ΛI#2725 ist online
Ignoring exception in command kick:
Traceback (most recent call last):
  File "C:\Users\Georgi\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 124, in wrapped
    ret = await coro(arg)
  File "C:\Users\Georgi\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 970, in _invoke
    await self.callback(self.cog, ctx, **kwargs)
  File "C:\Users\Georgi\PycharmProjects\py-cord projekt eucord ai\cogs\admin.py", line 24, in kick
    await member.send(embed=embed)
  File "C:\Users\Georgi\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\abc.py", line 1580, in send
    data = await state.http.send_message(
  File "C:\Users\Georgi\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\http.py", line 353, in request
    raise Forbidden(response, data)
discord.errors.Forbidden: 403 Forbidden (error code: 50007): Cannot send messages to this user

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\Georgi\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\bot.py", line 1088, in invoke_application_command
    await ctx.command.invoke(ctx)
  File "C:\Users\Georgi\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 374, in invoke
    await injected(ctx)
  File "C:\Users\Georgi\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 132, in wrapped
    raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: Forbidden: 403 Forbidden (error code: 50007): Cannot send messages to this use```
#

ich glaube ich sollte ein respond erstellen damit ich den error rausfinde

solid ingot
#

der bot hat keine berechtigung, um diesem user nachrichten zu senden

quiet socket
#

inwiefern? soll ich dem bot alle perms geben oder was?

winter marten
#

application commands?

solid ingot
#

der bot kann nachrichten zB nur senden, wenn er einen gemeinsamen server mit dem user hat

#

der user muss natürlich auch angeschaltet haben, dass er DMs empfangen kann

solid ingot
quiet socket
#

dann erstelle ich nh test server neben meinen haupt xd

quiet socket
#

Wie kann ich den server von dem der user gekickt wurde erwähnen?

#

hab btw die nachricht hingekriegt

indigo sapphire
#
#Button Bestätigung ShiroSQL
class ShiroMessageSQLButton(discord.ui.View):
    def __init__(self):
        super().__init__(
            timeout=None,
        )
    def Comfirm(
        content=None,
        msg_id=None,):
        @discord.ui.button(
            label='Confirm',
            style=discord.ButtonStyle.success,
            emoji=':checkmark:',
        )
        async def button_callback(self=None, button=None, interaction=None,):
            await interaction.response.send_message(content)

        @discord.ui.button(
            label='Cancel',
            style=discord.ButtonStyle.danger,
            emoji=':cancel:',
        )
        async def button_callback2(self, button, interaction):
            await interaction.response.send
#

warum geht das nicht?

#

für den

@message_command(
        name='Führt SQL Befehl von Codeblock'
    )
    @commands.is_owner()
    async def run_sql(self, ctx, message):
        if message.content.startswith('sql') and message.content.endswith(''):

            conent = message.content.replace('`', '' )
            conent= conent.replace('sql', '')

            await ctx.respond(f'Dein SQL Befehl Eingabe:\nsql\n{conent}\nMessage ID:{message.id}', view=ShiroMessageSQLButton.Comfirm(content=conent), ephemeral=True)
            print(conent)
indigo sapphire
#
@message_command(
        name='Führt SQL Befehl von Codeblock'
    )
    @commands.is_owner()
    async def run_sql(self, ctx, message):
        if message.content.startswith('sql') and message.content.endswith(''):

            conent = message.content.replace('`', '' )
            conent= conent.replace('sql', '')
            
            # Accept
            button_accept = Button(
                label='Confirm',
                style=discord.ButtonStyle.success,
                emoji=':checkmark:',
            )
            async def button_callback_confirm(interaction):
                await interaction.response.send_message(content)

            # Cancel
            button_Cancel = Button(
                label='Cancel',
                style=discord.ButtonStyle.success,
                emoji=':checkmark:',
            )
            async def button_callback_cancel(interaction):
                await interaction.response.send_message(content)

            button_accept.callback= button_callback_confirm
            button_Cancel.callback= button_callback_cancel
            view=View()
            view.add_item(button_accept)
            view.add_item(button_Cancel)

            await ctx.respond(f'Dein SQL Befehl Eingabe:\nsql\n{conent}\nMessage ID:{message.id}', view=view, ephemeral=True)
            print(conent)
```@thick haven
#
Ignoring exception in command Führt SQL Befehl von Codeblock:
Traceback (most recent call last):
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 127, in wrapped
    ret = await coro(arg)
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 1541, in _invoke
    await self.callback(self.cog, ctx, target)
  File "c:\Users\Manuel Berchtold\OneDrive - Kantonale Schule für Berufsbildung\Dokumente\Python\ShrioLaplaceBot\ShiroSystem\cogs\OwnerCommand.py", line 68, in run_sql
    button_accept = Button(
NameError: name 'Button' is not defined

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\bot.py", line 1009, in invoke_application_command
    await ctx.command.invoke(ctx)
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 359, in invoke
    await injected(ctx)
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 135, in wrapped
    raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: NameError: name 'Button' is not defined
``` fehler
hoary copper
#

Warum ist das Gelb unterstrichen ?

solid ingot
#

das kannst du ignorieren, ist nur eine pycharm empfehlung

winter marten
solid ingot
#

ah stimmt, in der bot Klammer fehlt noch ein s

winter marten
solid ingot
#

was soll der genau machen

winter marten
#

bot letancy anzeigen

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @winter marten, du bist jetzt Level 5 🎉

Du hast <@&1024276691205496872> erhalten!

winter marten
#

also halt ping anzeigen am besten im embed

solid ingot
#

in #1027677692730036294 hat dbx dazu ein Beispiel gepostet, Stichwort "about command"

urban glen
#

wie konnte man nochmal einen slash command markieren??
bsp wie im Keks Bot bei der help nachricht :D
sodass man die anklicken kann und dann automatisch im chat dann auch aufploppen

urban glen
#

Hat jemand eine Ahnung wie ich das beheben könnte?

urban glen
#

Dieser Error kommt immer erst nach einer bestimmten Anzahl an Aufrufen

fickle creek
#

Kenne mich da nicht so aus warte auf einen helper oder timoUwU

urban glen
#

zeige mir mal bitte den code

#

vllt kann ich dir helfen

#
import json
import re

import discord
import requests
from colorama import *
from discord.commands import slash_command, Option
from discord.ext import commands, tasks
from pytube import Channel


class YoutubeNotify(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @commands.Cog.listener()
    async def on_ready(self):
        self.checkforvideos.start()

    # Prüft alle 300 Sekunden die Videos
    @tasks.loop(seconds=300)
    async def checkforvideos(self):
        with open("youtubedata.json", "r") as f:
            data = json.load(f)

        print(Fore.RED + "---------------Prüfe YouTube-Daten!---------------")

        # Prüft die Daten in "youtubedata.json" und holt sich die Kanal-URL sowie die html der /videos Seite
        for youtube_channel in data:
            print(Fore.BLUE + f"----------Prüfe YouTube-Daten von {data[youtube_channel]['channel_name']}----------")
            channel = f"https://www.youtube.com/channel/{youtube_channel}"

            c = Channel(channel)
            latest_video_url = c.video_urls[0]

            # Prüft ob die url in "youtubedata.json" nicht die selbe ist wie die letzte Video url und ersetzt diese ggf.
            if not str(data[youtube_channel]["latest_video_url"]) == latest_video_url:
                data[str(youtube_channel)]['latest_video_url'] = latest_video_url

                # dumping der Daten
                with open("youtubedata.json", "w") as f:
                    json.dump(data, f)

                # Nimmt die Channel ID und sendet die Daten
                discord_channel_id = data[str(youtube_channel)]['notifying_discord_channel']
                discord_channel = self.bot.get_channel(int(discord_channel_id))
                msg = f"{data[str(youtube_channel)]['channel_name']} hat gerade ein Video hochgeladen: " \
                      f"{latest_video_url} "
                await discord_channel.send(msg)

    # SlashCommand erstellen um mehr YouTube Accounts hinzuzufügen
    @slash_command(description="Füge einen YouTuber zu den Benachrichtigungen hinzu!")
    @discord.default_permissions(administrator=True)
    @discord.guild_only()
    async def add_yt_notify(self, ctx, channel_id: str, *, channel_name: str, discord_channel_id: str):
        with open("youtubedata.json", "r") as f:
            data = json.load(f)

        data[str(channel_id)] = {}
        data[str(channel_id)]["channel_name"] = channel_name
        data[str(channel_id)]["latest_video_url"] = "none"
        data[str(channel_id)]["notifying_discord_channel"] = discord_channel_id

        with open("youtubedata.json", "w") as f:
            json.dump(data, f)

        await ctx.respond("Daten hinzugefügt!", ephemeral=True)

    # SlashCommand um Benachrichtigungen umzustellen
    @slash_command(description="Ändere den Status der YouTube Benachrichtigungen")
    @discord.default_permissions(administrator=True)
    @discord.guild_only()
    async def yt_notify(
            self, ctx,
            status: Option(str, choices=["aktivieren", "deaktivieren"])
    ):
        if status == "aktivieren":
            self.checkforvideos.start()
        else:
            self.checkforvideos.stop()

        await ctx.respond("Status wurde geändert!", ephemeral=True)


def setup(bot):
    bot.add_cog(YoutubeNotify(bot))
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @stuck drift, du bist jetzt Level 2 🎉

fickle creek
#

@urban glen

urban glen
#

ich sehe es

#

chill

fickle creek
#

Oki

urban glen
#

Genau so ist es

#

Es geht aber nicht nach einer bestimmten Zeit nicht mehr sondern ab einer bestimmten Anzahl an Aufrufen vom Loop. Ich hab die Zeiten schonmal verändert. Hat halt dann etwas länger gedauert aber der Fehler kam trotzdem

#

hä?

#

nach einer bestimmten anzahl der AUFRUFE geht der loop nicht mehr??

#

Jo

#

tf

#

wo holst du dir den die HTML ?

#

Okay ne doch nicht. Hab mich geirrt. Nach ner bestimmten Zeit nicht nach bestimmter Anzahl an Aufrufen

#

du hast keinerlei request's

#

hier nen bsp wie ich es mal gemacht hatte [ka von wann]

@tasks.loop(seconds=30)
async def checkforvideos():
    with open("youtubedata.json", "r") as f:
        data=json.load(f)

        for youtube_channel in data:
            channel = f"htps://www.youtube.com/channel/{youtube_channel}"

            html = request.get(channel+"/videos").text

            try:
                latest_video_url = f"https://www.youtube.com/watch?v=" + re.search('(?<="videoID":").*?(?=")', html).group()
            except:
                continue

            if not str(data[youtube_channel]["latest_video_url"]) == latest_video_url:
                data[str(youtube_channel)]['latest_video_url'] = latest_video_url

                with open("youtubedata.json", "w") as f:
                    json.dump(data, f)

                    discord_channel_id = data[str(youtube_channel)]['notifyinh_discord_channel']
                    discord_channel = client.get_channel(int(discord_channel_id))

                    msg = f"@everyone {data[str(youtube_channel)]['channel_name']} Just Uploaded a Video go and Check it out: {latest_video_url}"

                    await discord_channel.send(msg)
#

So hatte ich es vorher auch. Aber so ging es bei mir aus irgend einem Grund gar nicht

#

tf

#

ich bin komplett confused

#

eig. sollte beides funktionieren

#

und kein error kommen

#

Die Adressen hole ich mir von meiner json

{"UCc0rx1WJuRHLIY8_yPZJpJQ": {"channel_name": "Piranha", "latest_video_url": [], "notifying_discord_channel": "837035842966781953"},
  "UCIxx-IdFRti5dihK3DsEb6Q": {"channel_name": "JackXP_zockt", "latest_video_url": [], "notifying_discord_channel": "837035726796226653"},
  "UCRc2sPujzzAaRoZx86Ni_yw": {"channel_name": "Ennolum", "latest_video_url": [], "notifying_discord_channel": "888192888582832150"}}
#

ahh

#

ok erklärt es dann

#

ne ok sorry kann ich dir ned helfen sollte so eig. klappen

#

Joa sollte. Des is ja des Problem xD

#

Hier genau das selbe Problem mit meinem anderen Bot

indigo sapphire
#

wie kann ich in ephermeral löschen bzw verschwinden lassen durch ein button

thick haven
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @thick haven, du bist jetzt Level 7 🎉

indigo sapphire
thick haven
#

ja sicher

indigo sapphire
#

okay

#

hab eine seltsamme error

Ignoring exception in command Run SQL Command Codeblock:
Traceback (most recent call last):
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 127, in wrapped
    ret = await coro(arg)
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 1541, in _invoke
    await self.callback(self.cog, ctx, target)
  File "c:\Users\Manuel Berchtold\OneDrive - Kantonale Schule für Berufsbildung\Dokumente\Python\ShrioLaplaceBot\ShiroSystem\cogs\OwnerCommand.py", line 79, in run_sql
    content= content.replace(f'{sql[0]}', '')
TypeError: 'Connection' object is not subscriptable

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\bot.py", line 1009, in invoke_application_command
    await ctx.command.invoke(ctx)
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 359, in invoke
    await injected(ctx)
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 135, in wrapped
    raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: TypeError: 'Connection' object is not subscriptable

#
sql= ['sql', 'mysql']

        # Cancel
        button_cancel = Button(
            label='Cancel',
            style=discord.ButtonStyle.danger,
            emoji=':cancel:',
        )
        async def button_callback_cancel(interaction):
            await interaction.response.send_message(content)
        button_cancel.callback= button_callback_cancel

#SQLite
        if message.content.startswith(f'{sql[0]}') and message.content.endswith(''):
            async with aiosqlite.connect('ShiroSQLite.db') as sql:
                content = message.content.replace('`', '' )
                content= content.replace(f'{sql[0]}', '')
                
                # Accept
                button_accept = Button(
                    label='Confirm',
                    style=discord.ButtonStyle.success,
                    emoji=':checkmark:',
                )
                async def button_callback_confirm(interaction):
                    print(content)
                    async with db.execute(f"""
                    {content}
                    """
                    ) as cursor:
                        feedback = await cursor.fetchone()
                        await interaction.response.send_message(feedback, ephemeral=True)
                button_accept.callback= button_callback_confirm
                
                #add Button
                view=View()
                bt_list= [button_accept, button_cancel]
                # Schleife um einzelne Button Hinzufügen
                for bt_add in bt_list:
                    view.add_item(bt_add)

                await ctx.respond(f'Dein SQL Befehl Eingabe:\n{sql[0]}\n{content}\nMessage ID:{message.id}', view=view, ephemeral=True)
#

mein code

#

idk aber ich wollte nur sql[0] liste hollen aus der sql liste

#

was soll da falsch sein

#

was ich ausführen will:

CREATE TABLE
IF NOT EXISTS test(
    rowID INTEGER PRIMARY KEY,
    Server_Name TEXT,
    Server_ID INTEGER,
    Server_Premium BOOLEAN DEFAULT False,
    Server_Langue TEXT,
    Channel_ID_For_7DSGC_Newsletter INTEGER,
    Channel_For_7DSGC_Newsletter_BOOLEAN BOOLEAN DEFAULT False
)
#

gelöst es lagg an den sql tulpe hab es mal vorübergehend so gemacht habt, habt ihr noch eine lösung für den tulpe sql?

#

hab jetzt eine andere frage:

Ignoring exception in view <View timeout=180.0 children=2> for item <Button style=<ButtonStyle.success: 3> url=None disabled=False label='Confirm' emoji=<PartialEmoji animated=False name='checkmark' id=1034804861021204510> row=None>:
Traceback (most recent call last):
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ui\view.py", line 396, in _scheduled_task
    await item.callback(interaction)
  File "c:\Users\Manuel Berchtold\OneDrive - Kantonale Schule für Berufsbildung\Dokumente\Python\ShrioLaplaceBot\ShiroSystem\cogs\OwnerCommand.py", line 89, in button_callback_confirm
    async with sql.execute(f"""
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\aiosqlite\context.py", line 41, in __aenter__
    self._obj = await self._coro
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\aiosqlite\core.py", line 184, in execute
    cursor = await self._execute(self._conn.execute, sql, parameters)
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\aiosqlite\core.py", line 67, in _conn 
    raise ValueError("no active connection")
ValueError: no active connection

was hat mit diese error aufsicht?

indigo sapphire
#

hey guys

weiss jemand was das bedeutet?

#

den connection

indigo sapphire
#

Hat jemand heute Zeit für VC ab 18:00 hätte paar fragen zu SQlite

quiet socket
#

Weiss jemand was der error bedeutet? ich verstehe ihn nicht xD. ```py
C:\Users\Georgi\AppData\Local\Programs\Python\Python310\python.exe "C:\Users\Georgi\PycharmProjects\py-cord projekt eucord ai\main.py"
Traceback (most recent call last):
File "C:\Users\Georgi\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\cog.py", line 757, in _load_from_module_spec
spec.loader.exec_module(lib) # type: ignore
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "C:\Users\Georgi\PycharmProjects\py-cord projekt eucord ai\cogs\admin.py", line 6, in <module>
class Admin(commands.Cog):
File "C:\Users\Georgi\PycharmProjects\py-cord projekt eucord ai\cogs\admin.py", line 13, in Admin
async def kick(self,
TypeError: guild_only() takes 0 positional arguments but 1 was given

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "C:\Users\Georgi\PycharmProjects\py-cord projekt eucord ai\main.py", line 65, in <module>
bot.load_extension(f"cogs.{filename[:-3]}")
File "C:\Users\Georgi\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\cog.py", line 893, in load_extension
self._load_from_module_spec(spec, name)
File "C:\Users\Georgi\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\cog.py", line 760, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.admin' raised an error: TypeError: guild_only() takes 0 positional arguments but 1 was given

Process finished with exit code 1

indigo sapphire
#

Fühl mit dir

indigo sapphire
#

Den kick Befehl anscheinend

solid ingot
#

schick mal den code wo du guild_only benutzt hast

quiet socket
#

Der ganze Code: ```py
import discord
from discord.ext import commands
from discord.commands import slash_command, Option

class Admin(commands.Cog):
def init(self, bot):
self.bot = bot

@slash_command(description="Kicke einen User")
@discord.default_permissions(administrator=True,kick_members=True)
@discord.guild_only
async def kick(self,
               ctx,
               member: Option(discord.Member, "Wähle einen Member"),
               reason: Option(str)):
    try:
        await member.kick()
    except discord.Forbidden:
        await ctx.respond("Ich habe keine Berechtigungen, um diesen Member zu kicken")
        return
    await ctx.respond(f"{member.mention} wurde erfolgreich gekickt", ephemeral=True)
    embed = discord.Embed(
        title="🚨 - Du wurdest gekickt!",
        description=f"» Du wurdest von dem `{ctx.guild.name}` Server gekickt."
    )
    embed.add_field(name="┏`👮` - **GEKICKT VON:**", value=ctx.author.mention, inline=False)
    embed.add_field(name="┣`🚧` - **GRUND:**", value=f"`{reason}`", inline=False)
    embed.add_field(name="┗🚨 - **ACHTUNG:**", value="`Sollte sich sowas wiederholen, wirst du gebannt!`",
                    inline=False)
    await member.send(embed=embed)

    @slash_command()
    @commands.has_permissions(administrator=True)
    async def hallo(self,ctx):
        await ctx.respond("Hey")

    @commands.Cog.listener()
    async def on_application_command_error(self, ctx, error):
        await ctx.respond(f"Es ist ein Fehler aufgetreten: ```{error}```")
        raise error

def setup(bot):
bot.add_cog(Admin(bot))```

solid ingot
#

da fehlen klammern hinter guild_only

indigo sapphire
#

Perfekt tib macht einfach in 10 sec

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @indigo sapphire, du bist jetzt Level 21 🎉

indigo sapphire
#

😂peepoheart

quiet socket
#

das war der fehler danke ^^

indigo sapphire
quiet socket
#

ich habe jetzt nh anderes problem mir wird der hallo slash nicht angezeigt haha

indigo sapphire
#

Liegt bestimmt an deine einrückung

quiet socket
#

Nahh wieder ein error xd

#
C:\Users\Georgi\AppData\Local\Programs\Python\Python310\python.exe "C:\Users\Georgi\PycharmProjects\py-cord projekt eucord ai\main.py" 
Traceback (most recent call last):
  File "C:\Users\Georgi\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\cog.py", line 757, in _load_from_module_spec
    spec.loader.exec_module(lib)  # type: ignore
  File "<frozen importlib._bootstrap_external>", line 879, in exec_module
  File "<frozen importlib._bootstrap_external>", line 1017, in get_code
  File "<frozen importlib._bootstrap_external>", line 947, in source_to_code
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\Users\Georgi\PycharmProjects\py-cord projekt eucord ai\cogs\cooldown.py", line 10
    async def hey(self,ctx):
IndentationError: unexpected indent

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\Georgi\PycharmProjects\py-cord projekt eucord ai\main.py", line 65, in <module>
    bot.load_extension(f"cogs.{filename[:-3]}")
  File "C:\Users\Georgi\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\cog.py", line 893, in load_extension
    self._load_from_module_spec(spec, name)
  File "C:\Users\Georgi\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\cog.py", line 760, in _load_from_module_spec
    raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.cooldown' raised an error: IndentationError: unexpected indent (cooldown.py, line 10)

Process finished with exit code 1```
#

habs gefixt xd

indigo sapphire
#

Auflösung?

indigo sapphire
#

Rösti

#

Weiss du wie ich das fixen kann?
#💬・chat message

obtuse estuary
#

Nh?

#

Ne bin gerade am Handy is schlecht

indigo sapphire
#

Ok

urban glen
indigo sapphire
#

hey leute gibt es eine möglichkeit abzuchecken ob in message.conntent den inhalt irgenwas mit 'Hello World'

urban glen
#

wie meinst? Also ob in einem message content ein wort enthalten ist mit leerzeichen und man dies checken kann?

indigo sapphire
#

oder wort: möchte

#

wie kann ich da eine schöne await autput feedback machen?

  • ob es geklammt hat.
  • Fehler meldung ect
#

mein code

#SQLite
        if message.content.startswith(f'sql') and message.content.endswith(''):
                content = message.content.replace('`', '' )
                content= content.replace(f'sql', '')
                
                # Accept
                button_accept = Button(
                    label='Confirm',
                    style=discord.ButtonStyle.success,
                    emoji=':checkmark:',
                )
                async def button_callback_confirm(interaction):
                    async with aiosqlite.connect('ShiroSQLite.db') as sql:
                        if message.content in ['INSERT', 'SELECT',]:
                            async with sql.execute(
                                f"""
                                {content}
                                """
                            ) as cursor:
                                async for row in cursor:
                                    row= await cursor.fetchone() or await cursor.fetchall()

                            await interaction.response.send_message(
                            f'sql\n{row}\n',
                            ephemeral=True
                            )
                        else:
                            await sql.execute(f"""
                            {content}
                            """)
                            await interaction.response.send_message(
                            f'sql\n{cursor}\n',
                            ephemeral=True
                            )
indigo sapphire
#

hat jemand heute zeit für call?

urban glen
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @stuck drift, du bist jetzt Level 3 🎉

solid ingot
#

vom slash command

urban glen
#

Woher bekomm ich die ID vom Slash Command?

#

rechts klick auf den grauen kasten der dort aufplopt

#

@urban glen

#

Ah okay. Danke

old ore
#

wie kann ich dort das so machen das die statustask defn ist @solid ingot

#

Hilllffleeee

urban glen
#

hahah das kenne ich noch

#

warte kurz

#
activity = discord.Activity(type=discord.ActivityType.listening, name=f"/help")
status = discord.Status.idle


client = commands.Bot(
    intents=discord.Intents.all(),
    command_prefix=get_config('prefix'),
    activity=activity,
    status=status
)
old ore
#

Danke

urban glen
#

Was mach ich falsch, dass die /commands nicht markiert werden?

solid ingot
#

hinten fehlt ein >

#

statt dem doppelpunkt

urban glen
#

Okay danke

iron apex
#

wenn ich nen bot einladen will kommt das hier

#

jmd eine idee ?

fickle creek
iron apex
#

ah bin lost

indigo sapphire
#

kann mir jemand sagen wie ich das hier als await message schicken kann?

#

genau genommen so als liste

old ore
#

ich find den error nicht

indigo sapphire
#

irgenwas mit self

fickle creek
#

Ähm

old ore
fickle creek
#

Ging es mal davor?

old ore
fickle creek
#

Ohne?

old ore
#

so das nur die nachicht geschickt wurd

urban glen
urban glen
old ore
fickle creek
old ore
#

ist bei embed =

fickle creek
#

Glaub ich

urban glen
#

Zeig mal deine View also wo die class für die View ist

fickle creek
urban glen
fickle creek
#

Ja

indigo sapphire
old ore
indigo sapphire
#

xD

urban glen
#

Bzw in der view fehlt ein self parameter

old ore
#

wo?

urban glen
#

Hä?

#

Das sollte so funktionieren

#

Warte ich geh ma kurz an meinen pc wollte zwar eig. Schlafen aber egal :)

#

Gib mir 2-3 minuten

old ore
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @old ore, du bist jetzt Level 7 🎉

indigo sapphire
#

dein button code ist für mich next level lol

indigo sapphire
#

jaa

#

bei mir so badly

#

idk ich hab nicht so mit button classen

old ore
#

der geht nicht

indigo sapphire
#

nur same

indigo sapphire
fickle creek
#

Fehlt da nicht ()?

urban glen
urban glen
#

@old ore

urban glen
old ore
fickle creek
#

Bin profiPepeChill

fickle creek
urban glen
#

xD

indigo sapphire
fickle creek
indigo sapphire
#

wisst ihr was noch hier fehlt?
eine level system für Freiwilliger Helper mit bewertungen und so xD.

old ore
urban glen
#

nice

fickle creek
#

Ich bin ekn pro

#

Ein

old ore
#

Danke an euch alle

fickle creek
#

Bitte

old ore
urban glen
#

bro bin komplett umsonst jzt aufgestanden 😢

fickle creek
old ore
urban glen
#

schau dir timos tutorial nochmal an und dann schaffst du das :D

indigo sapphire
urban glen
#

jzt kann ich eh ned mehr schlafen

indigo sapphire
#

Wenn zB die Bewertung 10/10 ist und oft könnte man zB Eine besser rolle bekommen

#

Kurz gesagt eine Ranking System für Freiwillige Helper

quiet socket
#

Hmm habe nen problem und glaube es liegt an der einrückung. bei mir werden die buttons und die hey nachricht nicht angezeigt:

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @quiet socket, du bist jetzt Level 5 🎉

Du hast <@&1024276691205496872> erhalten!

quiet socket
#
import discord
from discord.ext import commands
from discord.commands import slash_command


class Button(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @slash_command()
    async def button1(self,ctx):
        await ctx.respond("Klicke hier", view=TutorialView())




def setup(bot):
    bot.add_cog(Button(bot))

class TutorialView(discord.ui.View):
    @discord.ui.button(label="Klicke hier", style=discord.ButtonStyle.green,emoji=":icons_activities:")
    async def button_callback1(self,button, interaction):
        await interaction.response.send_message("Hey!", ephemeral=True)

    @discord.ui.button(label="Klicke hier", style=discord.ButtonStyle.green, emoji=":icons_activities:")
    async def button_callback2(self, button, interaction):
        button.disabled = True

        await interaction.message.edit(view=self)
        await interaction.response.edit_message(view=self)
        await interaction.followup.send("Hey!", ephemeral=True)```
indigo sapphire
#

Wait was ist followup???

#

Ganz was neues👀

quiet socket
#

irgendewas mit webhook oder so xd

indigo sapphire
#

Bin so lost

quiet socket
#

haha

#

same

#

habs irgendwie selber gefixt suuu

indigo sapphire
#

Ihr hab so viele coole Projekte und ich nur Run sql command

quiet socket
indigo sapphire
#

Hab so coole Idee kann sie aber nicht umsetzen

quiet socket
#

naja ich will coden lernen damit ich nh bisschen geld verdiene xd

indigo sapphire
#

🥲

indigo sapphire
#

Oder eher 2 Idioten 1 Gedanke

#

😂

urban glen
indigo sapphire
#

Cool

quiet socket
urban glen
#

okay xD

indigo sapphire
#

xD wo ist das Problem?

#

🥲😂

indigo sapphire
#

warum bekomme ich dies error?

Ignoring exception in view <View timeout=180.0 children=2> for item <Button style=<ButtonStyle.success: 3> url=None disabled=False label='Confirm' emoji=<PartialEmoji animated=False name='checkmark' id=1034804861021204510> row=None>:     
Traceback (most recent call last):
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ui\view.py", line 396, in _scheduled_task
    await item.callback(interaction)
  File "c:\Users\Manuel Berchtold\OneDrive - Kantonale Schule für Berufsbildung\Dokumente\Python\ShrioLaplaceBot\ShiroSystem\cogs\OwnerCommand.py", line 150, in button_callback_confirm
    await mysql.execute(f"""
AttributeError: 'Connection' object has no attribute 'execute'
#

den sql code hab ich quasi 1:1 von tibue copiert

solid ingot
#

ich arbeite aber mit sqlite, nicht mit mysql

indigo sapphire
#

async with aiosqlite.connect('ShiroSQLite.db') as sql:
                    async with sql.execute(f"""SELECT * FROM UserConfig"""
                        ) as cursor:
                            feedback= await cursor.fetchall()
                            for results in feedback:
                                print(results)
                                return
                        
                        await interaction.response.send_message(
                            f'sql\n{results}\n',
                            ephemeral=True
                        )
indigo sapphire
solid ingot
#

wieso nennst du das dann mysql? :D

indigo sapphire
#

idk so viel ich weiss führe ich den befehl immer mit sqlite

#

:3

barren badger
#

await sql.execute()

#

Du brauchst die Variable mit der du auf die datei zugreifst

indigo sapphire
#

war wohl mysql command

barren badger
#

Was ist mit der Einrückung oder hat das Discord nicht übernohmen?

indigo sapphire
# solid ingot wieso nennst du das dann mysql? :D

dafür hab ich jetzt diese error,

C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py:1541: RuntimeWarning: coroutine 'Connection.cursor' was never awaited
  await self.callback(self.cog, ctx, target)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
Ignoring exception in view <View timeout=180.0 children=2> for item <Button style=<ButtonStyle.success: 3> url=None disabled=False label='Confirm' emoji=<PartialEmoji animated=False name='checkmark' id=1034804861021204510> row=None>:     
Traceback (most recent call last):
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ui\view.py", line 396, in _scheduled_task
    await item.callback(interaction)
  File "c:\Users\Manuel Berchtold\OneDrive - Kantonale Schule für Berufsbildung\Dokumente\Python\ShrioLaplaceBot\ShiroSystem\cogs\OwnerCommand.py", line 104, in button_callback_confirm
    await sql.execute(f"""
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\aiosqlite\core.py", line 184, in execute
    cursor = await self._execute(self._conn.execute, sql, parameters)
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\aiosqlite\core.py", line 67, in _conn
    raise ValueError("no active connection")
ValueError: no active connection
indigo sapphire
solid ingot
#

du hast ein await vergessen

indigo sapphire
barren badger
#

feedback= await (mach da mal ein leerzeichen rein)

indigo sapphire
indigo sapphire
#

da ?
feedback = await cursor.fetchall()

barren badger
#

Ja, aber auch bei Content. Davon bekomm ich Ausschläge xD

indigo sapphire
#

wo denn?

#

ich lerne alles btw

indigo sapphire
barren badger
#

Glaub bei sql.execute()

#

du hast da async with

indigo sapphire
#

ja genau

#

und weiter?

#

sollte ich noch await async with machen?

barren badger
#

ne stattdessen ein await

#

bin mir aber nicht sicher

indigo sapphire
#

ich hab hier with gemacht wie beim video was soll da falsch sein?```py
async with sql.execute(f"""SELECT * FROM UserConfig"""
) as cursor:
feedback = await cursor.fetchall()
for results in feedback:
print(results)
return

barren badger
#

Ein einfacher String reicht hier übrigens

indigo sapphire
fickle creek
#

Datenbank🤢🤮

barren badger
#

xD

indigo sapphire
fickle creek
#

Ich glaub bald kommt teil 3

indigo sapphire
#

xD

barren badger
fickle creek
solid ingot
#

@indigo sapphire ich empfehle dir wirklich, erstmal kleinere projekte zu machen, die du auch wirklich schaffst. die kannst du dann nach und nach erweitern. aktuell machst du viel zu schwierige projekte, bei denen du alle 2 minuten etwas nachfragen musst

indigo sapphire
#

hää ich mach ja nur sqlite

#

sqlite ist halt kompliziert gegensatzt zu mysql

solid ingot
#

interessante meinung

#

wofür benötigst du eigentlich diese zeile?

indigo sapphire
#

idk hab nach recherche gedacht es gibt keine cursor darum

solid ingot
#

mach es lieber so wie in meinem video

indigo sapphire
#

in mysql gibt es dafür ein cursor

indigo sapphire
solid ingot
#

also diese zeile hab ich aber nicht in meinem video :D

indigo sapphire
#

naja der cursor = hab ich eigenltich als kommentar

indigo sapphire
#

grundsätlich hab ich diese code fast 1:1 von dir tibue

async with sql.execute(f"""SELECT * FROM UserConfig"""
) as cursor:
    feedback = await cursor.fetchall()
    for results in feedback:
        print(results)
        return
indigo sapphire
solid ingot
#

geht schon, würde ich aber nicht empfehlen

indigo sapphire
#

xD

#

und den button als bestättigen

#

oder den button als callback variable von slash befehle zu bekommen wurde leider mir noch nicht gezeigt, sonst hätte ich so gemacht

crystal star
#

wie kann ich abfragen ob eine nachricht ein bestimmtes wort enthält?

solid ingot
#

if "Keks" in message.content

indigo sapphire
#

zb ```py
if message.content.startswith(f'dein text') and message.content.endswith('deine ende xD'):

#

oder py if message.content in ['SELECT', 'CREATE']:

barren badger
#

ehm, das ist ziemlich umständlich.

indigo sapphire
crystal star
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @crystal star, du bist jetzt Level 6 🎉

barren badger
crystal star
barren badger
#
['wort1', 'wort2']
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @barren badger, du bist jetzt Level 5 🎉

Du hast <@&1024276691205496872> erhalten!

indigo sapphire
barren badger
indigo sapphire
#

wie umständlich???

crystal star
barren badger
#

wait

indigo sapphire
#

xD

#

jaja umständlich xD

#
Ignoring exception in view <View timeout=180.0 children=2> for item <Button style=<ButtonStyle.success: 3> url=None disabled=False label='bestättigen' emoji=<PartialEmoji animated=False name='checkmark' id=1034804861021204510> row=None>: 
Traceback (most recent call last):
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ui\view.py", line 396, in _scheduled_task
    await item.callback(interaction)
  File "c:\Users\Manuel Berchtold\OneDrive - Kantonale Schule für Berufsbildung\Dokumente\Python\ShrioLaplaceBot\ShiroSystem\cogs\OwnerCommand.py", line 89, in button_callback_confirm
    if ['SELECT', 'CREATE'] in message.content:
TypeError: 'in <string>' requires string as left operand, not list
#

hab so geändert wie du gesagt hast

#

lol

#

als tulpe geht es so nicht

indigo sapphire
solid ingot
indigo sapphire
#

genauere erklärung

solid ingot
indigo sapphire
#

ah stimmt

crystal star
indigo sapphire
#
x = ['SELECT', 'CREATE']
for x in message.content:

so etwa

#

x ist eine variable da kannst du rein tun was du willst

solid ingot
#

das ist wieder nicht ganz richtig

barren badger
#

Ist jetzt wieder im Tupel

solid ingot
#
x = ['Wort1', 'Wort2']
for word in x:
    if word in message.content:
        ...
indigo sapphire
#

verwirrt

#

okayyy interessant

barren badger
indigo sapphire
#

ist das nicht auch umstänglich?

#

verstehe den unterschied nicht bei mir funktioniert beides gut

barren badger
#

Ne

barren badger
solid ingot
indigo sapphire
#

IN ist doch drinn?

quiet socket
#

Hmm bei mir funktioniert das Callback nicht.

#

code:

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


class Modal(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @slash_command()
    async def modal(self, ctx):
        modal = TutorialModal(title="Erstelle ein Embed")
        await ctx.send_modal(modal)


def setup(bot):
    bot.add_cog(Modal(bot))


class TutorialModal(discord.ui.Modal):
    def __init__(self, *args, **kwargs):
        super().__init__(
            discord.ui.InputText(
                label="Embed Titel",
                placeholder="Placeholder"
            ),
            discord.ui.InputText(
                label="Embed Beschreibung",
                placeholder="Placeholder",
                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()
            )
            await interaction.response.send_message(embed=embed)

#

es kommen auch keine errors

#

nur das

solid ingot
#

dein callback ist wahrscheinlich zu weit nach rechts eingerückt

quiet socket
barren badger
#

Wegen der Einrückung wird das nicht erkannt.

quiet socket
#

hat funktioniert thx

old ore
#

ich glaub ich hab ein großes problem gerade bei der einreihung

#

@fickle creek

fickle creek
#

Ehm

#

Warte kurz

#

Esse döner

#

Ich antworte erst wenn es sortiert istPepeChill

fickle creek
old ore
old ore
urban glen
#

Achso du musst auch self benutzen, wenn du es in einer class hast

quiet socket
#

Hmm error bei callback:

#
C:\Users\Georgi\AppData\Local\Programs\Python\Python310\python.exe "C:\Users\Georgi\PycharmProjects\py-cord projekt eucord ai\main.py" 
ΞUROPΞ CORD ΛI#2725 ist online
Ignoring exception in view <TutorialView timeout=180.0 children=1> for item <Button style=<ButtonStyle.secondary: 2> url=None disabled=False label='Klicke hier' emoji=None row=None>:
Traceback (most recent call last):
  File "C:\Users\Georgi\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ui\view.py", line 414, in _scheduled_task
    await item.callback(interaction)
  File "C:\Users\Georgi\PycharmProjects\py-cord projekt eucord ai\cogs\modal.py", line 52, in button_callback
    await interaction.response.send_modal(TutorialModal("Erstelle ein Embed"))
  File "C:\Users\Georgi\PycharmProjects\py-cord projekt eucord ai\cogs\modal.py", line 26, in __init__
    super().__init__(
TypeError: Modal.__init__() missing 1 required keyword-only argument: 'title'```
#

code: ```py
import discord
from discord.ext import commands
from discord.commands import slash_command

class Modal(commands.Cog):
def init(self, bot):
self.bot = bot

@slash_command()
async def modal(self, ctx):
    modal = TutorialModal(title="Erstelle ein Embed")
    await ctx.send_modal(modal)

@slash_command()
async def button_modal(self, ctx):
    await ctx.respond("Hey", view=TutorialView())

def setup(bot):
bot.add_cog(Modal(bot))

class TutorialModal(discord.ui.Modal):
def init(self, *args, **kwargs):
super().init(
discord.ui.InputText(
label="Embed Titel",
placeholder="Placeholder"
),
discord.ui.InputText(
label="Embed Beschreibung",
placeholder="Placeholder",
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()
        )
    await interaction.response.send_message(embed=embed)

class TutorialView(discord.ui.View):
@discord.ui.button(label="Klicke hier")
async def button_callback(self,button,interaction):
await interaction.response.send_modal(TutorialModal("Erstelle ein Embed"))```

solid ingot
#

beim button fehlt das title= vor "Erstelle ein Embed"

quiet socket
#

thx

crystal star
#

ist es möglich bestimmte rollen von dem command cooldown auszuschließen?

crystal star
#

wie?

quiet socket
#

ich glaube so bin mir aber nicht sicher: py @commands.has_role("Role name")

#

Was könnte der Grund sein das mir der Bot keine Zahl sagt?

fickle creek
#

Pls

quiet socket
#

es gibt keinen error

fickle creek
#

Mh

quiet socket
#
from discord.ext import commands
from discord.commands import slash_command


class Base(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @slash_command()
    async def wait(self, ctx):
        await ctx.respond("Gib eine Zahl ein!")

        answer = await self.bot.wait_for("message")

        await answer.reply(f"Du hast die Zahl {answer.content} eingegeben.")


def setup(bot):
    bot.add_cog(Base(bot))
fickle creek
#

Wenn ich mich nicht täusche fehlt da was

#

Irgendwas mit min 1 max 100 irgend wie so

quiet socket
#

ich bin noch nicht so weit haha

fickle creek
#

Dann schau weiter

indigo sapphire
#

Kann mir jemand sagen wie ich eine private Naricht mit dem bot schicken kann von User.id

indigo sapphire
#

ty

old ore
#

wieso geht das

#

nicht

indigo sapphire
#

Es steht Line Main 179

urban glen
#

Member_descriptor ist nicht definiert, also du musst den member definieren, damit man diesen dann auch mention kann

old ore
#

beachtet bitte nicht das a dort. Kann mir wer sagen wie ich mit der If funktion checken kann ob der interaction.user eine bestimmte rolle hats

#

@fickle creek weißt du myb wie das geht

#

bist ja der pröööööffffffffffiiiiiiiiiii

old ore
#

@solid ingot

urban glen
urban glen
#

Ist da ein if und,
Fehlt ein Doppelpunkt

#

xd

barren badger
#

Ich würde gerne in SQL mithilfe eines Commands eine neue Tabelle anlegen, die jedoch den Namen des Servers hat. Ist das möglich?

indigo sapphire
#

beispiel

ServerName = Den server name
await db.execute(f"""CREATE TABLE IF NOT EXISTS {ServerName}(
            UserID INTEGER PRIMARY KEY,
            UserPremium BOOLEAN DEFAULT False,
            UserLangue TEXT,
            ChannelF_or_7DSGC_Newsletter_BOOLEAN BOOLEAN DEFAULT False
            )
            """
        )
#

so kannst du es vorstellen

barren badger
#

Ah ok, hatte versucht es mit einem ? zu ersetzen. Aber das ist ja noch simpler!

indigo sapphire
#

xD

#

ich hab immer mit f gearbeitet

#

es geht sogar besser meine meinung nach als ?

indigo sapphire
#

kann mir jemand helfen mit eine liste als embed zu schicken:

ColumnList = ['UserID', 'UserPremium', 'UserLangue', 'ChannelF_or_7DSGC_Newsletter_BOOLEAN']
UserList = [(443455971323543554, 1, None, 1), (650456829712793636, 1, None, 0)]
#

bin dann mal off

#

in eine embed field

#

Alles was in Columnlist ist sollte neue embed.add_field erstellen als name

#

und User list dann als in value aber unter einander

#

beispiel:

#

Name=UserID',
Value=

  • 443455971323543554
  • 650456829712793636
    Zirka so
barren badger
# indigo sapphire joa sollte möglich sein

Geht leider nicht.

@slash_command()
    async def enable(self, ctx):
        async with aiosqlite.connect(self.DB) as db:
            server_name = ctx.guild.name
            await db.execute(
                f'''
                CREATE TABLE IF NOT EXISTS {server_name} (
                user_id INTEGER PRIMARY KEY,
                msg_count INTEGER DEFAULT 0,
                xp INTEGER DEFAULT 0
                )
                '''
            )
        await ctx.respond('Das Levelsystem wurde aktiviert!', ephemeral=True)
#
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: OperationalError: near "Bot": syntax error
indigo sapphire
#

Irgendwas mit bot

#

Liegt nicht an deine DB Befehl

#

Mach mal server_name= "test"

indigo sapphire
#

nur sollte die UserID oder alle doppelte name zusammen

crystal star
#

wie kann man abfragen ob in einer nachricht ein link ist?

solid ingot
#

eine einfache version wäre if "http" in message.content oder so etwas in der art

#

alternativ kannst du regex benutzen

crystal star
#

will halt das man in einen channel nur links senden kann

crystal star
#

weiß aber nicht ob das überhaupt möglich ist

#

oder egal whiteliste einfach links

calm bone
#

@solid ingot weißt du warum das kommt?

#

kein fehler code

solid ingot
#

das kann viele ursachen haben, schick mal den code

calm bone
#
class Shurtsdc44(commands.Cog):
    def __init__(self, bot):
        self.bot = bot


    @commands.command()
    @commands.guild_only()
    async def hey2(self, ctx):
        await ctx.message.delete()
        select = Select(min_values=1, max_values=1, placeholder="Triff eine Auswahl",
        options=[
        discord.SelectOption(label="Esport Teams", emoji="📜", value="DEINE MOM"),
        discord.SelectOption(label="Privates Teams", emoji="📣", value="DEINE VATER")
        ])

        async def my_callback(interaction: discord.Interaction):
            #member = interaction.user
            #role = 996700244190445639
            if "DEINE MOM" in interaction.data['values']:
                await interaction.response.send_message(f'Fülle dieses Formular aus, um dich für die eSport Teams zu bewerben! https://forms.gle/oi4LPUrY8EBSCrM27', ephemeral=True),

            elif "DEINE VATER" in interaction.data['values']:
                await interaction.response.send_message(f'Fülle dieses Formular aus, um ein Privates Team zu erstellen! https://forms.gle/KZCjFmNC3v3DEiLX8', ephemeral=True)

        select.callback = my_callback
        
        view = View()
        view.add_item(select)

        em = discord.Embed(
            title='Private Teams',
            description=f"""**
            📣blabla
)**""",
            color=discord.Color.brand_red(), timestamp=ctx.message.created_at,
        )
        em.set_footer(text=self.bot.user.name, icon_url=self.bot.user.avatar)
        #em.set_image(url="https://cdn.discordapp.com/attachments/996486487543660625/1034136377039786044/22-09-20_Banner.png")

        #channel = self.bot.get_channel() # füge die Channel ID ein, wo die Ticket Nachricht mit dem Dropdown Menu geschickt werden soll
        await ctx.send(embed=em, view=view)
#

komisch das ging und auf einmal geht es net mehr

calm bone
solid ingot
#

welche nachricht?

calm bone
solid ingot
#

hm schwierig, das ist keine fehlermeldung, sondern nur eine allgemeine nachricht dass etwas nicht funktioniert hat

crystal star
#

bin gerade sehr dumm... warum geht das nicht

        if message.channel.id in [(get_config('botchannel')),]:
            await message.delete()
crystal star
#

?

urban glen
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @craggy yew, du bist jetzt Level 14 🎉

urban glen
crystal star
urban glen
#
[(get_config('botchannel'))]:

das sieht halt falsch aus
``` Was macht deine get_config funktion?
crystal star
#

ladet einfach nur eine channel id aus einer config.json file

#

habe auch

        print(message.channel.id)
        print(get_config('botchannel'))
#

vor dem anderen

#

und beide ist 1 zu 1 das selbe

urban glen
#

Probier es mal ohne []

#

Weil eigentlich halt, wenn man auch z.B. eine List hat dann macht man auf nicht nochmal

list = ["a", "b"]

if a in [list]:

sondern

if a in list
crystal star
#
Ignoring exception in on_message
Traceback (most recent call last):
  File "C:\Users\xMarco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\client.py", line 382, in _run_event
    await coro(*args, **kwargs)
  File "c:\!me\documents\xMarcoy\bot\xMarcoy\cogs\on_event.py", line 23, in on_message
    if message.channel.id in (get_config('botchannel')):
TypeError: 'in <string>' requires string as left operand, not int
urban glen
#

Guck mal ob du das als string setzen kannst str()

crystal star
#

kein error aber passiert auch nichts

urban glen
#

Wait ist botchannel nur ein Channel oder mehrere

crystal star
#

nur einer

#

aber mit ==

#

geht es auch nicht

urban glen
#

if message.channel.id in str(get_config('botchannel')):
            await message.delete()



crystal star
#
TypeError: 'in <string>' requires string as left operand, not int
urban glen
#

dann mach das nochmal in einen string

crystal star
#

in get_config('botchannel') steht
"botchannel": "985120824602292304",

crystal star
urban glen
#

str()

crystal star
#

TypeError: 'in <string>' requires string as left operand, not int

crystal star
urban glen
#

Zeig mal deinen code, dann kann ich das schnell mal checken

#

Ohne token

crystal star
urban glen
#

ja

crystal star
#

hab aber noch mehr als 10 andere commands die funktionieren

#

also kann mir nicht vorstellen das es daran liegt

urban glen
#

Achso meinte da wo dieser command ist

#

sry

crystal star
#
  # imports
import discord, json
from discord.ext import commands
from discord.commands import slash_command


  #load config.json
def get_config(name):
    with open("config.json", "r") as f:
        json_file = json.load(f)
        return json_file[name]


class on_event(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @commands.Cog.listener()
    async def on_message(self, message):
        
        print(message.channel.id)
        print(get_config('botchannel'))
        if message.channel.id in str((get_config('botchannel'))):
          await message.delete()


def setup(bot):
    bot.add_cog(on_event(bot))
urban glen
#

Zu viele Klammern

crystal star
#

hab das davor ausprobiert

#

funktioniert auch nicht

urban glen
#

chso

crystal star
#

beides error

urban glen
#
def get_config(name):
    with open("condig.json", "r") as f:
        json_file = json.load(f)

    return json_file[str(name)]
crystal star
#

?

urban glen
#

Ist name der Bot channel?

crystal star
#

wie meinst du?

urban glen
#

achsooooo

#

Obwohl warte irgendwie

#

def channels(channel_id):

    channel_ids = get_config()

    if str(channel_id) in channel_ids:
        return True
    else:
        print("asas")
  


def get_config():
    with open("config.json", "r") as f:
        channel_ids = json.load(f)

    return channel_ids
#

Also wir öffnen die json und geben alls channel ids aus und dann überprüfen wir ob die channel_id halt da drin ist.

crystal star
#

und was bringt das?

urban glen
#

def get_config():
    with open("config.json", "r") as f:
        channel_ids = json.load(f)

    return channel_ids

def channels():

    channel_ids = get_config()

    if str(message.channel.id) in channel_ids:
        return True
    else:
        print("asas")
urban glen
crystal star
#

habe doch die channel id der message und eine channel id eines bot channels und will überprüfen ob beides der selbe integer ist

crystal star
crystal star
#

printe ja beides wenn eine message geschrieben wird

#

also habe die beiden nummern

urban glen
#

Kannst du deine json zeigen

crystal star
#

und überprüfe ob beide die selben sind

#

was genau von der json?

urban glen
#

was da drin ist, sollte ja net so viel sein wenn da nur der bot channel ist

crystal star
#

mit (get_config('botchannel'))
lade ich ja nur den str von "botchannel"

crystal star
#

ja
wie gesagt benutze das ja bei mehreren sachen + der str wird ja geladen

urban glen
#

also z.b.

crystal star
#

durch (get_config('botchannel')) wird ja 985120824602292304 geladen also kann doch gar nicht daran liegen oder nicht

urban glen
urban glen
#

F 45min

crystal star
#

F

urban glen
#

Aber wie kann das sein, dass jz schon 45min vergangen sind, was ist mit der Zeit los

crystal star
#

idk

urban glen
#

Geht das aber?

#

errors sind willkommen xd

crystal star
#

warte

#

ja geht jetzt

#

aber wsa wurde verändert

urban glen
#

ffsdfsadfisadjfisadjfiosdhfwiaeohfsdiofhsd

crystal star
#

muss es ja verstehen

urban glen
#

Achso

crystal star
#

einfach weil abgefrage wurde ob ein integer ein string ist?

#

oder was

urban glen
#

Also in deiner json ist die bot id ein string, aber die message id ist als int definiert, deswegen weilt das nicht das gleiche ist, ist auch nichts passiert

crystal star
#

ahh aber warum verändert das was ist doch letztendlich beides 985120824602292304 oder nicht

#

aber egal vielen dank

#

hat zwar bisschen gedauert wegen fehl kommunikation aber kann man nichts machen

urban glen
crystal star
#

ah ok

urban glen
crystal star
urban glen
crystal star
#

keine ahnung warum aber discord.Member.unban funktioniert bei mir nicht weiß jemand woran das liegen kann?

solid ingot
#

da brauchen wir schon mehr Infos um dir zu helfen, zB die fehlermeldung oder eine Beschreibung was genau nicht funktioniert

crystal star
#

gibt keine fehlermeldung habe zuvor einen ban command gemacht der ging problemlos habe den code kopiert und die texte und so verändert und es von member.ban() zu member.unban() geändert sobald ich await member.unban entferne funktioniert der restliche code respond und so

code:


    @slash_command()
    async def unban(self, ctx,
                  member: Option(discord.Member, required = True),
                  reason: Option(str, required = False),
                  ):
      logchannel = await self.bot.fetch_channel((get_config('modlogchannel')))  # logchannel id
      
      mod_embed = discord.Embed(
        color=0x03fc49,  # embed color
        timestamp=discord.utils.utcnow()  # embed timestamp
      )
      mod_embed.add_field(
        name=f"{member} was unbanned",  # embed name
        value=f">>> Reason: **{reason}** \n banned from: **{ctx.author}** ( **{ctx.author.mention}** )"  # embed value
      )
      mod_embed.set_footer(text=f"{ctx.author}", icon_url=f"{ctx.author.avatar.url}")
      
      await logchannel.send(embed=mod_embed)
      await member.unban()
      await ctx.respond(embed=mod_embed, ephemeral=True)
crystal star
solid ingot
#

leider nicht

urban glen
#

Ich hab mir hier nen discord log erstellt. Jedes mal wenn jemand ne Nachricht löscht, nen channel erstellt oder löscht, etc. dann werden in nem Channel Nachrichten gepostet. Zum einen funktioniert das on_message_edit nicht richtig weil es ausgelöst wird, sobald allgemein eine Nachricht gelöscht wurde. Jedoch steht dort dann auch nicht die alte Nachricht drin die bearbeitet wurde, es sei denn es wurde vom Bot selbst verfasst. Zudem wollte ich wissen, ob es ein Event gibt, dass Leute einem Voice Channel beitrete, dass das auch gepostet wird

solid ingot
#

für das voice event kannst du on_voice_state_update benutzen

#

wieso das on_message_edit event nicht funktioniert kann ich nicht genau sagen. hast du den message content intent aktiviert?

urban glen
#

Ne hab ich nicht. Daran könnte es liegen

crystal star
#

wie kann man bei

async def on_guild_channel_create(self, channel)

abfragen von wem der channel erstellt wurde?

crystal star
#

hmm ok

urban glen
crystal star
urban glen
crystal star
#

ja

urban glen
# crystal star ja

Ich glaube so ging das:

if type(channel2) != discord.channel.TextChannel:
#

Also halt je nachdem was du machen willst

crystal star
#

habs ausprobiert geht einfach mit channel.type

urban glen
#

Ja ok oder auch so

frail loom
#

Ist das eigendlich möglich den bot über einen command neu zu starten ?
Wenn ja, ist das sinnvoll?

So müsste man nicht immer erst mit SSH verbinden beim Server

solid ingot
#

möglich ist es auf jeden fall, ich denke es kann durchaus sinnvoll sein

#

hab aber noch nie einen restart command gemacht

urban glen
#

Ich weiß, dass dieser Channel dazu gedacht ist Hilfe zu bekommen, aber wäre es nicht schlauer z.B. erst auf google nachzuschauen und dann wenn niemand das gleiche Problem hatte bzw. wenn man es nicht verstanden hat kann man hier her kommen. Weil eine Schulaufgabe versucht man ja auch erst selber und dann fragt man den Lehrer

crystal star
#

kann man bei

async def on_message_delete(self, message,):

abfrage von wem die nachricht gelöscht wurde?

solid ingot
#

dafür müsstest du auf den audit log zugreifen

crystal star
#

alles klar danke

urban glen
#

Muss das nicht discord.User sein?

solid ingot
#

ich denke nicht dass das funktioniert. wenn du einen member mit einem namen laden willst , müsstest du guild.get_member_named() benutzen

#

ja

urban glen
#

Ja stimmt discord.User war damals noch in discord.py

#

Obwohl ne das gibt es noch