From c051032fba5a76445f9f823a6cc866884f6f4506 Mon Sep 17 00:00:00 2001 From: churl Date: Wed, 19 Jan 2022 19:50:36 +0100 Subject: [PATCH] updated voice handling --- bot.py | 107 ++++++++++++------------- sounds/{kein_foto.mp3 => KeinFoto.mp3} | Bin sounds/{opfer.mp3 => Opfer.mp3} | Bin 3 files changed, 51 insertions(+), 56 deletions(-) rename sounds/{kein_foto.mp3 => KeinFoto.mp3} (100%) rename sounds/{opfer.mp3 => Opfer.mp3} (100%) diff --git a/bot.py b/bot.py index 7e6b0f4..af27502 100644 --- a/bot.py +++ b/bot.py @@ -4,6 +4,7 @@ import os import re import random import asyncio +from functools import reduce from dotenv import load_dotenv from models import Models @@ -12,15 +13,13 @@ import discord # used to start the bot locally, for docker the variables have to be set when the container is run load_dotenv() - TOKEN = os.getenv("DISCORD_TOKEN") -GUILD = os.getenv("DISCORD_GUILD") # Zocken mit Heidi class HeidiClient(discord.Client): def __init__(self): super().__init__( - status="Nur eine kann Germany's next Topmodel werden!", + status="Nur eine kann GNTM werden!", ) self.prefix = "Heidi, " @@ -31,10 +30,9 @@ class HeidiClient(discord.Client): # automatic actions self.triggers = { lambda m: m.author.nick.lower() in self.models.get_in_names(): self.autoreact_to_girls, - lambda m: "jeremy" in m.author.nick.lower(): self.autoreact_to_jeremy - } + lambda m: "jeremy" in m.author.nick.lower(): self.autoreact_to_jeremy} - # react to messages + # commands self.matchers = {"Hilfe$": self.show_help, "Heidi!$": self.say_name, @@ -42,17 +40,14 @@ class HeidiClient(discord.Client): "wer ist dabei\\?$": self.list_models_in, "wer ist raus\\?$": self.list_models_out, "gib Bild von .+$": self.show_model_picture, - "gib Link": self.show_link, + "gib Link$": self.show_link, # Fun stuff - "welche Farbe .+\\?$": self.random_color, - ".+, ja oder nein\\?$": self.magic_shell, + "welche Farbe .+\\?": self.random_color, + ".+, ja oder nein\\?": self.magic_shell, "wähle: (.+,?)+$": self.choose, - - # Voicelines - "sag kein Foto$": self.say_kein_foto, - "sag Opfer": self.say_opfer - } + "sprechen": self.list_voicelines, + "sag .+$": self.say_voiceline} # Helpers ------------------------------------------------------------------------------------ @@ -70,10 +65,10 @@ class HeidiClient(discord.Client): response = 'Präfix: "' + self.prefix + '" (mit Leerzeichen)\n' response += "--------------------------------------------------\n" - response += "Das mache ich automatisch:\n" + response += "Automatisch:\n" response += "\n".join(docstrings_triggers) - response += "\n\nIch höre auf diese Befehle:\n" + response += "\n\nCommands:\n" response += "\n".join(docstrings_matchers) return response @@ -107,31 +102,32 @@ class HeidiClient(discord.Client): async def show_help(self, message): """ - Hilfe (Ich höre auf diese Befehle, Senpai UwU) + Hilfe (Senpai UwU) """ await message.channel.send(self._help_text()) - async def say_name(self, message): + @staticmethod + async def say_name(message): """ - Heidi! (Ich sag meinen Namen) + Heidi! """ await message.channel.send("HEIDI!") async def list_models_in(self, message): """ - wer ist dabei? (Liste der Models welche noch GNTM werden können) + wer ist dabei? """ await message.channel.send("\n".join(self.models.get_in_names())) async def list_models_out(self, message): """ - wer ist raus? (Liste der Keks welche ich ge*ickt hab) + wer ist raus? (Liste der Keks welche ge*ickt wurden) """ await message.channel.send("\n".join(self.models.get_out_names())) async def show_model_picture(self, message): """ - gib Bild von (Zeigt ein Bild des entsprechenden Models) + gib Bild von """ name = message.content.split()[-1] picture = discord.Embed() @@ -139,9 +135,10 @@ class HeidiClient(discord.Client): picture.set_footer(text=name) await message.channel.send(embed=picture) - async def magic_shell(self, message): + @staticmethod + async def magic_shell(message): """ - , ja oder nein? (Ich beantworte dir eine Frage) + , ja oder nein? """ choices = [ "Ja!", @@ -156,24 +153,27 @@ class HeidiClient(discord.Client): await message.channel.send(random.choice(choices)) # TODO: Accept multi-word inputs: "Heidi, wähle: Ipp ist dumm, ich bin dumm" - async def choose(self, message): + @staticmethod + async def choose(message): """ - wähle: