1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- from aiogram.types.message import Message
- from aiogram.types.user import User
- from app.data_provider import add_event2db, add_notifications2db, add_user2db
- from app.helpers import replacer
- from app.messages import Event
- from app.dates import parse_datetime_string
- from app.messages import get_notifications
- def handle_event_message(message: Message) -> str:
- """
- Получает и обрабатывает сообщение о планировании встречи
- Возвращает текст сообщения для мгновенной отправки
- """
- event = parse_event_string(
- message.md_text, message.from_user, message.chat.id)
- notifications = get_notifications(event)
- meeting_id = add_event2db(event)
- add_user2db(event.organizer)
- add_notifications2db(notifications, meeting_id)
- return notifications.now.message
- def parse_event_string(message: str, organizer: User, chat_id: int) -> Event:
- """
- Парсит сообщения о планировании мероприятия и возвращает данные о встрече
- """
- event_params = message.split("\n")
- if len(event_params) != 6:
- raise ValueError("Нужно ввести 6 строк \- ключевое слово, дата, время, \
- описание, участники и ссылка")
- _, date, time, description, participants, link = event_params
- meeting_datetime = parse_datetime_string(date, time)
- organizer.first_name = replacer(organizer.first_name)
- organizer.last_name = replacer(organizer.last_name)
- return Event(
- date_time=meeting_datetime,
- organizer=organizer,
- agenda=description,
- participants=participants,
- meeting_url=link,
- chat_id=chat_id
- )
|