mirror of
https://github.com/dyrkin/luxmed-bot.git
synced 2025-12-21 13:23:05 +01:00
Update bot4s library
This commit is contained in:
@@ -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"
|
||||
}
|
||||
@@ -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] {
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user