2021-12-20 08:13:55 +00:00
|
|
|
import dev.inmo.micro_utils.coroutines.subscribeSafelyWithoutExceptions
|
2020-10-04 11:32:50 +00:00
|
|
|
import dev.inmo.tgbotapi.extensions.api.chat.get.getChat
|
2020-10-04 13:18:16 +00:00
|
|
|
import dev.inmo.tgbotapi.extensions.api.send.reply
|
2020-10-04 11:32:50 +00:00
|
|
|
import dev.inmo.tgbotapi.extensions.api.send.sendTextMessage
|
2021-11-11 06:34:52 +00:00
|
|
|
import dev.inmo.tgbotapi.extensions.behaviour_builder.telegramBotWithBehaviourAndLongPolling
|
2021-06-27 19:14:16 +00:00
|
|
|
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onContentMessage
|
2020-10-04 11:32:50 +00:00
|
|
|
import dev.inmo.tgbotapi.extensions.utils.formatting.linkMarkdownV2
|
|
|
|
import dev.inmo.tgbotapi.extensions.utils.formatting.textMentionMarkdownV2
|
2022-05-10 18:23:14 +00:00
|
|
|
import dev.inmo.tgbotapi.types.chat.*
|
|
|
|
import dev.inmo.tgbotapi.types.chat.GroupChat
|
|
|
|
import dev.inmo.tgbotapi.types.chat.PrivateChat
|
|
|
|
import dev.inmo.tgbotapi.types.chat.SupergroupChat
|
|
|
|
import dev.inmo.tgbotapi.types.message.MarkdownV2
|
|
|
|
import dev.inmo.tgbotapi.utils.PreviewFeature
|
2020-10-04 11:32:50 +00:00
|
|
|
import dev.inmo.tgbotapi.utils.extensions.escapeMarkdownV2Common
|
2020-06-02 15:22:09 +00:00
|
|
|
import kotlinx.coroutines.*
|
|
|
|
|
2020-06-02 15:48:07 +00:00
|
|
|
/**
|
|
|
|
* The main purpose of this bot is just to answer "Oh, hi, " and add user mention here
|
|
|
|
*/
|
2022-05-10 18:23:14 +00:00
|
|
|
@OptIn(PreviewFeature::class)
|
2020-06-02 15:22:09 +00:00
|
|
|
suspend fun main(vararg args: String) {
|
|
|
|
val botToken = args.first()
|
|
|
|
|
2021-11-11 06:34:52 +00:00
|
|
|
telegramBotWithBehaviourAndLongPolling(botToken, CoroutineScope(Dispatchers.IO)) {
|
2021-06-27 19:14:16 +00:00
|
|
|
onContentMessage { message ->
|
|
|
|
val chat = message.chat
|
|
|
|
if (chat is ChannelChat) {
|
|
|
|
val answer = "Hi everybody in this channel \"${chat.title}\""
|
|
|
|
sendTextMessage(chat, answer, MarkdownV2)
|
|
|
|
return@onContentMessage
|
2020-06-02 15:22:09 +00:00
|
|
|
}
|
2021-06-27 19:14:16 +00:00
|
|
|
val answerText = "Oh, hi, " + when (chat) {
|
|
|
|
is User -> "${chat.firstName} ${chat.lastName}".textMentionMarkdownV2(chat.id)
|
2022-05-10 18:23:14 +00:00
|
|
|
is PrivateChat -> "${chat.firstName} ${chat.lastName}".textMentionMarkdownV2(chat.id)
|
2021-06-27 19:14:16 +00:00
|
|
|
is SupergroupChat -> (chat.username ?.username ?: getChat(chat).inviteLink) ?.let {
|
|
|
|
chat.title.linkMarkdownV2(it)
|
|
|
|
} ?: chat.title
|
|
|
|
is GroupChat -> bot.getChat(chat).inviteLink ?.let {
|
|
|
|
chat.title.linkMarkdownV2(it)
|
|
|
|
} ?: chat.title
|
|
|
|
else -> "Unknown :(".escapeMarkdownV2Common()
|
2020-07-02 10:37:12 +00:00
|
|
|
}
|
2021-06-27 19:14:16 +00:00
|
|
|
reply(
|
|
|
|
message,
|
|
|
|
answerText,
|
|
|
|
MarkdownV2
|
|
|
|
)
|
|
|
|
}
|
2021-12-20 08:13:55 +00:00
|
|
|
allUpdatesFlow.subscribeSafelyWithoutExceptions(this) { println(it) }
|
2021-06-27 19:14:16 +00:00
|
|
|
}.second.join()
|
|
|
|
}
|