discord 3 bot

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
LiveSide
User
Beiträge: 3
Registriert: Mittwoch 4. November 2020, 21:31

Hallo zusammen,

ich habe vor 3 tagen angefangen mit python zu arbeiten und habe so gut wie keine vorkenntnisse was programmierung angeht.
da bitte ich um nachscht.

ausgewertet werden soll eine nachricht aus discord welche 2 variablen enthält...
einmal eine "location" und einmal ein "level"

import discord
#variables
trigger = "$"
adminchannel = 733728061
levelchannel = 733718055

#defconlists
berlin = ["Level 1 Berlin", "Level 2 Berlin", "Level 3 Berlin", "Level 4 Berlin", "Level 5 Berlin"]
berlinimg = ["imgurl1", "imgulr2", "imgurl3", "imgurl4", "imgurl5"]
hamburg = ["Level 1 Hamburg", "Level 1 Hamburg", "Level 1 Hamburg", "Level 1 Hamburg", "Level 1 Hamburg"]
hamburgimg = ["imgurl1", "imgulr2", "imgurl3", "imgurl4", "imgurl5"]


class MyClient(discord.Client):
# Einloggen
async def on_ready(self):
print("\nBOT status online \n\n____________")

# Wenn Nachricht gepostet wird
# Keine antwort auf eigene nachrighen
async def on_message(self, message):
if message.author == client.user:
return

if message.content.startswith(trigger + " set-level"):
quest = message.content.split(" ")
channel = client.get_channel(levelchannel)
#await channel.purge()
if quest[2] == (name eines der location listen):
await channel.send(eintrag der location tabelle mit den level aus der nachricht)
return

Beispiel:
im discord channel wird eingetragen
$ set-level hamburg 3

dann soll der bot aus der hamburgimg liste den level 3 eintrag posten also hamburg[2]

wie kann man soetwas verwirklichen
habe mich jetzt 2 tage mit google rumgeschlagen und bleibe immer bei den listen hängen

danke schonmal für eure hilfe

Live Side
LiveSide
User
Beiträge: 3
Registriert: Mittwoch 4. November 2020, 21:31

mhh schade anscheinend hat keiner eine lösungsidee :(
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

@LiveSide: Grundsätzlich ist das offizielle Tutorial ein guter Einstieg in Python.
Im Moment nützt dir auch Google nichts, denn du weißt ja nicht, wonach du eigentlich suchst.
Wenn man parallele Listen nutzt, dann benutzt man in der Regel die falsche Datenstruktur. Insbesondere hier. Warum stehen in der Berlin-Liste Elemente, deren einziger Unterscheid eine hochgezählte Nummer ist? Die Nummer ergibt sich doch aus der Position in der Liste. Aber nur bei Berlin - in Hamburg scheint das anders zu sein?!?

Du solltest ein dict als Datenstruktuir verwenden. Wobei der Schlüssel jeweils der Stadtname ist und der Wert eine Liste der URLs.

Code: Alles auswählen

city_to_images = {
    "berlin": ["imgurl1", "imgulr2", "imgurl3", "imgurl4", "imgurl5"],
    "hamburg": ["imgurl1", "imgulr2", "imgurl3", "imgurl4", "imgurl5"]
}
LiveSide
User
Beiträge: 3
Registriert: Mittwoch 4. November 2020, 21:31

@sparrow

vielen dank schonmal für die hilfe

die urls in den listen sind unterschiedliche
in der hamburg liste ist das ein fehler von mir natürlich soll diese auch hochlaufend sein die nummer...

ich werde mal das versuchen mit den dict

vielen dank schon mal :D

ich gebe dann rückmeldung ob es geklappt hat
Antworten