Seite 1 von 1

discord 3 bot

Verfasst: Mittwoch 4. November 2020, 22:33
von LiveSide
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

Re: discord 3 bot

Verfasst: Freitag 6. November 2020, 20:22
von LiveSide
mhh schade anscheinend hat keiner eine lösungsidee :(

Re: discord 3 bot

Verfasst: Freitag 6. November 2020, 21:17
von sparrow
@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"]
}

Re: discord 3 bot

Verfasst: Samstag 7. November 2020, 23:50
von LiveSide
@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