ich habe kürlich damit angefangen, in Python zu Programmieren, bin Schüler und Technik-Interessiert.
Dabei bin ich dann auf die Idee gekommen, mir einen Disord-Bot zu Programmieren, mit dem ich(und vielleicht andere) Vokabeln lernen kann.
Das hier ist dabei herausgekommen:
Code: Alles auswählen
import discord
import random
from googletrans import Translator
try:
with open("vokabeln_g.txt", "r") as vokabulary_file:
vokabeln_g = [line.strip() for line in vokabulary_file]
with open("vokabeln_e.txt", "r") as vokabulary_file:
vokabeln_e = [line.strip() for line in vokabulary_file]
except FileNotFoundError:
print("nothing found")
vokabeln_g = []
vokabeln_e = []
HELP_MSG = """
Du kannst folgende Befehle verwenden:
!trv um dich alle Vokabeln abfragen zu lassen.
!trl <Text> <Zielsprachenkürzel(de, fr, en, etc) >um etwas in eine andere Sprache zu Übersetzen
Genauere Informatitonen zu den Befehlen findest du mit:
!help <Befehl>
"""
#TODO Genauere Infos zu den Befehlen schreiben
def add_vokabulary(ger_v, eng_v):
vokabeln_g.append(ger_v)
vokabeln_e.append(eng_v)
with open("vokabeln_g.txt", "a") as vokabulary_file:
vokabulary_file.writelines(ger_v)
with open("vokabeln_e.txt", "a") as vokabulary_file:
vokabulary_file.writelines(eng_v)
return
class MyClient(discord.Client):
async def on_ready(self):
print("Ich habe mich eingeloggt. Beep boop.")
self.i = 0
self.reihenfolge = list(i for i in range(len(vokabeln_g)))
random.shuffle(self.reihenfolge)
self.lastmsg = None
self.lang_of_answer = None
async def on_message(self, message):
if message.author == client.user:
return
elif message.content.startswith("!addv") or message.content.startswith("!Addv"):
vokg = message.content.split(" ")[1]
voke = message.content.split(" ")[2]
add_vokabulary(vokg, voke)
self.reihenfolge = list(i for i in range(len(vokabeln_g)))
print(self.reihenfolge)
random.shuffle(self.reihenfolge)
elif message.content == "!listv":
await message.author.send("\n".join("{} - {}".format(vg, ve) for vg, ve in zip(vokabeln_g, vokabeln_e)))
elif message.content.startswith("!trl"):
input_text = message.content[5:-2]
target_lang = message.content[-2:]
translator = Translator()
await message.author.send("Übersetzung von %s:\n" %input_text + translator.translate(input_text, target_lang).text)
elif message.content == "!help":
await message.author.send(HELP_MSG)
elif message.content.lower() == "!trv":
if random.randint(0, 1) == 0:
self.vokabel = vokabeln_g[self.reihenfolge[self.i]]
self.lang_of_answer = "Englische"
self.vokabel_answer = vokabeln_e[self.reihenfolge[self.i]]
else:
self.vokabel = vokabeln_e[self.reihenfolge[self.i]]
self.lang_of_answer = "Deutsche"
self.vokabel_answer = vokabeln_g[self.reihenfolge[self.i]]
self.lastmsg = message.content.lower()
await message.author.send("{} Übersetzung von ".format(self.lang_of_answer) + self.vokabel)
elif message.content == "!ue":
self.i += 1
elif self.lastmsg == "!trv":
await message.author.send("Richtig!!!")
if message.content == self.vokabel_answer:
if len(vokabeln_g) == self.i+1:
await message.author.send("Du kannst alle Vokabeln!")
self.lastmsg = None
self.i = 0
else:
self.i += 1
if random.randint(0, 1) == 0:
self.vokabel = vokabeln_g[self.reihenfolge[self.i]]
self.lang_of_answer = "Englische"
self.vokabel_answer = vokabeln_e[self.reihenfolge[self.i]]
print(self.vokabel, self.lang_of_answer, self.vokabel_answer)
else:
self.vokabel = vokabeln_e[self.reihenfolge[self.i]]
self.lang_of_answer = "Deutsche"
self.vokabel_answer = vokabeln_g[self.reihenfolge[self.i]]
print(self.vokabel, self.lang_of_answer, self.vokabel_answer)
await message.author.send("{} Übersetzung von ".format(self.lang_of_answer) + self.vokabel)
else:
await message.author.send("Leider Falsch.")
elif message.content.startswith("!"):
await message.author.send("Unkown command.")
if __name__ == '__main__':
client = MyClient()
client.run("Das Bot Token")