checked 2.1.0 and Bot API 6.1 + update several examples

This commit is contained in:
InsanusMokrassar 2022-06-21 19:45:24 +06:00
parent 4ae700b58a
commit 0217f97014
4 changed files with 43 additions and 11 deletions

View File

@ -20,11 +20,9 @@ suspend fun main(args: Array<String>) {
telegramBotWithBehaviourAndLongPolling(botToken, CoroutineScope(Dispatchers.IO)) { telegramBotWithBehaviourAndLongPolling(botToken, CoroutineScope(Dispatchers.IO)) {
onMedia(initialFilter = null) { onMedia(initialFilter = null) {
val pathedFile = bot.getFileAdditionalInfo(it.content.media) val pathedFile = bot.getFileAdditionalInfo(it.content.media)
val file = File(directoryOrFile, pathedFile.filePath.filenameFromUrl).apply { val outFile = File(directoryOrFile, pathedFile.filePath.filenameFromUrl)
createNewFile() bot.downloadFile(it.content.media, outFile)
writeBytes(bot.downloadFile(pathedFile)) reply(it, "Saved to ${outFile.absolutePath}")
}
reply(it, "Saved to ${file.absolutePath}")
} }
onContentMessage { println(it) } onContentMessage { println(it) }
}.second.join() }.second.join()

View File

@ -26,7 +26,13 @@ suspend fun main(vararg args: String) {
is UserForwardInfo -> { is UserForwardInfo -> {
val user = forwardInfo.from val user = forwardInfo.from
when (user) { when (user) {
is CommonUser -> regular("User ") is CommonUser -> {
if (user.isPremium) {
regular("Premium user ")
} else {
regular("User ")
}
}
is CommonBot, is CommonBot,
is ExtendedBot -> regular("Bot ") is ExtendedBot -> regular("Bot ")
} + code(user.id.chatId.toString()) + " (${user.firstName} ${user.lastName}: ${user.username ?.username ?: "Without username"})" } + code(user.id.chatId.toString()) + " (${user.firstName} ${user.lastName}: ${user.username ?.username ?: "Without username"})"

View File

@ -1,6 +1,8 @@
import dev.inmo.micro_utils.coroutines.launchSafelyWithoutExceptions import dev.inmo.micro_utils.coroutines.launchSafelyWithoutExceptions
import dev.inmo.tgbotapi.types.webAppQueryIdField import dev.inmo.tgbotapi.types.webAppQueryIdField
import dev.inmo.tgbotapi.webapps.* import dev.inmo.tgbotapi.webapps.*
import dev.inmo.tgbotapi.webapps.haptic.HapticFeedbackStyle
import dev.inmo.tgbotapi.webapps.haptic.HapticFeedbackType
import io.ktor.client.HttpClient import io.ktor.client.HttpClient
import io.ktor.client.request.* import io.ktor.client.request.*
import io.ktor.client.statement.bodyAsText import io.ktor.client.statement.bodyAsText
@ -15,8 +17,8 @@ import kotlinx.serialization.json.Json
import org.w3c.dom.HTMLElement import org.w3c.dom.HTMLElement
fun HTMLElement.log(text: String) { fun HTMLElement.log(text: String) {
appendElement("p", {})
appendText(text) appendText(text)
appendElement("p", {})
} }
fun main() { fun main() {
@ -39,13 +41,17 @@ fun main() {
} }
val dataIsSafe = response.bodyAsText().toBoolean() val dataIsSafe = response.bodyAsText().toBoolean()
document.body ?.appendElement("div") { document.body ?.log(
textContent = if (dataIsSafe) { if (dataIsSafe) {
"Data is safe" "Data is safe"
} else { } else {
"Data is unsafe" "Data is unsafe"
} }
} )
document.body ?.log(
webApp.initDataUnsafe.chat.toString()
)
} }
document.body ?.appendElement("button") { document.body ?.appendElement("button") {
@ -69,6 +75,28 @@ fun main() {
onViewportChanged { onViewportChanged {
document.body ?.log("Viewport changed: ${it.isStateStable}") document.body ?.log("Viewport changed: ${it.isStateStable}")
} }
backButton.apply {
onClick {
document.body ?.log("Back button clicked")
hapticFeedback.impactOccurred(
HapticFeedbackStyle.Heavy
)
}
show()
}
mainButton.apply {
setText("Main button")
onClick {
document.body ?.log("Main button clicked")
hapticFeedback.notificationOccurred(
HapticFeedbackType.Success
)
}
show()
}
onSettingsButtonClicked {
document.body ?.log("Settings button clicked")
}
} }
webApp.ready() webApp.ready()
}.onFailure { }.onFailure {

View File

@ -5,7 +5,7 @@ org.gradle.jvmargs=-Xmx768m
kotlin_version=1.6.21 kotlin_version=1.6.21
telegram_bot_api_version=2.0.3 telegram_bot_api_version=2.1.0
micro_utils_version=0.11.3 micro_utils_version=0.11.3
serialization_version=1.3.3 serialization_version=1.3.3
ktor_version=2.0.2 ktor_version=2.0.2