User Tools

Site Tools


chat-bots:projects:gpg-checker-bot

This is an old revision of the document!


Чат-бот для отправки и проверки GPG сообщения

Базовый сценарий работы бота

  1. Пользователь запускает бот (команда /start)
  2. Бот сохраняет пользователя в своей БД. В ответном сообщении бот запрашивает у пользователя прислать его открытый (публичный) GPG ключ
  3. Пользователь отправляет свой открытый GPG ключ в виде текста.
  4. Бот принимает публичный ключ, после чего
    1. Получает из публичного ключа ФИО пользователя, его группу ННГУ и добавляет эту информацию в БД
    2. Сохраняет сам публичный ключ в БД
    3. Генерирует случайное сообщение (например использовать библиотеку Faker), сохраняет выбранное сообщение в БД
    4. Шифрует сообщение при помощи публичного ключа
    5. Отправляет зашифрованное сообщение пользователю и пишет сообщение, что ожидает получить расшифровку
  5. Пользователь расшифровывает сообщение бота, и отправляет результат обратно боту в виде текстового сообщения
  6. Бот получает от пользователя декодированное сообщение и сравнивает его с исходным сообщением из БД. Если сообщения сходятся, то поздравляет пользователя. Так же записывает в БД успешный статус проверки (задание принято). Если результат не сошлись, то сообщает об этом пользователю и ожидает снова дешифрованное сообщение.

Админ интерфейс

  1. В настройках бота указывается telegram_id администратора
  2. Администратору доступна команда /results, которая присылает сообщение со список пользователей со столбцами
    1. ФИО пользователя
    2. Номер группы
    3. Статус (новый, отправил публичный ключ, расшифровал сообщение)

Требования

  1. Один пользователь может пройти задание только один раз. Как только задание решено, бот не дает решать повторно
chat-bots/projects/gpg-checker-bot.1758620861.txt.gz · Last modified: by olegsklyarov