Compare commits
1 Commits
3a3de48c8f
...
f6e9062b47
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f6e9062b47 |
@@ -171,7 +171,7 @@ object CheckDeliveryDialog {
|
|||||||
val message = SendMessage(chatId, "Please enter a parcel id to remove.", reply_markup = Some(markup))
|
val message = SendMessage(chatId, "Please enter a parcel id to remove.", reply_markup = Some(markup))
|
||||||
sendMessage(message, waitParcelId(parcelId => removeParcelId(parcelId)), onFailure)
|
sendMessage(message, waitParcelId(parcelId => removeParcelId(parcelId)), onFailure)
|
||||||
} else {
|
} else {
|
||||||
val message = SendMessage(chatId, "You don't have watched parcels. There is nothing to remove.", reply_markup = commandsKeyboard)
|
val message = SendMessage(chatId, "You don't have watched parcels. There is nothing to remove.")
|
||||||
sendMessage(message, onSuccess, onFailure)
|
sendMessage(message, onSuccess, onFailure)
|
||||||
}
|
}
|
||||||
case ListParcelsFailure(exception) =>
|
case ListParcelsFailure(exception) =>
|
||||||
@@ -240,7 +240,7 @@ object CheckDeliveryDialog {
|
|||||||
Behaviors.same
|
Behaviors.same
|
||||||
}
|
}
|
||||||
|
|
||||||
def sendMessage(message: SendMessage, onSuccess: => Behavior[Command], onFailure: => Behavior[Command], attempt: Int = 1): Behavior[Command] = Behaviors.setup[Command] { ctx =>
|
def sendMessage(message: SendMessage, onSuccess: => Behavior[Command], onFailure: => Behavior[Command], attempt: Int = 0): Behavior[Command] = Behaviors.setup[Command] { ctx =>
|
||||||
import io.circe.generic.auto._
|
import io.circe.generic.auto._
|
||||||
import io.circe.syntax._
|
import io.circe.syntax._
|
||||||
|
|
||||||
@@ -254,7 +254,7 @@ object CheckDeliveryDialog {
|
|||||||
|
|
||||||
Source
|
Source
|
||||||
.single(request)
|
.single(request)
|
||||||
.initialDelay(2.seconds * (attempt - 1))
|
.initialDelay(2.seconds * attempt)
|
||||||
.mapAsync(1) { request =>
|
.mapAsync(1) { request =>
|
||||||
http
|
http
|
||||||
.singleRequest(request)
|
.singleRequest(request)
|
||||||
@@ -280,7 +280,7 @@ object CheckDeliveryDialog {
|
|||||||
case SendMessageFailure(exception) =>
|
case SendMessageFailure(exception) =>
|
||||||
ctx.log.error(exception, "action=send_message status=finished result=failure chat_id={} attempt={}", chatId, attempt)
|
ctx.log.error(exception, "action=send_message status=finished result=failure chat_id={} attempt={}", chatId, attempt)
|
||||||
|
|
||||||
if (attempt > 5) {
|
if (attempt >= 5) {
|
||||||
ctx.log.error(exception, "action=send_message result=failure message=attempts threshold exceeded")
|
ctx.log.error(exception, "action=send_message result=failure message=attempts threshold exceeded")
|
||||||
stashBuffer.unstashAll(ctx, onFailure)
|
stashBuffer.unstashAll(ctx, onFailure)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ object TelegramBot {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
def settingWebhook(binding: Http.ServerBinding, attempt: Int = 1): Behavior[Command] = Behaviors.setup[Command] { ctx =>
|
def settingWebhook(binding: Http.ServerBinding): Behavior[Command] = Behaviors.setup[Command] { ctx =>
|
||||||
case object SetWebhookSuccess extends Command
|
case object SetWebhookSuccess extends Command
|
||||||
case class SetWebhookFailure(exception: Throwable) extends Command
|
case class SetWebhookFailure(exception: Throwable) extends Command
|
||||||
|
|
||||||
@@ -145,13 +145,9 @@ object TelegramBot {
|
|||||||
ctx.log.info("action=set_webhook result=success")
|
ctx.log.info("action=set_webhook result=success")
|
||||||
stashBuffer.unstashAll(ctx, started(binding))
|
stashBuffer.unstashAll(ctx, started(binding))
|
||||||
case SetWebhookFailure(exception) =>
|
case SetWebhookFailure(exception) =>
|
||||||
if (attempt > 20) {
|
ctx.log.error("action=set_webhook result=failure", exception)
|
||||||
ctx.log.error(exception, "action=set_webhook result=failure attempt={}", attempt)
|
ctx.log.error("action=start_bot result=failure")
|
||||||
ctx.log.error("action=start_bot result=failure")
|
unbindingServer(binding, None)
|
||||||
unbindingServer(binding, None)
|
|
||||||
} else {
|
|
||||||
settingWebhook(binding, attempt = attempt + 1)
|
|
||||||
}
|
|
||||||
case otherCommand: Command =>
|
case otherCommand: Command =>
|
||||||
stashBuffer.stash(otherCommand)
|
stashBuffer.stash(otherCommand)
|
||||||
Behaviors.same
|
Behaviors.same
|
||||||
|
|||||||
Reference in New Issue
Block a user