Классификация сообщений Telegram чата
(домашнее задание)

Страничка курса: https://maxcom.github.io/scala-course-2022/

  • Создаем бот Telegram, добавляем его в группу
  • Читаем все сообщения
  • Если определили позитив/негатив - постим в группу сообщение с классом и разметкой слов

Регистрируем Telegram Bot

  • Находим BotFather
  • /newbot для создания нового бота
    (по имени должно быть понятно чей это бот)
  • Сохраните токен для API
  • /setprivacy для отключения privacy mode

Читаем все сообщения

Используем клиент Akka Http (Http().singleRequest)

https://doc.akka.io/docs/akka-http/current/client-side/index.html

https://core.telegram.org/bots/api#getting-updates

val uri = Uri(s"https://api.telegram.org/bot$token/getUpdates")
            .withQuery(Uri.Query("timeout" -> "100"))
Http().singleRequest(HttpRequest(uri = uri)).map { response =>
  ???
}
					

Проверяем статус ответа, парсим результат
(только нужные поля)

Создаем актор, получающий обновления.

В каждом ответе есть "update_id". Нужно его увеличить на 1 и передать в offset. Старт с 0.

Смотрим только текст, классифицируем.

Постим в чат

https://core.telegram.org/bots/api#sendmessage

chat_id берем в сообщении,
режим форматирования html

нейтральные не постим, но логгируем

Пришлите имя вашего бота в чат слушателей курса - добавим его в специальную тестовую группу.

Срок сдачи - 18 мая.