Доска объявлений
gsbelarus opened this issue · comments
Andrej Kirejeŭ commented
- Размещать объявления могут только пользователи с соответствующими правами.
- Если у пользователя нет прав, то при нажатии на кнопку "Доска объявлений" он получает соответствующее сообщение и программа возвращается к главному меню.
- Если у пользователя есть права, он получает приглашение ввести и отправить в чат текст объявления.
- После отправки объявления в чат появляется меню с двумя кнопками: Опубликовать и Отмена. При нажатии на кнопку Отмена программа возвращается в главное меню. При нажатии на кнопку Опубликовать объявление будет опубликовано и появится у всех пользователей в чате.
- Объявления хранятся на сервере в отдельном JSON файле.
- Алгоритм отсылки аналогичный алгоритму отсылки расчетных листков. Мы храним дату каждого объявления и для каждого пользователя дату последнего доставленного ему объявления. При запуске рассылки мы ищем всех пользователей в состоянии главного меню и рассылаем им объявления. Далее механизм ставится на таймер и повторяется через заданный период. Для того, чтобы объявления дошли до тех адресатов, которые на момент рассылки были не в главном меню.
Andrej Kirejeŭ commented
Нам нужны права на:
- Опубликовать всем сотрудникам предприятия
- Опубликовать всем пользователям бота
Второе более сильное и включает первое.
Если пользователь обладает вторым правом, то у него в меню публикации будет три кнопки:
- Опубликовать сотрудникам
- Опубликовать всем
- Отменить