Skip to content

senjun-team/telegram-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram Bot

User interface which communicates with backend Bot name: sen_jun_bot

Dependencies

System:

  1. install CMake (Ubuntu: sudo apt-get -y install cmake)
  2. install / download & build Boost >= 1.74 (https://www.boost.org/doc/libs/1_80_0/more/getting_started/unix-variants.html)
  3. install OpenSSL (Ubuntu: sudo apt-get install libssl-dev)
  4. install zlib (Ubuntu: sudo apt-get install zlib1g-dev)
  5. install libcurl (Ubuntu: sudo apt-get install libcurl4-openssl-dev)
  6. install fmt v8.1.1 (Ubuntu: sudo apt install libfmt-dev or use readme in https://fmt.dev/latest/usage.html)
  7. install spdlog v1.9.2 (Ubuntu: sudo apt install libspdlog-dev or use readme in https://github.com/gabime/spdlog)
  8. install prometheus-cpp v1.1.0

Also after the command "git clone" you should add submodules with $ git submodule update --init --recursive

This command initializes others dependencies:

  1. tgbot-cpp v1.7 (https://github.com/reo7sp/tgbot-cpp/releases/tag/v1.7)
  2. cpp-httplib v0.11.2 (https://github.com/yhirose/cpp-httplib.git)
  3. nlohmann/json v3.11.2 (https://github.com/nlohmann/json/tree/v3.11.2)
  4. kvstor v1.1.0 (https://github.com/khva/kvstor)
  5. base64 v1.0.0 (https://github.com/khva/base64)
  6. magic-enum v0.8.1 (https://github.com/Neargye/magic_enum/releases)
  7. rapidcsv v8.75 (https://github.com/d99kris/rapidcsv.git)

Don't forget to add bot-settings.json file into accomodation/etc/ before building. You can find template for config in accomodation/etc/bot-settings-template.json

Bot config should be the first argument in the command line for starting: ./telegram_bot /your/path/to/config.json

Temporary readme block

Текущее стояние бота:

  1. Возвращает курсы со статусами из хэндимена
  2. Получает последнюю активную главу с задачами, парсит ответ от хендимена.
  3. Авторизация через сцену
  4. Отправляет решение на проверку в хендимен. И обновляет прогресс пользователя по ответу из хендимена При проверке решение - стоит фриз на отправку нового решение (в конфиге настраивается время фриза). Бот скажет, что не может отправить на проверку новое решение, пока не проверит предыдущее(либо до окончания времени фриза, на случай, если проверка затянулась)
  5. Ставит курс в прогресс при первом обращении и комплитед при завершении
  6. Обновляет прогресс главы
  7. Апи пользователя:
  • получение всех возможных курсов со статусами
  • повторить последний максимальный активный кусочек
  • перейти к оглавлению (главы с иконками статусов)
  • синхронизировать учетку с сайтом. Ожидается команда /sync your_key После нажатия на Далее - кнопка пропадает
  1. Чтение конфига бота из джейсона
  2. В параграфе с задачками и не пустыми подсказками появляется кнопка "Посмотреть подсказку"
  3. При редактировании сообщение бот реагирует на это, как на отправку нового сообщения.
  4. В кеше храним главы в виде параграфов. Если пользователю попадается задача - берем состояние задачи из хендимена
  5. В отдельном потоке сохраняем состояние бота в файл раз в заданный в конфиге период

About

Bot for senjun courses

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages