Skip to content

Commit ad90180

Browse files
fixes
1 parent 69eda92 commit ad90180

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

BusinessConnectionsBot/src/main/kotlin/BusinessConnectionsBot.kt

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import dev.inmo.kslog.common.KSLog
22
import dev.inmo.kslog.common.LogLevel
33
import dev.inmo.kslog.common.defaultMessageFormatter
44
import dev.inmo.kslog.common.setDefaultKSLog
5+
import dev.inmo.micro_utils.common.Percentage
56
import dev.inmo.tgbotapi.extensions.api.answers.answer
67
import dev.inmo.tgbotapi.extensions.api.bot.getMe
78
import dev.inmo.tgbotapi.extensions.api.business.deleteBusinessMessages
@@ -18,6 +19,7 @@ import dev.inmo.tgbotapi.extensions.api.files.downloadFileToTemp
1819
import dev.inmo.tgbotapi.extensions.api.get.getBusinessConnection
1920
import dev.inmo.tgbotapi.extensions.api.send.reply
2021
import dev.inmo.tgbotapi.extensions.api.send.send
22+
import dev.inmo.tgbotapi.extensions.api.stories.postStory
2123
import dev.inmo.tgbotapi.extensions.behaviour_builder.telegramBotWithBehaviourAndLongPolling
2224
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.*
2325
import dev.inmo.tgbotapi.extensions.utils.commonMessageOrNull
@@ -30,6 +32,7 @@ import dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard
3032
import dev.inmo.tgbotapi.extensions.utils.withContentOrNull
3133
import dev.inmo.tgbotapi.requests.abstracts.multipartFile
3234
import dev.inmo.tgbotapi.requests.business_connection.InputProfilePhoto
35+
import dev.inmo.tgbotapi.requests.stories.PostStory
3336
import dev.inmo.tgbotapi.types.ChatId
3437
import dev.inmo.tgbotapi.types.MessageId
3538
import dev.inmo.tgbotapi.types.RawChatId
@@ -38,6 +41,11 @@ import dev.inmo.tgbotapi.types.chat.PrivateChat
3841
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
3942
import dev.inmo.tgbotapi.types.message.content.PhotoContent
4043
import dev.inmo.tgbotapi.types.message.content.TextContent
44+
import dev.inmo.tgbotapi.types.stories.InputStoryContent
45+
import dev.inmo.tgbotapi.types.stories.StoryArea
46+
import dev.inmo.tgbotapi.types.stories.StoryAreaPosition
47+
import dev.inmo.tgbotapi.types.stories.StoryAreaType
48+
import dev.inmo.tgbotapi.utils.botCommand
4149
import dev.inmo.tgbotapi.utils.code
4250
import dev.inmo.tgbotapi.utils.row
4351
import korlibs.time.seconds
@@ -316,5 +324,54 @@ suspend fun main(args: Array<String>) {
316324
onCommand("set_business_account_profile_photo_public", initialFilter = { it.chat is PrivateChat }) {
317325
handleSetProfilePhoto(it, true)
318326
}
327+
328+
onCommand("postStory", initialFilter = { it.chat is PrivateChat }) {
329+
val businessConnectionId = chatsBusinessConnections[it.chat.id] ?: return@onCommand
330+
val replyTo = it.replyTo ?.commonMessageOrNull() ?.withContentOrNull<PhotoContent>()
331+
if (replyTo == null) {
332+
reply(it) {
333+
+"Reply to photo for using of this command"
334+
}
335+
return@onCommand
336+
}
337+
338+
val set = runCatching {
339+
val file = downloadFileToTemp(replyTo.content)
340+
postStory(
341+
businessConnectionId,
342+
InputStoryContent.Photo(
343+
file.multipartFile()
344+
),
345+
activePeriod = PostStory.ACTIVE_PERIOD_6_HOURS,
346+
areas = listOf(
347+
StoryArea(
348+
StoryAreaPosition(
349+
x = Percentage.of100(50.0),
350+
y = Percentage.of100(50.0),
351+
width = Percentage.of100(8.0),
352+
height = Percentage.of100(8.0),
353+
rotationAngle = 45.0,
354+
cornerRadius = Percentage.of100(4.0),
355+
),
356+
StoryAreaType.Link(
357+
"https://github.com/InsanusMokrassar/TelegramBotAPI-examples/blob/master/BusinessConnectionsBot/src/main/kotlin/BusinessConnectionsBot.kt"
358+
)
359+
)
360+
)
361+
) {
362+
+"It is test of postStory :)"
363+
}
364+
}.getOrElse {
365+
it.printStackTrace()
366+
null
367+
}
368+
reply(it) {
369+
if (set != null) {
370+
+"Story has been posted. You may unpost it with " + botCommand("remove_story")
371+
} else {
372+
+"Story has not been posted"
373+
}
374+
}
375+
}
319376
}.second.join()
320377
}

0 commit comments

Comments
 (0)