Remy Moll 2afde219a9
All checks were successful
continuous-integration/drone/push Build is passing
Fixed kinda broken regex
2023-08-03 09:05:45 +00:00

75 lines
2.6 KiB
Python

import os
from pathlib import Path
from telegram.ext import MessageHandler, filters
from telegram import Update
import re
import random
import time
from .basehandler import BaseHandler
MEDIA_DIR = Path(os.getenv("MEDIA_DIR"))
TURTLE_VIDEO_LOCATION = MEDIA_DIR / "turtle_reactions"
TURTLE_VIDEOS = list(TURTLE_VIDEO_LOCATION.glob("*.mp4"))
class TurtleHandler(BaseHandler):
def __init__(self):
self.entry_string = "Variation of hallo"
self.handler = MessageHandler(
filters.Regex(r"[hH]([aA]+|[eE]+)[lL]{2,}[oOöÖ]+(le|chen)?") |
# react to hello strings
filters.Regex(b"\xF0\x9F\x90\xA2".decode("utf8")) |
# react to turtle emoji
filters.Regex(r"[sS](childkröte)|[tT](urtle)"),
# react to turtle string
self.entry_point
)
async def entry_point(self, update: Update, context):
await super().entry_point(update, context)
msgtxt = update.message.text
turtle_emoji = b"\xF0\x9F\x90\xA2".decode("utf8")
if "hallo" in msgtxt:
# react to hallo
vid = TURTLE_VIDEOS[0]
answertxt = "Hallo!"
elif re.search("[eE][lL]{2,}[oO]", msgtxt):
# react to hello
vid = TURTLE_VIDEOS[2]
answertxt = "Hello!"
elif re.search("([aA]{4,}|[lL]{4,}|[oO]{4,}|[öÖ]{4,})", msgtxt):
# react to stretched hello
vid = TURTLE_VIDEOS[5]
answertxt = "That's a lot of letters!"
elif re.search(turtle_emoji, msgtxt):
# react to turtle emoji
vid=TURTLE_VIDEOS[0]
answertxt="Turtle detected! Self-destruction mode activated..."
elif re.search("[sS](childkröte)|[tT](urtle)", msgtxt):
# react to turtle string
vid=None
answertxt=turtle_emoji
else:
vid = random.choice(TURTLE_VIDEOS[1:2]+TURTLE_VIDEOS[3:5]+TURTLE_VIDEOS[6:])
answertxt = ""
if vid != None:
if re.search(turtle_emoji, msgtxt):
await update.message.reply_text(text=answertxt)
time.sleep(1)
await update.message.reply_text(text="3")
time.sleep(1)
await update.message.reply_text(text="2")
time.sleep(1)
await update.message.reply_text(text="1")
time.sleep(1)
await update.message.reply_video(video=vid, caption="Kaboom!")
else:
await update.message.reply_video(video=vid, caption=answertxt)
else:
await update.message.reply_text(text=answertxt)