gear-orders/telegram/commands.py

31 lines
790 B
Python

import re
import logging
import peewee
from db.queries import skip_day_put
from .telegram import TelegramCommand
logger = logging.getLogger(__name__)
class SkipDayAddCommand(TelegramCommand):
command_text = "/skip_day"
date_regex = re.compile(r"^(?P<date>\d{4}-\d{2}-\d{2})$")
async def exec_inner(self, text, update, session, forResponse=None, reply=None):
try:
yield "Please enter a skip day"
response = await forResponse()
m = self.date_regex.match(response)
if(m is not None):
skip_day_put(m.group('date'))
yield f"Skip day {m.group('date')} has been added"
else:
yield "Please enter a valid date"
except peewee.IntegrityError:
yield "That day has already been added"
commands = [
SkipDayAddCommand()
]