mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2024-11-22 16:23:48 +00:00
deprecations removing
This commit is contained in:
parent
1452e32293
commit
198b551ebf
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
## 0.31.0
|
## 0.31.0
|
||||||
|
|
||||||
|
* `Common`:
|
||||||
|
* **ALL DEPRECATIONS WAS REMOVED**
|
||||||
* `Behaviour Builder`:
|
* `Behaviour Builder`:
|
||||||
* Extension `TelegramBot#buildBehaviour` have changed its return value: now it is `Job` instead of
|
* Extension `TelegramBot#buildBehaviour` have changed its return value: now it is `Job` instead of
|
||||||
`FlowsUpdatesFilter`
|
`FlowsUpdatesFilter`
|
||||||
|
@ -30,5 +30,4 @@ val CaptionedInput.textSources
|
|||||||
* Convert its [CaptionedInput.captionEntities] to list of [dev.inmo.tgbotapi.CommonAbstracts.TextSource]
|
* Convert its [CaptionedInput.captionEntities] to list of [dev.inmo.tgbotapi.CommonAbstracts.TextSource]
|
||||||
* with [dev.inmo.tgbotapi.types.MessageEntity.textsources.RegularTextSource]
|
* with [dev.inmo.tgbotapi.types.MessageEntity.textsources.RegularTextSource]
|
||||||
*/
|
*/
|
||||||
@Deprecated("Currently list of entities already full. This method is redundant")
|
internal fun CaptionedInput.fullEntitiesList(): TextSourcesList = caption ?.fullListOfSubSource(captionEntities) ?.map { it.source } ?: emptyList()
|
||||||
fun CaptionedInput.fullEntitiesList(): TextSourcesList = caption ?.fullListOfSubSource(captionEntities) ?.map { it.source } ?: emptyList()
|
|
||||||
|
@ -19,7 +19,7 @@ interface ExplainedOutput : ParsableExplainedOutput, EntitiesExplainedOutput
|
|||||||
|
|
||||||
interface ExplainedInput : Explained {
|
interface ExplainedInput : Explained {
|
||||||
/**
|
/**
|
||||||
* Not full list of entities. This list WILL NOT contain [TextPart]s with [dev.inmo.tgbotapi.types.MessageEntity.textsources.RegularTextSource]
|
* Full list of entities. This list WILL contain [TextPart]s with [dev.inmo.tgbotapi.types.MessageEntity.textsources.RegularTextSource]
|
||||||
* @see [ExplainedInput.fullEntitiesList]
|
* @see [ExplainedInput.fullEntitiesList]
|
||||||
*/
|
*/
|
||||||
val explanationEntities: List<TextPart>
|
val explanationEntities: List<TextPart>
|
||||||
@ -36,5 +36,4 @@ val ExplainedInput.textSources
|
|||||||
* Convert its [ExplainedInput.explanationEntities] to list of [dev.inmo.tgbotapi.CommonAbstracts.TextSource]
|
* Convert its [ExplainedInput.explanationEntities] to list of [dev.inmo.tgbotapi.CommonAbstracts.TextSource]
|
||||||
* with [dev.inmo.tgbotapi.types.MessageEntity.textsources.RegularTextSource]
|
* with [dev.inmo.tgbotapi.types.MessageEntity.textsources.RegularTextSource]
|
||||||
*/
|
*/
|
||||||
@Deprecated("Currently list of entities already full. This method is redundant")
|
internal fun ExplainedInput.fullEntitiesList(): TextSourcesList = explanation ?.fullListOfSubSource(explanationEntities) ?.map { it.source } ?: emptyList()
|
||||||
fun ExplainedInput.fullEntitiesList(): TextSourcesList = explanation ?.fullListOfSubSource(explanationEntities) ?.map { it.source } ?: emptyList()
|
|
||||||
|
@ -8,10 +8,6 @@ import dev.inmo.tgbotapi.types.textLength
|
|||||||
const val DirectInvocationOfTextSourceConstructor = "It is strongly not recommended to use constructors directly instead of factory methods"
|
const val DirectInvocationOfTextSourceConstructor = "It is strongly not recommended to use constructors directly instead of factory methods"
|
||||||
|
|
||||||
typealias TextSourcesList = List<TextSource>
|
typealias TextSourcesList = List<TextSource>
|
||||||
@Deprecated("All lists of TextSource in public API now are full. So, this typealias is redundant")
|
|
||||||
typealias FullTextSourcesList = List<TextSource>
|
|
||||||
@Deprecated("All lists of TextPart in public API now are full. So, this typealias is redundant")
|
|
||||||
typealias FullTextPartsList = List<TextPart>
|
|
||||||
|
|
||||||
interface TextSource {
|
interface TextSource {
|
||||||
val markdown: String
|
val markdown: String
|
||||||
@ -21,16 +17,6 @@ interface TextSource {
|
|||||||
|
|
||||||
val asText: String
|
val asText: String
|
||||||
get() = source
|
get() = source
|
||||||
|
|
||||||
@Deprecated("Rename", ReplaceWith("markdown"))
|
|
||||||
val asMarkdownSource: String
|
|
||||||
get() = markdown
|
|
||||||
@Deprecated("Rename", ReplaceWith("markdownV2"))
|
|
||||||
val asMarkdownV2Source: String
|
|
||||||
get() = markdownV2
|
|
||||||
@Deprecated("Rename", ReplaceWith("html"))
|
|
||||||
val asHtmlSource: String
|
|
||||||
get() = html
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
@ -43,13 +29,7 @@ inline operator fun TextSource.plus(text: String) = listOf(this, regular(text))
|
|||||||
inline operator fun List<TextSource>.plus(text: String) = this + regular(text)
|
inline operator fun List<TextSource>.plus(text: String) = this + regular(text)
|
||||||
|
|
||||||
interface MultilevelTextSource : TextSource {
|
interface MultilevelTextSource : TextSource {
|
||||||
@Deprecated("Will be removed in near major release")
|
|
||||||
val textParts: List<TextPart>
|
|
||||||
get() = textParts(0)
|
|
||||||
val subsources: List<TextSource>
|
val subsources: List<TextSource>
|
||||||
@Deprecated("Will be removed in near major release", ReplaceWith("subsources"))
|
|
||||||
val textSources: List<TextSource>
|
|
||||||
get() = subsources
|
|
||||||
}
|
}
|
||||||
|
|
||||||
data class TextPart(
|
data class TextPart(
|
||||||
|
@ -40,5 +40,4 @@ val TextedInput.textSources
|
|||||||
* Convert its [TextedInput.textEntities] to list of [dev.inmo.tgbotapi.CommonAbstracts.TextSource]
|
* Convert its [TextedInput.textEntities] to list of [dev.inmo.tgbotapi.CommonAbstracts.TextSource]
|
||||||
* with [dev.inmo.tgbotapi.types.MessageEntity.textsources.RegularTextSource]
|
* with [dev.inmo.tgbotapi.types.MessageEntity.textsources.RegularTextSource]
|
||||||
*/
|
*/
|
||||||
@Deprecated("Currently list of entities already full. This method is redundant")
|
internal fun TextedInput.fullEntitiesList(): TextSourcesList = text ?.fullListOfSubSource(textEntities) ?.map { it.source } ?: emptyList()
|
||||||
fun TextedInput.fullEntitiesList(): TextSourcesList = text ?.fullListOfSubSource(textEntities) ?.map { it.source } ?: emptyList()
|
|
||||||
|
@ -60,6 +60,3 @@ class ExceptionsOnlyLimiter(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated("Renamed", ReplaceWith("ExceptionsOnlyLimiter", "dev.inmo.tgbotapi.bot.settings.limiters.ExceptionsOnlyLimiter"))
|
|
||||||
typealias EmptyLimiter = ExceptionsOnlyLimiter
|
|
||||||
|
@ -62,12 +62,6 @@ val inlineQueryAnswerResultsLimit = 0 .. 50
|
|||||||
val customTitleLength = 0 .. 16
|
val customTitleLength = 0 .. 16
|
||||||
|
|
||||||
val dartsCubeAndBowlingDiceResultLimit = 1 .. 6
|
val dartsCubeAndBowlingDiceResultLimit = 1 .. 6
|
||||||
@Deprecated("Renamed", ReplaceWith("dartsCubeAndBowlingDiceResultLimit", "dev.inmo.tgbotapi.types.dartsCubeAndBowlingDiceResultLimit"))
|
|
||||||
val dartsAndCubeDiceResultLimit
|
|
||||||
get() = dartsCubeAndBowlingDiceResultLimit
|
|
||||||
@Deprecated("Renamed", ReplaceWith("dartsCubeAndBowlingDiceResultLimit", "dev.inmo.tgbotapi.types.dartsCubeAndBowlingDiceResultLimit"))
|
|
||||||
val diceResultLimit
|
|
||||||
get() = dartsCubeAndBowlingDiceResultLimit
|
|
||||||
val basketballAndFootballDiceResultLimit = 1 .. 5
|
val basketballAndFootballDiceResultLimit = 1 .. 5
|
||||||
val slotMachineDiceResultLimit = 1 .. 64
|
val slotMachineDiceResultLimit = 1 .. 64
|
||||||
|
|
||||||
|
@ -9,10 +9,5 @@ const val inlineQueryResultDocumentType = "document"
|
|||||||
interface InlineQueryResultDocumentCommon : InlineQueryResult,
|
interface InlineQueryResultDocumentCommon : InlineQueryResult,
|
||||||
TitledInlineQueryResult,
|
TitledInlineQueryResult,
|
||||||
DescribedInlineQueryResult,
|
DescribedInlineQueryResult,
|
||||||
CaptionedOutput,
|
|
||||||
TextedOutput,
|
TextedOutput,
|
||||||
WithInputMessageContentInlineQueryResult {
|
WithInputMessageContentInlineQueryResult
|
||||||
@Deprecated("Will be removed in next major release")
|
|
||||||
override val caption: String?
|
|
||||||
get() = text
|
|
||||||
}
|
|
||||||
|
@ -8,10 +8,5 @@ const val inlineQueryResultGifType = "gif"
|
|||||||
|
|
||||||
interface InlineQueryResultGifCommon : InlineQueryResult,
|
interface InlineQueryResultGifCommon : InlineQueryResult,
|
||||||
OptionallyTitledInlineQueryResult,
|
OptionallyTitledInlineQueryResult,
|
||||||
CaptionedOutput,
|
|
||||||
TextedOutput,
|
TextedOutput,
|
||||||
WithInputMessageContentInlineQueryResult {
|
WithInputMessageContentInlineQueryResult
|
||||||
@Deprecated("Will be removed in next major release")
|
|
||||||
override val caption: String?
|
|
||||||
get() = text
|
|
||||||
}
|
|
||||||
|
@ -8,10 +8,5 @@ const val inlineQueryResultMpeg4GifType = "mpeg4_gif"
|
|||||||
|
|
||||||
interface InlineQueryResultMpeg4GifCommon : InlineQueryResult,
|
interface InlineQueryResultMpeg4GifCommon : InlineQueryResult,
|
||||||
OptionallyTitledInlineQueryResult,
|
OptionallyTitledInlineQueryResult,
|
||||||
CaptionedOutput,
|
|
||||||
TextedOutput,
|
TextedOutput,
|
||||||
WithInputMessageContentInlineQueryResult {
|
WithInputMessageContentInlineQueryResult
|
||||||
@Deprecated("Will be removed in next major release")
|
|
||||||
override val caption: String?
|
|
||||||
get() = text
|
|
||||||
}
|
|
||||||
|
@ -9,10 +9,5 @@ const val inlineQueryResultPhotoType = "photo"
|
|||||||
interface InlineQueryResultPhotoCommon : InlineQueryResult,
|
interface InlineQueryResultPhotoCommon : InlineQueryResult,
|
||||||
OptionallyTitledInlineQueryResult,
|
OptionallyTitledInlineQueryResult,
|
||||||
DescribedInlineQueryResult,
|
DescribedInlineQueryResult,
|
||||||
CaptionedOutput,
|
|
||||||
TextedOutput,
|
TextedOutput,
|
||||||
WithInputMessageContentInlineQueryResult {
|
WithInputMessageContentInlineQueryResult
|
||||||
@Deprecated("Will be removed in next major release")
|
|
||||||
override val caption: String?
|
|
||||||
get() = text
|
|
||||||
}
|
|
||||||
|
@ -9,10 +9,5 @@ const val inlineQueryResultVideoType = "video"
|
|||||||
interface InlineQueryResultVideoCommon : InlineQueryResult,
|
interface InlineQueryResultVideoCommon : InlineQueryResult,
|
||||||
TitledInlineQueryResult,
|
TitledInlineQueryResult,
|
||||||
DescribedInlineQueryResult,
|
DescribedInlineQueryResult,
|
||||||
CaptionedOutput,
|
|
||||||
TextedOutput,
|
TextedOutput,
|
||||||
WithInputMessageContentInlineQueryResult {
|
WithInputMessageContentInlineQueryResult
|
||||||
@Deprecated("Will be removed in next major release")
|
|
||||||
override val caption: String?
|
|
||||||
get() = text
|
|
||||||
}
|
|
||||||
|
@ -7,11 +7,6 @@ import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.*
|
|||||||
const val inlineQueryResultVoiceType = "voice"
|
const val inlineQueryResultVoiceType = "voice"
|
||||||
|
|
||||||
interface InlineQueryResultVoiceCommon : InlineQueryResult,
|
interface InlineQueryResultVoiceCommon : InlineQueryResult,
|
||||||
CaptionedOutput,
|
|
||||||
TextedOutput,
|
TextedOutput,
|
||||||
WithInputMessageContentInlineQueryResult,
|
WithInputMessageContentInlineQueryResult,
|
||||||
TitledInlineQueryResult {
|
TitledInlineQueryResult
|
||||||
@Deprecated("Will be removed in next major release")
|
|
||||||
override val caption: String?
|
|
||||||
get() = text
|
|
||||||
}
|
|
||||||
|
@ -37,10 +37,7 @@ data class InputTextMessageContent internal constructor(
|
|||||||
private val rawEntities: List<RawMessageEntity>? = null,
|
private val rawEntities: List<RawMessageEntity>? = null,
|
||||||
@SerialName(disableWebPagePreviewField)
|
@SerialName(disableWebPagePreviewField)
|
||||||
override val disableWebPagePreview: Boolean? = null
|
override val disableWebPagePreview: Boolean? = null
|
||||||
) : CaptionedOutput, TextedOutput, DisableWebPagePreview, InputMessageContent {
|
) : TextedOutput, DisableWebPagePreview, InputMessageContent {
|
||||||
@Deprecated("Will be removed in next major release")
|
|
||||||
override val caption: String?
|
|
||||||
get() = text
|
|
||||||
override val entities: List<TextSource>? by lazy {
|
override val entities: List<TextSource>? by lazy {
|
||||||
rawEntities ?.asTextParts(text) ?.justTextSources()
|
rawEntities ?.asTextParts(text) ?.justTextSources()
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,6 @@ package dev.inmo.tgbotapi.types.InputMedia
|
|||||||
import dev.inmo.tgbotapi.requests.abstracts.InputFile
|
import dev.inmo.tgbotapi.requests.abstracts.InputFile
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
@Deprecated("Will be removed due to redundancy for end-side users")
|
|
||||||
fun String.toInputMediaFileAttachmentName() = "attach://$this"
|
|
||||||
|
|
||||||
@Serializable(InputMediaSerializer::class)
|
@Serializable(InputMediaSerializer::class)
|
||||||
interface InputMedia {
|
interface InputMedia {
|
||||||
val type: String
|
val type: String
|
||||||
|
@ -42,16 +42,12 @@ data class InputMediaAnimation internal constructor(
|
|||||||
override val height: Int? = null,
|
override val height: Int? = null,
|
||||||
override val duration: Long? = null,
|
override val duration: Long? = null,
|
||||||
override val thumb: InputFile? = null
|
override val thumb: InputFile? = null
|
||||||
) : InputMedia, SizedInputMedia, DuratedInputMedia, ThumbedInputMedia, TextedOutput, CaptionedOutput {
|
) : InputMedia, SizedInputMedia, DuratedInputMedia, ThumbedInputMedia, TextedOutput {
|
||||||
override val type: String = "animation"
|
override val type: String = "animation"
|
||||||
override val entities: List<TextSource>? by lazy {
|
override val entities: List<TextSource>? by lazy {
|
||||||
rawEntities ?.asTextParts(text ?: return@lazy null) ?.justTextSources()
|
rawEntities ?.asTextParts(text ?: return@lazy null) ?.justTextSources()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated("Will be removed in next major release")
|
|
||||||
override val caption: String?
|
|
||||||
get() = text
|
|
||||||
|
|
||||||
@SerialName(mediaField)
|
@SerialName(mediaField)
|
||||||
override val media: String
|
override val media: String
|
||||||
init { media = file.fileIdToSend } // crutch until js compiling will be fixed
|
init { media = file.fileIdToSend } // crutch until js compiling will be fixed
|
||||||
|
@ -16,10 +16,7 @@ internal fun <T> T.buildArguments(withSerializer: SerializationStrategy<T>) = ar
|
|||||||
)
|
)
|
||||||
|
|
||||||
@Serializable(MediaGroupMemberInputMediaSerializer::class)
|
@Serializable(MediaGroupMemberInputMediaSerializer::class)
|
||||||
interface MediaGroupMemberInputMedia : InputMedia, CaptionedOutput, TextedOutput {
|
interface MediaGroupMemberInputMedia : InputMedia, TextedOutput {
|
||||||
@Deprecated("Will be removed in next major release")
|
|
||||||
override val caption: String?
|
|
||||||
get() = text
|
|
||||||
fun serialize(format: StringFormat): String
|
fun serialize(format: StringFormat): String
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,6 +20,3 @@ data class ChannelMessageImpl<T: MessageContent>(
|
|||||||
override val senderBot: CommonBot?,
|
override val senderBot: CommonBot?,
|
||||||
override val authorSignature: AuthorSignature?
|
override val authorSignature: AuthorSignature?
|
||||||
) : ChannelMessage<T>
|
) : ChannelMessage<T>
|
||||||
|
|
||||||
@Deprecated("Renamed", ReplaceWith("ChannelMessageImpl", "dev.inmo.tgbotapi.types.message.ChannelMessageImpl"))
|
|
||||||
typealias ChannelMessage<T> = ChannelMessageImpl<T>
|
|
||||||
|
@ -7,9 +7,6 @@ import dev.inmo.tgbotapi.types.chat.abstracts.GroupChat
|
|||||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.GroupEvent
|
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.GroupEvent
|
||||||
import dev.inmo.tgbotapi.types.message.abstracts.GroupEventMessage
|
import dev.inmo.tgbotapi.types.message.abstracts.GroupEventMessage
|
||||||
|
|
||||||
@Deprecated("Renamed", ReplaceWith("CommonGroupEventMessage"))
|
|
||||||
typealias GroupEventMessage = CommonGroupEventMessage<*>
|
|
||||||
|
|
||||||
data class CommonGroupEventMessage<T : GroupEvent>(
|
data class CommonGroupEventMessage<T : GroupEvent>(
|
||||||
override val messageId: MessageIdentifier,
|
override val messageId: MessageIdentifier,
|
||||||
override val user: User,
|
override val user: User,
|
||||||
|
@ -8,9 +8,6 @@ import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.GroupEvent
|
|||||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.SupergroupEvent
|
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.SupergroupEvent
|
||||||
import dev.inmo.tgbotapi.types.message.abstracts.SupergroupEventMessage
|
import dev.inmo.tgbotapi.types.message.abstracts.SupergroupEventMessage
|
||||||
|
|
||||||
@Deprecated("Renamed", ReplaceWith("CommonSupergroupEventMessage"))
|
|
||||||
typealias SupergroupEventMessage = CommonSupergroupEventMessage<*>
|
|
||||||
|
|
||||||
data class CommonSupergroupEventMessage<T : SupergroupEvent>(
|
data class CommonSupergroupEventMessage<T : SupergroupEvent>(
|
||||||
override val messageId: MessageIdentifier,
|
override val messageId: MessageIdentifier,
|
||||||
override val user: User,
|
override val user: User,
|
||||||
|
@ -22,6 +22,3 @@ data class PrivateMessageImpl<T: MessageContent>(
|
|||||||
override val senderBot: CommonBot?,
|
override val senderBot: CommonBot?,
|
||||||
val paymentInfo: SuccessfulPaymentInfo?
|
val paymentInfo: SuccessfulPaymentInfo?
|
||||||
) : PrivateMessage<T>
|
) : PrivateMessage<T>
|
||||||
|
|
||||||
@Deprecated("Renamed", ReplaceWith("PrivateMessageImpl", "dev.inmo.tgbotapi.types.message.PrivateMessageImpl"))
|
|
||||||
typealias CommonMessageImpl<T> = PrivateMessageImpl<T>
|
|
||||||
|
@ -17,10 +17,6 @@ data class TextContent(
|
|||||||
override val text: String,
|
override val text: String,
|
||||||
override val textEntities: List<TextPart> = emptyList()
|
override val textEntities: List<TextPart> = emptyList()
|
||||||
) : MessageContent, TextedInput {
|
) : MessageContent, TextedInput {
|
||||||
@Deprecated("Has been renamed", ReplaceWith("textEntities"))
|
|
||||||
val entities: List<TextPart>
|
|
||||||
get() = textEntities
|
|
||||||
|
|
||||||
override fun createResend(
|
override fun createResend(
|
||||||
chatId: ChatIdentifier,
|
chatId: ChatIdentifier,
|
||||||
disableNotification: Boolean,
|
disableNotification: Boolean,
|
||||||
@ -82,5 +78,4 @@ data class TextContent(
|
|||||||
* Convert its [TextContent.entities] to list of [dev.inmo.tgbotapi.CommonAbstracts.TextSource]
|
* Convert its [TextContent.entities] to list of [dev.inmo.tgbotapi.CommonAbstracts.TextSource]
|
||||||
* with [dev.inmo.tgbotapi.types.MessageEntity.textsources.RegularTextSource]
|
* with [dev.inmo.tgbotapi.types.MessageEntity.textsources.RegularTextSource]
|
||||||
*/
|
*/
|
||||||
@Deprecated("Useless due to the fact that currently every message contains full list of sources")
|
internal fun TextContent.fullEntitiesList(): TextSourcesList = text.fullListOfSubSource(textEntities).map { it.source }
|
||||||
fun TextContent.fullEntitiesList(): TextSourcesList = text.fullListOfSubSource(entities).map { it.source }
|
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
package dev.inmo.tgbotapi.utils
|
|
||||||
|
|
||||||
import dev.inmo.micro_utils.coroutines.ExceptionHandler
|
|
||||||
import dev.inmo.micro_utils.coroutines.safely
|
|
||||||
import kotlinx.coroutines.CoroutineScope
|
|
||||||
import kotlinx.coroutines.supervisorScope
|
|
||||||
|
|
||||||
|
|
||||||
@Deprecated("In future will be used typealias from micro_utils", ReplaceWith("ExceptionHandler", "dev.inmo.micro_utils.coroutines.ExceptionHandler"))
|
|
||||||
typealias ExceptionHandler<T> = ExceptionHandler<T>
|
|
||||||
/**
|
|
||||||
* It will run [block] inside of [supervisorScope] to avoid problems with catching of exceptions
|
|
||||||
*
|
|
||||||
* @param [onException] Will be called when happen exception inside of [block]. By default will throw exception - this
|
|
||||||
* exception will be available for catching
|
|
||||||
*/
|
|
||||||
@Deprecated("In future will be used typealias from micro_utils", ReplaceWith("safely", "dev.inmo.micro_utils.coroutines.safely"))
|
|
||||||
suspend inline fun <T> handleSafely(
|
|
||||||
noinline onException: ExceptionHandler<T> = { throw it },
|
|
||||||
noinline block: suspend CoroutineScope.() -> T
|
|
||||||
): T = safely(onException, block)
|
|
@ -45,17 +45,3 @@ fun buildBot(
|
|||||||
TelegramAPIUrlsKeeper(token, apiUrl),
|
TelegramAPIUrlsKeeper(token, apiUrl),
|
||||||
BotBuilder().apply(block).createHttpClient()
|
BotBuilder().apply(block).createHttpClient()
|
||||||
)
|
)
|
||||||
|
|
||||||
/**
|
|
||||||
* @return Created by [telegramBotWithCustomClientConfig] function [TelegramBot]. This executor will be preconfigured using [token] and
|
|
||||||
* [block]
|
|
||||||
*/
|
|
||||||
@Deprecated("Renamed", ReplaceWith("buildBot", "dev.inmo.tgbotapi.extensions.api.buildBot"))
|
|
||||||
fun telegramBot(
|
|
||||||
token: String,
|
|
||||||
block: BotBuilder.() -> Unit
|
|
||||||
): TelegramBot = buildBot(
|
|
||||||
token,
|
|
||||||
telegramBotAPIDefaultUrl,
|
|
||||||
block
|
|
||||||
)
|
|
||||||
|
@ -1,30 +1,20 @@
|
|||||||
package dev.inmo.tgbotapi.extensions.api
|
package dev.inmo.tgbotapi.extensions.api
|
||||||
|
|
||||||
import dev.inmo.tgbotapi.bot.Ktor.KtorRequestsExecutorBuilder
|
|
||||||
import dev.inmo.tgbotapi.bot.TelegramBot
|
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||||
|
import dev.inmo.tgbotapi.bot.Ktor.telegramBot
|
||||||
import dev.inmo.tgbotapi.utils.TelegramAPIUrlsKeeper
|
import dev.inmo.tgbotapi.utils.TelegramAPIUrlsKeeper
|
||||||
import dev.inmo.tgbotapi.utils.telegramBotAPIDefaultUrl
|
import dev.inmo.tgbotapi.utils.telegramBotAPIDefaultUrl
|
||||||
import io.ktor.client.HttpClient
|
import io.ktor.client.HttpClient
|
||||||
import io.ktor.client.HttpClientConfig
|
import io.ktor.client.HttpClientConfig
|
||||||
import io.ktor.client.engine.*
|
import io.ktor.client.engine.*
|
||||||
|
|
||||||
/**
|
|
||||||
* Allows to create bot using bot [urlsKeeper]
|
|
||||||
*/
|
|
||||||
@Deprecated("Replaced in core", ReplaceWith("telegramBot", "dev.inmo.tgbotapi.bot.Ktor.telegramBot"))
|
|
||||||
fun telegramBot(
|
|
||||||
urlsKeeper: TelegramAPIUrlsKeeper
|
|
||||||
): TelegramBot = dev.inmo.tgbotapi.bot.Ktor.telegramBot(
|
|
||||||
urlsKeeper
|
|
||||||
)
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allows to create bot using bot [urlsKeeper] and already prepared [client]
|
* Allows to create bot using bot [urlsKeeper] and already prepared [client]
|
||||||
*/
|
*/
|
||||||
fun telegramBot(
|
fun telegramBot(
|
||||||
urlsKeeper: TelegramAPIUrlsKeeper,
|
urlsKeeper: TelegramAPIUrlsKeeper,
|
||||||
client: HttpClient
|
client: HttpClient
|
||||||
): TelegramBot = dev.inmo.tgbotapi.bot.Ktor.telegramBot(urlsKeeper) {
|
): TelegramBot = telegramBot(urlsKeeper) {
|
||||||
this.client = client
|
this.client = client
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,16 +59,6 @@ inline fun telegramBot(
|
|||||||
HttpClient(clientConfig)
|
HttpClient(clientConfig)
|
||||||
)
|
)
|
||||||
|
|
||||||
/**
|
|
||||||
* Allows to create bot using bot [token], [apiUrl] (for custom api servers) and already prepared [client]
|
|
||||||
*/
|
|
||||||
@Deprecated("Replaced in core", ReplaceWith("telegramBot", "dev.inmo.tgbotapi.bot.Ktor.telegramBot"))
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
inline fun telegramBot(
|
|
||||||
token: String,
|
|
||||||
apiUrl: String = telegramBotAPIDefaultUrl
|
|
||||||
): TelegramBot = dev.inmo.tgbotapi.bot.Ktor.telegramBot(token, apiUrl)
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allows to create bot using bot [token], [apiUrl] (for custom api servers) and already prepared [client]
|
* Allows to create bot using bot [token], [apiUrl] (for custom api servers) and already prepared [client]
|
||||||
*/
|
*/
|
||||||
@ -130,37 +110,3 @@ inline fun telegramBot(
|
|||||||
TelegramAPIUrlsKeeper(token, apiUrl),
|
TelegramAPIUrlsKeeper(token, apiUrl),
|
||||||
clientConfig
|
clientConfig
|
||||||
)
|
)
|
||||||
|
|
||||||
/**
|
|
||||||
* Allows to create bot using bot [urlsKeeper] and specify [HttpClientEngine] by passing [clientEngine] param and optionally
|
|
||||||
* configure [HttpClient] using [clientConfig]
|
|
||||||
*/
|
|
||||||
@Deprecated("Will be removed in next releases", ReplaceWith("telegramBot", "dev.inmo.tgbotapi.extensions.api.telegramBot"))
|
|
||||||
fun telegramBotWithCustomClientConfig(
|
|
||||||
urlsKeeper: TelegramAPIUrlsKeeper,
|
|
||||||
clientEngine: HttpClientEngine,
|
|
||||||
clientConfig: HttpClientConfig<*>.() -> Unit
|
|
||||||
): TelegramBot = telegramBot(
|
|
||||||
urlsKeeper,
|
|
||||||
HttpClient(clientEngine, clientConfig)
|
|
||||||
)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Allows to create bot using bot [urlsKeeper] and optionally configure [HttpClient] using [clientConfig]
|
|
||||||
*/
|
|
||||||
@Deprecated("Will be removed in next releases", ReplaceWith("telegramBot", "dev.inmo.tgbotapi.extensions.api.telegramBot"))
|
|
||||||
fun telegramBotWithCustomClientConfig(
|
|
||||||
urlsKeeper: TelegramAPIUrlsKeeper,
|
|
||||||
clientConfig: HttpClientConfig<*>.() -> Unit
|
|
||||||
): TelegramBot = telegramBot(
|
|
||||||
urlsKeeper,
|
|
||||||
HttpClient(clientConfig)
|
|
||||||
)
|
|
||||||
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
@Deprecated("Renamed", ReplaceWith("telegramBot", "dev.inmo.tgbotapi.extensions.api.telegramBot"))
|
|
||||||
inline fun telegramBotWithCustomClientConfig(
|
|
||||||
token: String,
|
|
||||||
apiUrl: String = telegramBotAPIDefaultUrl,
|
|
||||||
noinline clientConfig: HttpClientConfig<*>.() -> Unit
|
|
||||||
) = telegramBot(token, apiUrl = apiUrl, clientConfig = clientConfig)
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package dev.inmo.tgbotapi.extensions.utils
|
package dev.inmo.tgbotapi.extensions.utils
|
||||||
|
|
||||||
|
import dev.inmo.micro_utils.coroutines.safely
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.channels.BroadcastChannel
|
import kotlinx.coroutines.channels.BroadcastChannel
|
||||||
import kotlinx.coroutines.flow.*
|
import kotlinx.coroutines.flow.*
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
package dev.inmo.tgbotapi.extensions.utils
|
|
||||||
|
|
||||||
import dev.inmo.micro_utils.coroutines.ExceptionHandler
|
|
||||||
import dev.inmo.tgbotapi.utils.*
|
|
||||||
import kotlinx.coroutines.CoroutineScope
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Shortcut for [dev.inmo.micro_utils.coroutines.safely]. It was created for more comfortable way of handling different things
|
|
||||||
*/
|
|
||||||
@Deprecated("In future will be used typealias from micro_utils", ReplaceWith("safely", "dev.inmo.micro_utils.coroutines.safely"))
|
|
||||||
suspend inline fun <T> safely(
|
|
||||||
noinline onException: ExceptionHandler<T> = { throw it },
|
|
||||||
noinline block: suspend CoroutineScope.() -> T
|
|
||||||
): T = dev.inmo.micro_utils.coroutines.safely(
|
|
||||||
onException,
|
|
||||||
block
|
|
||||||
)
|
|
@ -1,24 +0,0 @@
|
|||||||
package dev.inmo.tgbotapi.extensions.utils.chat_events
|
|
||||||
|
|
||||||
import dev.inmo.tgbotapi.extensions.utils.shortcuts.*
|
|
||||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatEventMessage
|
|
||||||
import kotlinx.coroutines.flow.Flow
|
|
||||||
import kotlinx.coroutines.flow.mapNotNull
|
|
||||||
import kotlin.reflect.KClass
|
|
||||||
|
|
||||||
@Deprecated("Refactored, replaced and renamed", ReplaceWith("filterByChatEvent", "dev.inmo.tgbotapi.extensions.utils.shortcuts.filterByChatEvent"))
|
|
||||||
fun <T : ChatEventMessage<*>> Flow<ChatEventMessage<*>>.divideBySource(contentType: KClass<T>) = mapNotNull {
|
|
||||||
if (contentType.isInstance(it)) {
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
|
||||||
it as T
|
|
||||||
} else {
|
|
||||||
null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Deprecated("Replaced and renamed", ReplaceWith("channelEvents", "dev.inmo.tgbotapi.extensions.utils.shortcuts.channelEvents"))
|
|
||||||
fun Flow<ChatEventMessage<*>>.onlyChannelEvents() = channelEvents()
|
|
||||||
@Deprecated("Replaced and renamed", ReplaceWith("groupEvents", "dev.inmo.tgbotapi.extensions.utils.shortcuts.groupEvents"))
|
|
||||||
fun Flow<ChatEventMessage<*>>.onlyGroupEvents() = groupEvents()
|
|
||||||
@Deprecated("Replaced and renamed", ReplaceWith("supergroupEvents", "dev.inmo.tgbotapi.extensions.utils.shortcuts.supergroupEvents"))
|
|
||||||
fun Flow<ChatEventMessage<*>>.onlySupergroupEvents() = supergroupEvents()
|
|
@ -84,38 +84,3 @@ private const val stickerSetAddingLinkPrefix = "$internalLinkBeginning/addsticke
|
|||||||
|
|
||||||
val StickerSetName.stickerSetLink
|
val StickerSetName.stickerSetLink
|
||||||
get() = link(this, "$stickerSetAddingLinkPrefix/$this")
|
get() = link(this, "$stickerSetAddingLinkPrefix/$this")
|
||||||
|
|
||||||
/**
|
|
||||||
* @return Link for adding of sticker set with name [stickerSetName] with formatting for [MarkdownV2]
|
|
||||||
*/
|
|
||||||
@Deprecated("Use extension `stickerSetLink` + getting of `asMarkdownV2Source` property")
|
|
||||||
fun makeLinkToAddStickerSetInMarkdownV2(
|
|
||||||
stickerSetName: StickerSetName
|
|
||||||
) = stickerSetName.stickerSetLink.markdownV2
|
|
||||||
/**
|
|
||||||
* @return Link for adding of sticker set with name [stickerSetName] with formatting for [Markdown]
|
|
||||||
*/
|
|
||||||
@Deprecated("Use extension `stickerSetLink` + getting of `asMarkdownSource` property")
|
|
||||||
fun makeLinkToAddStickerSetInMarkdown(stickerSetName: StickerSetName) = stickerSetName.stickerSetLink.markdown
|
|
||||||
/**
|
|
||||||
* @return Link for adding of sticker set with name [stickerSetName] with formatting for [HTML]
|
|
||||||
*/
|
|
||||||
@Deprecated("Use extension `stickerSetLink` + getting of `asHtmlSource` property")
|
|
||||||
fun makeLinkToAddStickerSetInHtml(stickerSetName: StickerSetName) = stickerSetName.stickerSetLink.html
|
|
||||||
/**
|
|
||||||
* Create a link for adding of sticker set with name [stickerSetName]. Was added thanks to user Djaler and based on
|
|
||||||
* https://github.com/Djaler/evil-bot/blob/master/src/main/kotlin/com/github/djaler/evilbot/utils/StickerUtils.kt#L6-L8
|
|
||||||
*
|
|
||||||
* @see [makeLinkToAddStickerSetInMarkdownV2]
|
|
||||||
* @see [makeLinkToAddStickerSetInMarkdown]
|
|
||||||
* @see [makeLinkToAddStickerSetInHtml]
|
|
||||||
*/
|
|
||||||
@Deprecated("Use extension `stickerSetLink` + getting of required property")
|
|
||||||
fun makeLinkToAddStickerSet(
|
|
||||||
stickerSetName: StickerSetName,
|
|
||||||
parseMode: ParseMode
|
|
||||||
) = when (parseMode) {
|
|
||||||
MarkdownParseMode -> makeLinkToAddStickerSetInMarkdown(stickerSetName)
|
|
||||||
MarkdownV2ParseMode -> makeLinkToAddStickerSetInMarkdownV2(stickerSetName)
|
|
||||||
HTMLParseMode -> makeLinkToAddStickerSetInHtml(stickerSetName)
|
|
||||||
}
|
|
||||||
|
@ -4,7 +4,6 @@ import dev.inmo.tgbotapi.CommonAbstracts.*
|
|||||||
import dev.inmo.tgbotapi.types.*
|
import dev.inmo.tgbotapi.types.*
|
||||||
import dev.inmo.tgbotapi.types.ParseMode.*
|
import dev.inmo.tgbotapi.types.ParseMode.*
|
||||||
import dev.inmo.tgbotapi.types.message.content.TextContent
|
import dev.inmo.tgbotapi.types.message.content.TextContent
|
||||||
import dev.inmo.tgbotapi.types.message.content.fullEntitiesList
|
|
||||||
|
|
||||||
fun createFormattedText(
|
fun createFormattedText(
|
||||||
entities: TextSourcesList,
|
entities: TextSourcesList,
|
||||||
@ -56,19 +55,19 @@ fun TextSourcesList.toMarkdownCaptions(): List<String> = createMarkdownText(
|
|||||||
this,
|
this,
|
||||||
captionLength.last
|
captionLength.last
|
||||||
)
|
)
|
||||||
fun CaptionedInput.toMarkdownCaptions(): List<String> = fullEntitiesList().toMarkdownCaptions()
|
fun CaptionedInput.toMarkdownCaptions(): List<String> = textSources.toMarkdownCaptions()
|
||||||
|
|
||||||
fun TextSourcesList.toMarkdownTexts(): List<String> = createMarkdownText(
|
fun TextSourcesList.toMarkdownTexts(): List<String> = createMarkdownText(
|
||||||
this,
|
this,
|
||||||
textLength.last
|
textLength.last
|
||||||
)
|
)
|
||||||
fun TextContent.toMarkdownTexts(): List<String> = fullEntitiesList().toMarkdownTexts()
|
fun TextContent.toMarkdownTexts(): List<String> = textSources.toMarkdownTexts()
|
||||||
|
|
||||||
fun TextSourcesList.toMarkdownExplanations(): List<String> = createMarkdownText(
|
fun TextSourcesList.toMarkdownExplanations(): List<String> = createMarkdownText(
|
||||||
this,
|
this,
|
||||||
explanationLimit.last
|
explanationLimit.last
|
||||||
)
|
)
|
||||||
fun ExplainedInput.toMarkdownExplanations(): List<String> = fullEntitiesList().toMarkdownTexts()
|
fun ExplainedInput.toMarkdownExplanations(): List<String> = textSources.toMarkdownTexts()
|
||||||
|
|
||||||
|
|
||||||
fun createMarkdownV2Text(
|
fun createMarkdownV2Text(
|
||||||
@ -80,19 +79,19 @@ fun TextSourcesList.toMarkdownV2Captions(): List<String> = createMarkdownV2Text(
|
|||||||
this,
|
this,
|
||||||
captionLength.last
|
captionLength.last
|
||||||
)
|
)
|
||||||
fun CaptionedInput.toMarkdownV2Captions(): List<String> = fullEntitiesList().toMarkdownV2Captions()
|
fun CaptionedInput.toMarkdownV2Captions(): List<String> = textSources.toMarkdownV2Captions()
|
||||||
|
|
||||||
fun TextSourcesList.toMarkdownV2Texts(): List<String> = createMarkdownV2Text(
|
fun TextSourcesList.toMarkdownV2Texts(): List<String> = createMarkdownV2Text(
|
||||||
this,
|
this,
|
||||||
textLength.last
|
textLength.last
|
||||||
)
|
)
|
||||||
fun TextContent.toMarkdownV2Texts(): List<String> = fullEntitiesList().toMarkdownV2Texts()
|
fun TextContent.toMarkdownV2Texts(): List<String> = textSources.toMarkdownV2Texts()
|
||||||
|
|
||||||
fun TextSourcesList.toMarkdownV2Explanations(): List<String> = createMarkdownV2Text(
|
fun TextSourcesList.toMarkdownV2Explanations(): List<String> = createMarkdownV2Text(
|
||||||
this,
|
this,
|
||||||
explanationLimit.last
|
explanationLimit.last
|
||||||
)
|
)
|
||||||
fun ExplainedInput.toMarkdownV2Explanations(): List<String> = fullEntitiesList().toMarkdownV2Texts()
|
fun ExplainedInput.toMarkdownV2Explanations(): List<String> = textSources.toMarkdownV2Texts()
|
||||||
|
|
||||||
|
|
||||||
fun createHtmlText(
|
fun createHtmlText(
|
||||||
@ -104,18 +103,18 @@ fun TextSourcesList.toHtmlCaptions(): List<String> = createHtmlText(
|
|||||||
this,
|
this,
|
||||||
captionLength.last
|
captionLength.last
|
||||||
)
|
)
|
||||||
fun CaptionedInput.toHtmlCaptions(): List<String> = fullEntitiesList().toHtmlCaptions()
|
fun CaptionedInput.toHtmlCaptions(): List<String> = textSources.toHtmlCaptions()
|
||||||
|
|
||||||
fun TextSourcesList.toHtmlTexts(): List<String> = createHtmlText(
|
fun TextSourcesList.toHtmlTexts(): List<String> = createHtmlText(
|
||||||
this,
|
this,
|
||||||
textLength.last
|
textLength.last
|
||||||
)
|
)
|
||||||
fun TextContent.toHtmlTexts(): List<String> = fullEntitiesList().toHtmlTexts()
|
fun TextContent.toHtmlTexts(): List<String> = textSources.toHtmlTexts()
|
||||||
|
|
||||||
fun TextSourcesList.toHtmlExplanations(): List<String> = createHtmlText(
|
fun TextSourcesList.toHtmlExplanations(): List<String> = createHtmlText(
|
||||||
this,
|
this,
|
||||||
explanationLimit.last
|
explanationLimit.last
|
||||||
)
|
)
|
||||||
fun ExplainedInput.toHtmlExplanations(): List<String> = fullEntitiesList().toHtmlTexts()
|
fun ExplainedInput.toHtmlExplanations(): List<String> = textSources.toHtmlTexts()
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,7 +8,6 @@ import dev.inmo.tgbotapi.types.MessageEntity.textsources.BotCommandTextSource
|
|||||||
import dev.inmo.tgbotapi.types.MessageEntity.textsources.RegularTextSource
|
import dev.inmo.tgbotapi.types.MessageEntity.textsources.RegularTextSource
|
||||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||||
import dev.inmo.tgbotapi.types.message.content.TextContent
|
import dev.inmo.tgbotapi.types.message.content.TextContent
|
||||||
import dev.inmo.tgbotapi.types.message.content.fullEntitiesList
|
|
||||||
import kotlinx.coroutines.flow.*
|
import kotlinx.coroutines.flow.*
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -7,7 +7,6 @@ import dev.inmo.tgbotapi.types.MessageEntity.textsources.BotCommandTextSource
|
|||||||
import dev.inmo.tgbotapi.types.MessageEntity.textsources.RegularTextSource
|
import dev.inmo.tgbotapi.types.MessageEntity.textsources.RegularTextSource
|
||||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||||
import dev.inmo.tgbotapi.types.message.content.TextContent
|
import dev.inmo.tgbotapi.types.message.content.TextContent
|
||||||
import dev.inmo.tgbotapi.types.message.content.fullEntitiesList
|
|
||||||
import dev.inmo.tgbotapi.types.update.abstracts.BaseSentMessageUpdate
|
import dev.inmo.tgbotapi.types.update.abstracts.BaseSentMessageUpdate
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
@file:Suppress("unused")
|
||||||
|
|
||||||
package dev.inmo.tgbotapi.extensions.utils.updates
|
package dev.inmo.tgbotapi.extensions.utils.updates
|
||||||
|
|
||||||
import dev.inmo.tgbotapi.types.message.abstracts.*
|
import dev.inmo.tgbotapi.types.message.abstracts.*
|
||||||
@ -23,11 +25,6 @@ fun <T : BaseSentMessageUpdate> Flow<T>.asCommonMessagesFlow() = mapNotNull {
|
|||||||
inline fun <T : BaseSentMessageUpdate> Flow<T>.chatEvents() = mapNotNull {
|
inline fun <T : BaseSentMessageUpdate> Flow<T>.chatEvents() = mapNotNull {
|
||||||
it.data as? ChatEventMessage<*>
|
it.data as? ChatEventMessage<*>
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
* Will map incoming [BaseSentMessageUpdate]s to [ChatEventMessage] from [BaseSentMessageUpdate.data]
|
|
||||||
*/
|
|
||||||
@Deprecated("Renamed", ReplaceWith("chatEvents", "dev.inmo.tgbotapi.extensions.utils.updates.chatEvents"))
|
|
||||||
fun <T : BaseSentMessageUpdate> Flow<T>.asChatEventsFlow() = chatEvents()
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Will map incoming [BaseSentMessageUpdate]s to [UnknownMessageType] from [BaseSentMessageUpdate.data]
|
* Will map incoming [BaseSentMessageUpdate]s to [UnknownMessageType] from [BaseSentMessageUpdate.data]
|
||||||
|
Loading…
Reference in New Issue
Block a user