diff --git a/bot/build.gradle b/bot/build.gradle index cd08c79..32a4f08 100644 --- a/bot/build.gradle +++ b/bot/build.gradle @@ -1,5 +1,6 @@ dependencies { compile project(':common') - compile group: "info.mukel", name: "telegrambot4s_2.12", version: "3.0.14" + compile group: "com.bot4s", name: "telegram-core_2.12", version: "4.0.0-RC2" + compile group: "com.bot4s", name: "telegram-akka_2.12", version: "4.0.0-RC2" } \ No newline at end of file diff --git a/bot/src/main/scala/com/lbs/bot/telegram/TelegramBot.scala b/bot/src/main/scala/com/lbs/bot/telegram/TelegramBot.scala index 1912016..c6f21c1 100644 --- a/bot/src/main/scala/com/lbs/bot/telegram/TelegramBot.scala +++ b/bot/src/main/scala/com/lbs/bot/telegram/TelegramBot.scala @@ -1,10 +1,10 @@ package com.lbs.bot.telegram +import com.bot4s.telegram.models.InlineKeyboardMarkup import com.lbs.bot.PollBot import com.lbs.bot.model._ import com.lbs.bot.telegram.TelegramModelConverters._ -import info.mukel.telegrambot4s.models.InlineKeyboardMarkup class TelegramBot(onCommand: Command => Unit, botToken: String) extends PollBot[TelegramEvent] { diff --git a/bot/src/main/scala/com/lbs/bot/telegram/TelegramClient.scala b/bot/src/main/scala/com/lbs/bot/telegram/TelegramClient.scala index 38af86f..a313677 100644 --- a/bot/src/main/scala/com/lbs/bot/telegram/TelegramClient.scala +++ b/bot/src/main/scala/com/lbs/bot/telegram/TelegramClient.scala @@ -1,17 +1,18 @@ package com.lbs.bot.telegram +import com.bot4s.telegram.api.declarative.{Callbacks, Commands} +import com.bot4s.telegram.api.{AkkaTelegramBot, Polling} +import com.bot4s.telegram.clients.AkkaHttpClient +import com.bot4s.telegram.methods._ +import com.bot4s.telegram.models.{InlineKeyboardMarkup, InputFile, Message} import com.lbs.common.Logger -import info.mukel.telegrambot4s.api.declarative.{Callbacks, Commands} -import info.mukel.telegrambot4s.api.{Polling, TelegramBot => TelegramBotBase} -import info.mukel.telegrambot4s.methods._ -import info.mukel.telegrambot4s.models._ import scala.concurrent.Future -class TelegramClient(onReceive: TelegramEvent => Unit, botToken: String) extends TelegramBotBase with Polling with Commands with Callbacks with Logger { +class TelegramClient(onReceive: TelegramEvent => Unit, botToken: String) extends AkkaTelegramBot with Polling with Commands with Callbacks with Logger { - override def token: String = botToken + val client = new AkkaHttpClient(botToken) def sendMessage(chatId: Long, text: String): Future[Message] = loggingRequest(SendMessage(chatId, text, parseMode = Some(ParseMode.HTML))) @@ -28,7 +29,7 @@ class TelegramClient(onReceive: TelegramEvent => Unit, botToken: String) extends def sendFile(chatId: Long, filename: String, contents: Array[Byte], caption: Option[String] = None): Future[Message] = loggingRequest(SendDocument(chatId, InputFile(filename, contents), caption)) - private def loggingRequest[R: Manifest](req: ApiRequest[R]): Future[R] = { + private def loggingRequest[R: Manifest](req: Request[R]): Future[R] = { debug(s"Sending telegram request: $req") request(req) } diff --git a/bot/src/main/scala/com/lbs/bot/telegram/TelegramEvent.scala b/bot/src/main/scala/com/lbs/bot/telegram/TelegramEvent.scala index 7811632..09f2137 100644 --- a/bot/src/main/scala/com/lbs/bot/telegram/TelegramEvent.scala +++ b/bot/src/main/scala/com/lbs/bot/telegram/TelegramEvent.scala @@ -1,7 +1,7 @@ package com.lbs.bot.telegram +import com.bot4s.telegram.models.Message import com.lbs.bot.model.Event -import info.mukel.telegrambot4s.models.Message case class TelegramEvent(msg: Message, callbackData: Option[String]) extends Event diff --git a/bot/src/main/scala/com/lbs/bot/telegram/package.scala b/bot/src/main/scala/com/lbs/bot/telegram/package.scala index d42c5d1..0cbd1a9 100644 --- a/bot/src/main/scala/com/lbs/bot/telegram/package.scala +++ b/bot/src/main/scala/com/lbs/bot/telegram/package.scala @@ -1,10 +1,9 @@ package com.lbs.bot +import com.bot4s.telegram.models.{InlineKeyboardButton, InlineKeyboardMarkup, Message => BMessage} import com.lbs.bot.model._ import com.lbs.common.ModelConverters -import info.mukel.telegrambot4s.models -import info.mukel.telegrambot4s.models.{InlineKeyboardButton, InlineKeyboardMarkup} package object telegram { @@ -24,9 +23,9 @@ package object telegram { } implicit val TelegramMessageToMessageConverter: - ObjectConverter[models.Message, Message] = - new ObjectConverter[models.Message, Message] { - override def convert[Z <: models.Message](data: Z): Message = { + ObjectConverter[BMessage, Message] = + new ObjectConverter[BMessage, Message] { + override def convert[Z <: BMessage](data: Z): Message = { Message(data.messageId.toString, data.text) } }