====== Чат-бот для отправки и проверки GPG сообщения ====== * https://github.com/vsajip/python-gnupg * https://github.com/joke2k/faker ==== Базовый сценарий ==== - Пользователь запускает бот (команда /start) - Бот сохраняет пользователя в своей БД. В ответном сообщении бот запрашивает у пользователя прислать его открытый (публичный) GPG ключ - Пользователь отправляет свой открытый GPG ключ в виде текста. - Бот принимает публичный ключ, после чего - Получает из публичного ключа ФИО пользователя, его группу ННГУ и добавляет эту информацию в БД - Сохраняет сам публичный ключ в БД - Генерирует случайное сообщение (например использовать библиотеку Faker), сохраняет выбранное сообщение в БД - Шифрует сообщение при помощи публичного ключа - Отправляет зашифрованное сообщение пользователю и пишет сообщение, что ожидает получить расшифровку - Пользователь расшифровывает сообщение бота, и отправляет результат обратно боту в виде текстового сообщения - Бот получает от пользователя декодированное сообщение и сравнивает его с исходным сообщением из БД. Если сообщения сходятся, то поздравляет пользователя. Так же записывает в БД успешный статус проверки (задание принято). Если результат не сошлись, то сообщает об этом пользователю и ожидает снова дешифрованное сообщение. ==== Админ сценарий ==== - В настройках бота указывается telegram_id администратора - Администратору доступна команда /results, которая присылает сообщение со список пользователей со столбцами - ФИО пользователя - Номер группы - Статус (новый, отправил публичный ключ, расшифровал сообщение) ==== Требования ==== - Один пользователь может пройти задание только один раз. Как только задание решено, бот не дает решать повторно