1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2025-09-04 23:59:55 +00:00

PreviewFeature, message links

This commit is contained in:
2020-01-20 16:35:36 +06:00
parent 63e0f5c054
commit 92224b95df
3 changed files with 52 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
package com.github.insanusmokrassar.TelegramBotAPI.utils
import kotlin.Experimental.*
@Experimental(Level.WARNING)
annotation class PreviewFeature

View File

@@ -0,0 +1,40 @@
package com.github.insanusmokrassar.TelegramBotAPI.utils
import com.github.insanusmokrassar.TelegramBotAPI.types.ChatId
import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier
import com.github.insanusmokrassar.TelegramBotAPI.types.chat.abstracts.PrivateChat
import com.github.insanusmokrassar.TelegramBotAPI.types.chat.abstracts.UsernameChat
import com.github.insanusmokrassar.TelegramBotAPI.types.chat.abstracts.extended.*
private const val internalLinkBeginning = "https://t.me"
@PreviewFeature
fun makeLinkToMessage(
username: String,
messageId: MessageIdentifier
): String = "$internalLinkBeginning/$username/$messageId"
private val linkIdRedundantPartRegex = Regex("^-100")
@PreviewFeature
fun makeLinkToMessage(
chat: ExtendedChat,
messageId: MessageIdentifier
): String? {
return when {
chat is UsernameChat && chat.username != null -> "$internalLinkBeginning/${chat.username}/$messageId"
chat !is PrivateChat -> chat.id.chatId.toString().replace(
linkIdRedundantPartRegex,
""
).let { bareId ->
"$internalLinkBeginning/c/$bareId/$messageId"
}
else -> return null
}
}
@PreviewFeature
fun makeFileLink(
botToken: String,
filePath: String
) = "https://api.telegram.org/file/bot$botToken/$filePath"