From 94933c2da0248e3387cc8d554d7eb8fccf25afdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lia=20Sch=C3=B6newei=C3=9F?= Date: Sat, 18 Nov 2023 12:38:58 +0100 Subject: [PATCH] streng geheim! --- bot/commands/advent.py | 94 ++++++++++++++++++++++++++++++++++++++++++ bot/main.py | 3 +- 2 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 bot/commands/advent.py diff --git a/bot/commands/advent.py b/bot/commands/advent.py new file mode 100644 index 0000000..b4ee8c4 --- /dev/null +++ b/bot/commands/advent.py @@ -0,0 +1,94 @@ +from datetime import date +from telegram.ext import ConversationHandler, CommandHandler, MessageHandler, filters, CallbackQueryHandler, CallbackContext +from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Update, InputMediaPhoto +# ACTION_CHOICE, DATE_ENTRY, ADD_CONTENT = range(3) +ACTION, TUERCHEN_CHOICE = range(2) + + +from .basehandler import BaseHandler + +class AdventsHandler(BaseHandler): + def __init__(self, entry_string): + self.entry_string = entry_string + self. tuerchen_texte = {"1": f"Mein kleiner, süßer Schatz, ich geb dir einen Schmatz! \n - Gutschein für ein gaaanz dickes Küsschen! 😘", + "2": f"Die zwei ist eine tolle Zahl, \ndrum schenk ich dir nach deiner Wahl \nein Frühstück so wie's dir gefällt,\n dem cutesten Schuhu der Welt!\n - Gutschein für ein Wunschfrühstück von deinem Bubo 🥞", + "3": f"Die Nummer heute ist die drei mit einer Prise Glück dabei! \n - Der Tag für das Glückskleeblattspritzgebäck ist gekommen! 🍀", + "4": f"Was schaut denn da so frech ums Eck,\nnanu, das ist dein Öhrchen-Schleck! \n - Du bekommst gratis einen tollen Öhrchenschleck für beide Schuhu-Spitzöhrchen! 👂🏻", + "5": f"Fühlt der Schuhu sich mal matt,\nso höre gut auf meinen Rat:\nMassageöl auf das Gefieder,\nDann glänzt und strahlt der Schuhu wieder!\n - Gutschein für eine Massage 👐🏻", + "6": f"Was hat hier so verbrannt gerochen?\n Das sind die Schuhus, die hier kochen!\n - Gutschein für eine Kochsession für ein ausgefallenes Gericht deiner Wahl 👩‍🍳👨‍🍳", + "7": f"Für etwas Spaß braucht es nicht viel,\nden Bubo und ein gutes Spiel!\n - Gutschein für einen Zockabend mit einem Spiel deiner Wahl 🎮", + "8": f"Zu abend da erzähl ich dir,\nso wundersam Geschichte fein\ndrum spitz dir ohren, lausche mir\ndoch schlaf mir dabei bloß nicht ein!\n - Gutschein für eine Vorlesesession 📖", + "9": f"Es duftet fein aus naher Ferne, denn naschen tuen Kätzchen gerne!\n - Gutschein für ein Überraschungsdessert von deinem Naschkätzchen 😽", + "10": f"Zu spät für Frühstück, zu spät für Lunch, dann machen wir daraus 'nen Brunch!\n - Gutschein für einen Brunch im Café des Amis 🥐", + "11": f"Mein Bubo macht so gerne Quatsch und ist so süß wie Brownie Fudge!\n - Gutschein für ein Ben'n'Jerry's Brownie Fudge Ice Cream 🍫" + "12": f"" + "15": f"Die Weihnacht langsam Einzug hält,\nder erste Schnee vom Himmel fällt,\nGedanken tief in ihm versinken,\nlass uns gehn' einen Kaffee trinken!\n - Gutschein für einen Nachmittagskaffee in der Altstadt ☕️", + "16": f"", + "17": f"Halb ist geschafft die lange Reise,\ndrum wähle deine Toppings weise\nmit Apfel, Zimt und andren Sachen, wenn wir zusammen Milchreis machen!\n - Gutschein für eine Milchreismahlzeit, damit dir auf halber Strecke nicht die Kraft ausgeht 🍚", + "18" + "24": f"Das lange Warten ist geschafft,\ngekostet hat es ganz viel Kraft,\nnun höre mich, wenn ich dir sage:\nIch wünsch dir tolle Weihnachtstage,\nmit Family und Freunden schön\nund Kekse auf dem Tische stehend\nund in der Ferne, doch so nah\nist immer jemand für dich da,\nder an dich denkt und dich so liebt\n Mein Bubo ich hab dich so gern" + } + + + self.handler = ConversationHandler( + entry_points=[CommandHandler(entry_string, self.entry_point)], + states={ + ACTION: [ + CallbackQueryHandler(self.kuesschen, pattern = "^kuss$"), + CallbackQueryHandler(self.tuerchen, pattern = "^tuer$"), + + # CallbackQueryHandler(self.new_list, pattern="^new$") + ], + TUERCHEN_CHOICE: [ + MessageHandler(filters.ALL, self.choose_tuerchen) + ] + + }, + fallbacks=[], + ) + + self.current_model = None + + + async def entry_point(self, update: Update, context: CallbackContext): + await super().entry_point(update, context) + + keyboard = [[InlineKeyboardButton("Bubo Küsschen", callback_data="kuss")], [InlineKeyboardButton("Türchen öffnen", callback_data="tuer")]] + + reply_markup = InlineKeyboardMarkup(keyboard) + await update.message.reply_text(text="Hallo, mein süßer Weihnachts-Bubo! Ich bin dein Adventskalender ^^. Was möchtest du tun?", reply_markup=reply_markup) + + return ACTION + + + async def kuesschen(self, update: Update, context: CallbackContext): + query = update.callback_query + await query.answer() + + await update.effective_message.reply_text("Mua!") + + return ConversationHandler.END + + async def tuerchen(self, update: Update, context: CallbackContext): + query = update.callback_query + await query.answer() + + await update.effective_message.reply_text(text="Welches Türchen möchtest du öffnen? Bitte gib die Zahl des Türchens ein:") + + return TUERCHEN_CHOICE + + async def choose_tuerchen(self, update: Update, context: CallbackContext): + tuerchen = update.message.text + tuer_nummer = int(tuerchen) + + print(date.today().strftime("%d")) + #if tuer_nummer <= date.today().strftime("%d"): + if tuer_nummer <= 2: + await update.message.reply_text(text=f"Türchen für den {tuer_nummer}. Dezember: \n" + self.tuerchen_texte[tuerchen]) + else: + await update.message.reply_text("Hey, nicht schummeln! Dieses Türchen darfst du noch nicht sehen.") + + return ConversationHandler.END + + + diff --git a/bot/main.py b/bot/main.py index de38a35..7f2a6c6 100644 --- a/bot/main.py +++ b/bot/main.py @@ -3,7 +3,7 @@ from telegram.ext import Application import logging import models -from commands import journal, status, turtle, memory +from commands import journal, status, turtle, memory, advent from commands.list import list from cronjob import chat_photo @@ -30,6 +30,7 @@ def main() -> None: application.add_handler(status.StatusHandler("status", models).handler) application.add_handler(turtle.TurtleHandler().handler) application.add_handler(memory.MemoryHandler("memory", models).handler) + application.add_handler(advent.AdventsHandler("advent").handler) # application.add_handler(CommandHandler("help", help_command)) # on non command i.e message - echo the message on Telegram