Discord MP3 Bot mit Python und ffmpeg

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.
Phil1401
User
Beiträge: 1
Registriert: Freitag 29. September 2017, 21:56

Discord MP3 Bot mit Python und ffmpeg

Beitragvon Phil1401 » Freitag 29. September 2017, 22:26

Guten Abend,
ich habe beim Programmieren an meinem Discord Bot (https://discordapp.com/) ein kleines Problem gefunden.
Mit dem nachfolgendem Code kann ich den Bot zwar in einen Sprachkanal kommen und deine MP3 Datei abspielen lassen, aber bevor der Bot eine neue Datei spielen kann, muss er den Kanal verlassen. Manuell (Befehl .quit eingeben) bekomme ich das hin, aber ich hätte es gerne, dass der Bot nach dem abspielen der Datei den Kanal automatisch verlässt.
Ich bin da etwas hilflos und würde mich über jede Idee freuen.
Danke
Phil

Mit Hilfe von dieser Seite habe ich den Code zusammengestellt. http://discordpy.readthedocs.io/en/latest/api.html#voice

Aktueller Code (manuelles Verlassen):
  1. import discord
  2.  
  3. client = discord.Client()
  4.  
  5. players = {}
  6.  
  7. @client.event
  8. async def on_ready():
  9.     print(client.user.name)
  10.  
  11. @client.event
  12. async def on_message(message):
  13.  
  14.     if message.content.startswith('.quit'):
  15.         try:
  16.             voice_client = client.voice_client_in(message.server)
  17.             await voice_client.disconnect()
  18.         except AttributeError:
  19.             await client.send_message(message.channel, "Ich habe mich bereits von allen Voice Channels getrennt.")
  20.         except Exception as exce:
  21.             await client.send_message(message.channel, "Es ist ein Fehler aufgetreten. ```{hhh}```".format(hhh=exce))
  22.     if message.content.startswith('.play'):
  23.         try:
  24.             channel = message.author.voice.voice_channel
  25.             voice = await client.join_voice_channel(channel)
  26.             player = voice.create_ffmpeg_player('Sounds\h.mp3')
  27.             player.start()
  28.         except Exception as exc:
  29.             await client.send_message(message.channel, "Es ist ein Fehler aufgetreten. ```{ttt}```".format(ttt=exc))
  30.  
  31. client.run('xxx')


Mein erster Versuch, um den Bot den Kanal automatisch verlassen zu lassen (Der Bot verlässt den Kanal aber, bevor die Datei abgespielt wurde):
  1. import discord
  2.  
  3. client = discord.Client()
  4.  
  5. players = {}
  6.  
  7. @client.event
  8. async def on_ready():
  9.     print(client.user.name)
  10.  
  11. @client.event
  12. async def on_message(message):
  13.  
  14.     if message.content.startswith('.play'):
  15.         try:
  16.             channel = message.author.voice.voice_channel
  17.             voice = await client.join_voice_channel(channel)
  18.             player = voice.create_ffmpeg_player('Sounds\h.mp3')
  19.             player.start()
  20.         except Exception as exc:
  21.             await client.send_message(message.channel, "Es ist ein Fehler aufgetreten. ```{ttt}```".format(ttt=exc))
  22.         voice_client = client.voice_client_in(message.server)
  23.         await voice_client.disconnect()
  24.  
  25. client.run('xxx')

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder