mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2025-09-16 13:49:26 +00:00
ChatIdWithThreadId, all chats ids now value classes, update chats ids hierarchy
This commit is contained in:
@@ -20,7 +20,7 @@ data class ForwardMessage(
|
||||
@SerialName(messageIdField)
|
||||
override val messageId: MessageId,
|
||||
@SerialName(messageThreadIdField)
|
||||
override val threadId: MessageThreadId? = null,
|
||||
override val threadId: MessageThreadId? = toChatId.threadId,
|
||||
@SerialName(disableNotificationField)
|
||||
val disableNotification: Boolean = false,
|
||||
@SerialName(protectContentField)
|
||||
|
@@ -27,7 +27,7 @@ fun CopyMessage(
|
||||
messageId: MessageId,
|
||||
text: String? = null,
|
||||
parseMode: ParseMode? = null,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = toChatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -53,7 +53,7 @@ fun CopyMessage(
|
||||
fromChatId: ChatIdentifier,
|
||||
messageId: MessageId,
|
||||
entities: List<TextSource>,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = toChatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -80,7 +80,7 @@ fun CopyMessage(
|
||||
toChatId: ChatIdentifier,
|
||||
text: String? = null,
|
||||
parseMode: ParseMode? = null,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = toChatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -106,7 +106,7 @@ fun CopyMessage(
|
||||
messageId: MessageId,
|
||||
toChatId: ChatIdentifier,
|
||||
entities: List<TextSource>,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = toChatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -142,7 +142,7 @@ data class CopyMessage internal constructor(
|
||||
@SerialName(captionEntitiesField)
|
||||
private val rawEntities: List<RawMessageEntity>? = null,
|
||||
@SerialName(messageThreadIdField)
|
||||
override val threadId: MessageThreadId? = null,
|
||||
override val threadId: MessageThreadId? = toChatId.threadId,
|
||||
@SerialName(disableNotificationField)
|
||||
override val disableNotification: Boolean = false,
|
||||
@SerialName(protectContentField)
|
||||
|
@@ -23,7 +23,7 @@ data class SendContact(
|
||||
@SerialName(lastNameField)
|
||||
val lastName: String? = null,
|
||||
@SerialName(messageThreadIdField)
|
||||
override val threadId: MessageThreadId? = null,
|
||||
override val threadId: MessageThreadId? = chatId.threadId,
|
||||
@SerialName(disableNotificationField)
|
||||
override val disableNotification: Boolean = false,
|
||||
@SerialName(protectContentField)
|
||||
@@ -40,7 +40,7 @@ data class SendContact(
|
||||
constructor(
|
||||
chatId: ChatIdentifier,
|
||||
contact: Contact,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -68,7 +68,7 @@ data class SendContact(
|
||||
|
||||
fun Contact.toRequest(
|
||||
chatId: ChatIdentifier,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
|
@@ -18,7 +18,7 @@ fun SendLocation(
|
||||
chatId: ChatIdentifier,
|
||||
latitude: Double,
|
||||
longitude: Double,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -44,7 +44,7 @@ fun SendStaticLocation(
|
||||
chatId: ChatIdentifier,
|
||||
latitude: Double,
|
||||
longitude: Double,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -60,7 +60,7 @@ fun SendLiveLocation(
|
||||
horizontalAccuracy: Meters? = null,
|
||||
heading: Degrees? = null,
|
||||
proximityAlertRadius: Meters? = null,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -99,7 +99,7 @@ data class SendLocation internal constructor(
|
||||
@SerialName(proximityAlertRadiusField)
|
||||
override val proximityAlertRadius: Meters? = null,
|
||||
@SerialName(messageThreadIdField)
|
||||
override val threadId: MessageThreadId? = null,
|
||||
override val threadId: MessageThreadId? = chatId.threadId,
|
||||
@SerialName(disableNotificationField)
|
||||
override val disableNotification: Boolean = false,
|
||||
@SerialName(protectContentField)
|
||||
|
@@ -25,7 +25,7 @@ fun SendTextMessage(
|
||||
text: String,
|
||||
parseMode: ParseMode? = null,
|
||||
disableWebPagePreview: Boolean? = null,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -49,7 +49,7 @@ fun SendTextMessage(
|
||||
chatId: ChatIdentifier,
|
||||
entities: TextSourcesList,
|
||||
disableWebPagePreview: Boolean? = null,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -80,7 +80,7 @@ data class SendTextMessage internal constructor(
|
||||
@SerialName(entitiesField)
|
||||
private val rawEntities: List<RawMessageEntity>? = null,
|
||||
@SerialName(messageThreadIdField)
|
||||
override val threadId: MessageThreadId? = null,
|
||||
override val threadId: MessageThreadId? = chatId.threadId,
|
||||
@SerialName(disableWebPagePreviewField)
|
||||
override val disableWebPagePreview: Boolean? = null,
|
||||
@SerialName(disableNotificationField)
|
||||
|
@@ -33,7 +33,7 @@ data class SendVenue(
|
||||
@SerialName(googlePlaceTypeField)
|
||||
val googlePlaceType: GooglePlaceType? = null,
|
||||
@SerialName(messageThreadIdField)
|
||||
override val threadId: MessageThreadId? = null,
|
||||
override val threadId: MessageThreadId? = chatId.threadId,
|
||||
@SerialName(disableNotificationField)
|
||||
override val disableNotification: Boolean = false,
|
||||
@SerialName(protectContentField)
|
||||
@@ -52,7 +52,7 @@ data class SendVenue(
|
||||
constructor(
|
||||
chatId: ChatIdentifier,
|
||||
venue: Venue,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -85,7 +85,7 @@ data class SendVenue(
|
||||
|
||||
fun Venue.toRequest(
|
||||
chatId: ChatIdentifier,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
|
@@ -19,7 +19,7 @@ data class SendGame (
|
||||
@SerialName(gameShortNameField)
|
||||
val gameShortName: String,
|
||||
@SerialName(messageThreadIdField)
|
||||
override val threadId: MessageThreadId? = null,
|
||||
override val threadId: MessageThreadId? = chatId.threadId,
|
||||
@SerialName(disableNotificationField)
|
||||
override val disableNotification: Boolean = false,
|
||||
@SerialName(protectContentField)
|
||||
|
@@ -28,7 +28,7 @@ fun SendAnimation(
|
||||
duration: Long? = null,
|
||||
width: Int? = null,
|
||||
height: Int? = null,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -76,7 +76,7 @@ fun SendAnimation(
|
||||
duration: Long? = null,
|
||||
width: Int? = null,
|
||||
height: Int? = null,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -140,7 +140,7 @@ data class SendAnimationData internal constructor(
|
||||
@SerialName(heightField)
|
||||
override val height: Int? = null,
|
||||
@SerialName(messageThreadIdField)
|
||||
override val threadId: MessageThreadId? = null,
|
||||
override val threadId: MessageThreadId? = chatId.threadId,
|
||||
@SerialName(disableNotificationField)
|
||||
override val disableNotification: Boolean = false,
|
||||
@SerialName(protectContentField)
|
||||
|
@@ -29,7 +29,7 @@ fun SendAudio(
|
||||
duration: Long? = null,
|
||||
performer: String? = null,
|
||||
title: String? = null,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -77,7 +77,7 @@ fun SendAudio(
|
||||
duration: Long? = null,
|
||||
performer: String? = null,
|
||||
title: String? = null,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -141,7 +141,7 @@ data class SendAudioData internal constructor(
|
||||
@SerialName(titleField)
|
||||
override val title: String? = null,
|
||||
@SerialName(messageThreadIdField)
|
||||
override val threadId: MessageThreadId? = null,
|
||||
override val threadId: MessageThreadId? = chatId.threadId,
|
||||
@SerialName(disableNotificationField)
|
||||
override val disableNotification: Boolean = false,
|
||||
@SerialName(protectContentField)
|
||||
|
@@ -34,7 +34,7 @@ fun SendDocument(
|
||||
thumb: InputFile? = null,
|
||||
text: String? = null,
|
||||
parseMode: ParseMode? = null,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -87,7 +87,7 @@ fun SendDocument(
|
||||
document: InputFile,
|
||||
thumb: InputFile? = null,
|
||||
entities: TextSourcesList,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -153,7 +153,7 @@ data class SendDocumentData internal constructor(
|
||||
@SerialName(captionEntitiesField)
|
||||
private val rawEntities: List<RawMessageEntity>? = null,
|
||||
@SerialName(messageThreadIdField)
|
||||
override val threadId: MessageThreadId? = null,
|
||||
override val threadId: MessageThreadId? = chatId.threadId,
|
||||
@SerialName(disableNotificationField)
|
||||
override val disableNotification: Boolean = false,
|
||||
@SerialName(protectContentField)
|
||||
|
@@ -32,7 +32,7 @@ const val rawSendingMediaGroupsWarning = "Media groups contains restrictions rel
|
||||
fun <T : MediaGroupPartContent> SendMediaGroup(
|
||||
chatId: ChatIdentifier,
|
||||
media: List<MediaGroupMemberTelegramMedia>,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -82,7 +82,7 @@ fun <T : MediaGroupPartContent> SendMediaGroup(
|
||||
inline fun SendPlaylist(
|
||||
chatId: ChatIdentifier,
|
||||
media: List<AudioMediaGroupMemberTelegramMedia>,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -98,7 +98,7 @@ inline fun SendPlaylist(
|
||||
inline fun SendDocumentsGroup(
|
||||
chatId: ChatIdentifier,
|
||||
media: List<DocumentMediaGroupMemberTelegramMedia>,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -115,7 +115,7 @@ inline fun SendDocumentsGroup(
|
||||
inline fun SendVisualMediaGroup(
|
||||
chatId: ChatIdentifier,
|
||||
media: List<VisualMediaGroupMemberTelegramMedia>,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -143,7 +143,7 @@ data class SendMediaGroupData internal constructor(
|
||||
override val chatId: ChatIdentifier,
|
||||
val media: List<MediaGroupMemberTelegramMedia> = emptyList(),
|
||||
@SerialName(messageThreadIdField)
|
||||
override val threadId: MessageThreadId? = null,
|
||||
override val threadId: MessageThreadId? = chatId.threadId,
|
||||
@SerialName(disableNotificationField)
|
||||
override val disableNotification: Boolean = false,
|
||||
@SerialName(protectContentField)
|
||||
|
@@ -23,7 +23,7 @@ fun SendPhoto(
|
||||
photo: InputFile,
|
||||
text: String? = null,
|
||||
parseMode: ParseMode? = null,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -55,7 +55,7 @@ fun SendPhoto(
|
||||
chatId: ChatIdentifier,
|
||||
photo: InputFile,
|
||||
entities: TextSourcesList,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -99,7 +99,7 @@ data class SendPhotoData internal constructor(
|
||||
@SerialName(captionEntitiesField)
|
||||
private val rawEntities: List<RawMessageEntity>? = null,
|
||||
@SerialName(messageThreadIdField)
|
||||
override val threadId: MessageThreadId? = null,
|
||||
override val threadId: MessageThreadId? = chatId.threadId,
|
||||
@SerialName(disableNotificationField)
|
||||
override val disableNotification: Boolean = false,
|
||||
@SerialName(protectContentField)
|
||||
|
@@ -15,7 +15,7 @@ import kotlinx.serialization.json.JsonObject
|
||||
fun SendSticker(
|
||||
chatId: ChatIdentifier,
|
||||
sticker: InputFile,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -47,7 +47,7 @@ data class SendStickerByFileId internal constructor(
|
||||
@SerialName(stickerField)
|
||||
val sticker: FileId? = null,
|
||||
@SerialName(messageThreadIdField)
|
||||
override val threadId: MessageThreadId? = null,
|
||||
override val threadId: MessageThreadId? = chatId.threadId,
|
||||
@SerialName(disableNotificationField)
|
||||
override val disableNotification: Boolean = false,
|
||||
@SerialName(protectContentField)
|
||||
|
@@ -29,7 +29,7 @@ fun SendVideo(
|
||||
width: Int? = null,
|
||||
height: Int? = null,
|
||||
supportStreaming: Boolean? = null,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -79,7 +79,7 @@ fun SendVideo(
|
||||
width: Int? = null,
|
||||
height: Int? = null,
|
||||
supportStreaming: Boolean? = null,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -146,7 +146,7 @@ data class SendVideoData internal constructor(
|
||||
@SerialName(supportStreamingField)
|
||||
val supportStreaming: Boolean? = null,
|
||||
@SerialName(messageThreadIdField)
|
||||
override val threadId: MessageThreadId? = null,
|
||||
override val threadId: MessageThreadId? = chatId.threadId,
|
||||
@SerialName(disableNotificationField)
|
||||
override val disableNotification: Boolean = false,
|
||||
@SerialName(protectContentField)
|
||||
|
@@ -17,7 +17,7 @@ fun SendVideoNote(
|
||||
thumb: InputFile? = null,
|
||||
duration: Long? = null,
|
||||
size: Int? = null, // in documentation - length (size of video side)
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -69,7 +69,7 @@ data class SendVideoNoteData internal constructor(
|
||||
@SerialName(lengthField)
|
||||
override val width: Int? = null,
|
||||
@SerialName(messageThreadIdField)
|
||||
override val threadId: MessageThreadId? = null,
|
||||
override val threadId: MessageThreadId? = chatId.threadId,
|
||||
@SerialName(disableNotificationField)
|
||||
override val disableNotification: Boolean = false,
|
||||
@SerialName(protectContentField)
|
||||
|
@@ -25,7 +25,7 @@ fun SendVoice(
|
||||
text: String? = null,
|
||||
parseMode: ParseMode? = null,
|
||||
duration: Long? = null,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -64,7 +64,7 @@ fun SendVoice(
|
||||
chatId: ChatIdentifier,
|
||||
voice: InputFile,
|
||||
entities: TextSourcesList,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
duration: Long? = null,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
@@ -118,7 +118,7 @@ data class SendVoiceData internal constructor(
|
||||
@SerialName(durationField)
|
||||
override val duration: Long? = null,
|
||||
@SerialName(messageThreadIdField)
|
||||
override val threadId: MessageThreadId? = null,
|
||||
override val threadId: MessageThreadId? = chatId.threadId,
|
||||
@SerialName(disableNotificationField)
|
||||
override val disableNotification: Boolean = false,
|
||||
@SerialName(protectContentField)
|
||||
|
@@ -48,7 +48,7 @@ fun SendPoll(
|
||||
options: List<String>,
|
||||
isAnonymous: Boolean = true,
|
||||
isClosed: Boolean = false,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -74,7 +74,7 @@ fun SendPoll(
|
||||
*/
|
||||
fun Poll.createRequest(
|
||||
chatId: ChatIdentifier,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -202,7 +202,7 @@ data class SendRegularPoll(
|
||||
@SerialName(closeDateField)
|
||||
override val closeDate: LongSeconds?,
|
||||
@SerialName(messageThreadIdField)
|
||||
override val threadId: MessageThreadId? = null,
|
||||
override val threadId: MessageThreadId? = chatId.threadId,
|
||||
@SerialName(disableNotificationField)
|
||||
override val disableNotification: Boolean = false,
|
||||
@SerialName(protectContentField)
|
||||
@@ -232,7 +232,7 @@ fun SendRegularPoll(
|
||||
isClosed: Boolean = false,
|
||||
allowMultipleAnswers: Boolean = false,
|
||||
closeInfo: ScheduledCloseInfo? = null,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -265,7 +265,7 @@ fun SendQuizPoll(
|
||||
explanation: String? = null,
|
||||
parseMode: ParseMode? = null,
|
||||
closeInfo: ScheduledCloseInfo? = null,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -299,7 +299,7 @@ fun SendQuizPoll(
|
||||
isClosed: Boolean = false,
|
||||
entities: List<TextSource>,
|
||||
closeInfo: ScheduledCloseInfo? = null,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -335,7 +335,7 @@ internal fun SendQuizPoll(
|
||||
parseMode: ParseMode? = null,
|
||||
rawEntities: List<RawMessageEntity>? = null,
|
||||
closeInfo: ScheduledCloseInfo? = null,
|
||||
threadId: MessageThreadId? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
@@ -386,7 +386,7 @@ data class SendQuizPoll internal constructor(
|
||||
@SerialName(closeDateField)
|
||||
override val closeDate: LongSeconds? = null,
|
||||
@SerialName(messageThreadIdField)
|
||||
override val threadId: MessageThreadId? = null,
|
||||
override val threadId: MessageThreadId? = chatId.threadId,
|
||||
@SerialName(disableNotificationField)
|
||||
override val disableNotification: Boolean = false,
|
||||
@SerialName(protectContentField)
|
||||
|
@@ -3,6 +3,7 @@ package dev.inmo.tgbotapi.types
|
||||
import dev.inmo.micro_utils.common.Warning
|
||||
import dev.inmo.tgbotapi.types.chat.User
|
||||
import dev.inmo.tgbotapi.utils.RiskFeature
|
||||
import dev.inmo.tgbotapi.utils.internal.ClassCastsIncluded
|
||||
import kotlinx.serialization.KSerializer
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
||||
@@ -15,6 +16,7 @@ import kotlin.jvm.JvmInline
|
||||
const val internalLinkBeginning = "https://t.me"
|
||||
|
||||
@Serializable(ChatIdentifierSerializer::class)
|
||||
@ClassCastsIncluded
|
||||
sealed interface ChatIdentifier
|
||||
|
||||
/**
|
||||
|
@@ -25,7 +25,9 @@ sealed interface PublicChat : Chat {
|
||||
sealed interface SuperPublicChat : PublicChat, UsernameChat
|
||||
|
||||
@Serializable(PreviewChatSerializer::class)
|
||||
sealed interface ChannelChat : SuperPublicChat
|
||||
sealed interface ChannelChat : SuperPublicChat {
|
||||
override val id: ChatId
|
||||
}
|
||||
|
||||
@Serializable(PreviewChatSerializer::class)
|
||||
sealed interface GroupChat : PublicChat
|
||||
|
@@ -10,7 +10,7 @@ import kotlinx.serialization.json.JsonObject
|
||||
@Serializable
|
||||
data class ExtendedChannelChatImpl(
|
||||
@SerialName(idField)
|
||||
override val id: IdChatIdentifier,
|
||||
override val id: ChatId,
|
||||
@SerialName(titleField)
|
||||
override val title: String,
|
||||
@SerialName(usernameField)
|
||||
@@ -33,7 +33,7 @@ data class ExtendedChannelChatImpl(
|
||||
@Serializable
|
||||
data class ExtendedGroupChatImpl(
|
||||
@SerialName(idField)
|
||||
override val id: IdChatIdentifier,
|
||||
override val id: ChatId,
|
||||
@SerialName(titleField)
|
||||
override val title: String,
|
||||
@SerialName(photoField)
|
||||
@@ -78,7 +78,7 @@ typealias ExtendedUser = ExtendedPrivateChatImpl
|
||||
@Serializable
|
||||
data class ExtendedSupergroupChatImpl(
|
||||
@SerialName(idField)
|
||||
override val id: IdChatIdentifier,
|
||||
override val id: ChatId,
|
||||
@SerialName(titleField)
|
||||
override val title: String,
|
||||
@SerialName(usernameField)
|
||||
|
@@ -10,7 +10,7 @@ import kotlinx.serialization.Serializable
|
||||
@Serializable
|
||||
data class GroupChatImpl(
|
||||
@SerialName(idField)
|
||||
override val id: IdChatIdentifier,
|
||||
override val id: ChatId,
|
||||
@SerialName(titleField)
|
||||
override val title: String
|
||||
) : GroupChat
|
||||
@@ -30,7 +30,7 @@ data class PrivateChatImpl(
|
||||
@Serializable
|
||||
data class SupergroupChatImpl(
|
||||
@SerialName(idField)
|
||||
override val id: IdChatIdentifier,
|
||||
override val id: ChatId,
|
||||
@SerialName(titleField)
|
||||
override val title: String,
|
||||
@SerialName(usernameField)
|
||||
@@ -50,7 +50,7 @@ data class ForumChatImpl(
|
||||
@Serializable
|
||||
data class ChannelChatImpl(
|
||||
@SerialName(idField)
|
||||
override val id: IdChatIdentifier,
|
||||
override val id: ChatId,
|
||||
@SerialName(titleField)
|
||||
override val title: String,
|
||||
@SerialName(usernameField)
|
||||
|
@@ -9,6 +9,7 @@ import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.files.TelegramMediaFile
|
||||
import dev.inmo.tgbotapi.types.media.TelegramMedia
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.*
|
||||
import dev.inmo.tgbotapi.types.threadId
|
||||
import dev.inmo.tgbotapi.utils.RiskFeature
|
||||
import kotlinx.serialization.modules.*
|
||||
|
||||
@@ -114,7 +115,7 @@ sealed interface MediaContent: MessageContent {
|
||||
sealed interface ResendableContent {
|
||||
fun createResend(
|
||||
chatId: ChatIdentifier,
|
||||
messageThreadId: MessageThreadId? = null,
|
||||
messageThreadId: MessageThreadId? = chatId.threadId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
replyToMessageId: MessageId? = null,
|
||||
|
@@ -1,76 +0,0 @@
|
||||
package dev.inmo.tgbotapi.utils.extensions
|
||||
|
||||
import dev.inmo.tgbotapi.types.IdChatIdentifier
|
||||
import dev.inmo.tgbotapi.types.MessageThreadId
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.Message
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlin.Pair
|
||||
import kotlin.jvm.JvmInline
|
||||
|
||||
/**
|
||||
* Union to keep both [IdChatIdentifier] and optionally [MessageThreadId] as an identifier of target for messages sending and
|
||||
* other information
|
||||
*/
|
||||
sealed interface ChatIdWithThreadId {
|
||||
val chatId: IdChatIdentifier
|
||||
val threadId: MessageThreadId?
|
||||
|
||||
/**
|
||||
* Lightweight variant of [ChatIdWithThreadId] due to absence of any conversations
|
||||
*/
|
||||
@JvmInline
|
||||
value class ByMessage(
|
||||
val sourceMessage: Message
|
||||
) : ChatIdWithThreadId {
|
||||
override val chatId: IdChatIdentifier
|
||||
get() = sourceMessage.chat.id
|
||||
override val threadId: MessageThreadId?
|
||||
get() = sourceMessage.threadIdOrNull
|
||||
}
|
||||
|
||||
/**
|
||||
* [Serializable] variant of [ChatIdWithThreadId] based on [Pair] of target [IdChatIdentifier] and [MessageThreadId]
|
||||
*
|
||||
* @see invoke
|
||||
* @see serializable
|
||||
*/
|
||||
@Serializable
|
||||
@JvmInline
|
||||
value class ByPair(
|
||||
val pair: Pair<IdChatIdentifier, MessageThreadId?>
|
||||
) : ChatIdWithThreadId {
|
||||
override val chatId: IdChatIdentifier
|
||||
get() = pair.first
|
||||
override val threadId: MessageThreadId?
|
||||
get() = pair.second
|
||||
}
|
||||
|
||||
companion object {
|
||||
/**
|
||||
* Creates lightweight [ByMessage] variant of [ChatIdWithThreadId]
|
||||
*/
|
||||
inline operator fun invoke(message: Message) = ByMessage(message)
|
||||
|
||||
/**
|
||||
* Creates [ByPair] variant of [ChatIdWithThreadId] using incoming [message] [Message.chat] and extension
|
||||
* [Message.threadIdOrNull]
|
||||
*/
|
||||
inline fun serializable(message: Message) = ByPair(message.chat.id to message.threadIdOrNull)
|
||||
|
||||
/**
|
||||
* Creates [ByPair] variant of [ChatIdWithThreadId] using incoming [pair]
|
||||
*/
|
||||
inline fun serializable(pair: Pair<IdChatIdentifier, MessageThreadId?>) = ByPair(pair)
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Creates [ChatIdWithThreadId.ByMessage] variant of [ChatIdWithThreadId] using [ChatIdWithThreadId.serializable]
|
||||
*/
|
||||
val Message.chatIdWithThreadId
|
||||
get() = ChatIdWithThreadId(this)
|
||||
|
||||
/**
|
||||
* Creates [ChatIdWithThreadId.ByPair] variant of [ChatIdWithThreadId] using [ChatIdWithThreadId.serializable]
|
||||
*/
|
||||
val Message.serializableChatIdWithThreadId
|
||||
get() = ChatIdWithThreadId.serializable(this)
|
Reference in New Issue
Block a user