32 lines
790 B
Python
32 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()
|
||
|
|
]
|