1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2026-06-22 11:15:11 +00:00

Compare commits

...

4 Commits

32 changed files with 935 additions and 37 deletions

View File

@@ -1,5 +1,7 @@
# TelegramBotAPI changelog # TelegramBotAPI changelog
## 31.0.0
## 30.0.2 ## 30.0.2
* `Version`: * `Version`:

View File

@@ -6,4 +6,4 @@ kotlin.incremental=true
kotlin.incremental.js=true kotlin.incremental.js=true
library_group=dev.inmo library_group=dev.inmo
library_version=30.0.2 library_version=31.0.0

View File

@@ -513,6 +513,7 @@ public final class dev/inmo/tgbotapi/extensions/api/chat/get/GetChatKt {
public static final fun getChat (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/GroupChatImpl;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun getChat (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/GroupChatImpl;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun getChat (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PrivateChat;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun getChat (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PrivateChat;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun getChat (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PrivateChatImpl;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun getChat (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PrivateChatImpl;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun getChat (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PrivateForumChatImpl;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun getChat (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun getChat (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun getChat (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/SupergroupChat;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun getChat (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/SupergroupChat;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun getChat (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/SupergroupChatImpl;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun getChat (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/SupergroupChatImpl;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;

View File

@@ -117,6 +117,17 @@ public suspend fun TelegramBot.getChat(
chat: PrivateChatImpl chat: PrivateChatImpl
): ExtendedPrivateChatImpl = getChat(chat.id) as ExtendedPrivateChatImpl ): ExtendedPrivateChatImpl = getChat(chat.id) as ExtendedPrivateChatImpl
/**
* Will cast incoming [dev.inmo.tgbotapi.types.chat.ExtendedChat] to a
* [ExtendedPrivateForumChatImpl] with unsafe operator "as"
*
* @throws ClassCastException
*/
@PreviewFeature
public suspend fun TelegramBot.getChat(
chat: PrivateForumChatImpl
): ExtendedPrivateForumChatImpl = getChat(chat.id) as ExtendedPrivateForumChatImpl
/** /**
* Will cast incoming [dev.inmo.tgbotapi.types.chat.ExtendedChat] to a * Will cast incoming [dev.inmo.tgbotapi.types.chat.ExtendedChat] to a
* [ExtendedUser] with unsafe operator "as" * [ExtendedUser] with unsafe operator "as"

View File

@@ -17200,7 +17200,7 @@ public final class dev/inmo/tgbotapi/types/chat/ExtendedChatWithUsername$Default
public static fun isDirectMessages (Ldev/inmo/tgbotapi/types/chat/ExtendedChatWithUsername;)Z public static fun isDirectMessages (Ldev/inmo/tgbotapi/types/chat/ExtendedChatWithUsername;)Z
} }
public abstract interface class dev/inmo/tgbotapi/types/chat/ExtendedForumChat : dev/inmo/tgbotapi/types/chat/ExtendedSupergroupChat, dev/inmo/tgbotapi/types/chat/ForumChat { public abstract interface class dev/inmo/tgbotapi/types/chat/ExtendedForumChat : dev/inmo/tgbotapi/types/chat/ExtendedSupergroupChat, dev/inmo/tgbotapi/types/chat/SupergroupForumChat {
public static final field Companion Ldev/inmo/tgbotapi/types/chat/ExtendedForumChat$Companion; public static final field Companion Ldev/inmo/tgbotapi/types/chat/ExtendedForumChat$Companion;
} }
@@ -17395,7 +17395,7 @@ public final class dev/inmo/tgbotapi/types/chat/ExtendedNonBotChat$DefaultImpls
public static fun isDirectMessages (Ldev/inmo/tgbotapi/types/chat/ExtendedNonBotChat;)Z public static fun isDirectMessages (Ldev/inmo/tgbotapi/types/chat/ExtendedNonBotChat;)Z
} }
public abstract interface class dev/inmo/tgbotapi/types/chat/ExtendedPrivateChat : dev/inmo/tgbotapi/types/chat/ExtendedChatWithUsername, dev/inmo/tgbotapi/types/chat/ExtendedNonBotChat, dev/inmo/tgbotapi/types/chat/PrivateChat { public abstract interface class dev/inmo/tgbotapi/types/chat/ExtendedPrivateChat : dev/inmo/tgbotapi/types/chat/ExtendedChatWithUsername, dev/inmo/tgbotapi/types/chat/ExtendedNonBotChat, dev/inmo/tgbotapi/types/chat/PrivateUserChat {
public static final field Companion Ldev/inmo/tgbotapi/types/chat/ExtendedPrivateChat$Companion; public static final field Companion Ldev/inmo/tgbotapi/types/chat/ExtendedPrivateChat$Companion;
public fun getAllowCreateUserIdLink ()Z public fun getAllowCreateUserIdLink ()Z
public abstract fun getBio ()Ljava/lang/String; public abstract fun getBio ()Ljava/lang/String;
@@ -17492,6 +17492,94 @@ public final class dev/inmo/tgbotapi/types/chat/ExtendedPrivateChatImpl$Companio
public final fun serializer ()Lkotlinx/serialization/KSerializer; public final fun serializer ()Lkotlinx/serialization/KSerializer;
} }
public abstract interface class dev/inmo/tgbotapi/types/chat/ExtendedPrivateForumChat : dev/inmo/tgbotapi/types/chat/ExtendedPrivateChat, dev/inmo/tgbotapi/types/chat/PrivateForumChat {
public static final field Companion Ldev/inmo/tgbotapi/types/chat/ExtendedPrivateForumChat$Companion;
}
public final class dev/inmo/tgbotapi/types/chat/ExtendedPrivateForumChat$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/types/chat/ExtendedPrivateForumChat$DefaultImpls {
public static fun getAllowCreateUserIdLink (Ldev/inmo/tgbotapi/types/chat/ExtendedPrivateForumChat;)Z
public static fun getCanReceiveGifts (Ldev/inmo/tgbotapi/types/chat/ExtendedPrivateForumChat;)Z
public static fun isDirectMessages (Ldev/inmo/tgbotapi/types/chat/ExtendedPrivateForumChat;)Z
}
public final class dev/inmo/tgbotapi/types/chat/ExtendedPrivateForumChatImpl : dev/inmo/tgbotapi/types/chat/ExtendedPrivateForumChat {
public static final field Companion Ldev/inmo/tgbotapi/types/chat/ExtendedPrivateForumChatImpl$Companion;
public synthetic fun <init> (JLdev/inmo/tgbotapi/types/ChatPhoto;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/TelegramDate;ILdev/inmo/tgbotapi/types/colors/ColorId;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/business_connection/BusinessIntro;Ldev/inmo/tgbotapi/types/business_connection/BusinessLocation;Ldev/inmo/tgbotapi/types/business_connection/BusinessOpeningHours;Ldev/inmo/tgbotapi/types/Birthdate;Ldev/inmo/tgbotapi/types/chat/PreviewChannelChat;ILdev/inmo/tgbotapi/types/gifts/AcceptedGiftTypes;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public synthetic fun <init> (JLdev/inmo/tgbotapi/types/ChatPhoto;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/TelegramDate;ILdev/inmo/tgbotapi/types/colors/ColorId;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/business_connection/BusinessIntro;Ldev/inmo/tgbotapi/types/business_connection/BusinessLocation;Ldev/inmo/tgbotapi/types/business_connection/BusinessOpeningHours;Ldev/inmo/tgbotapi/types/Birthdate;Ldev/inmo/tgbotapi/types/chat/PreviewChannelChat;ILdev/inmo/tgbotapi/types/gifts/AcceptedGiftTypes;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1-tHkBKVM ()J
public final fun component10-GbmMWyQ ()Ljava/lang/String;
public final fun component11 ()Ldev/inmo/tgbotapi/types/TelegramDate;
public final fun component12-f3WtEc0 ()I
public final fun component13-mg_h9nU ()Ldev/inmo/tgbotapi/types/colors/ColorId;
public final fun component14-GbmMWyQ ()Ljava/lang/String;
public final fun component15-GbmMWyQ ()Ljava/lang/String;
public final fun component16 ()Ldev/inmo/tgbotapi/types/business_connection/BusinessIntro;
public final fun component17 ()Ldev/inmo/tgbotapi/types/business_connection/BusinessLocation;
public final fun component18 ()Ldev/inmo/tgbotapi/types/business_connection/BusinessOpeningHours;
public final fun component19 ()Ldev/inmo/tgbotapi/types/Birthdate;
public final fun component2 ()Ldev/inmo/tgbotapi/types/ChatPhoto;
public final fun component20 ()Ldev/inmo/tgbotapi/types/chat/PreviewChannelChat;
public final fun component21 ()I
public final fun component22 ()Ldev/inmo/tgbotapi/types/gifts/AcceptedGiftTypes;
public final fun component3-san03mo ()Ljava/lang/String;
public final fun component4 ()Ljava/util/List;
public final fun component5 ()Ljava/lang/String;
public final fun component6 ()Ljava/lang/String;
public final fun component7 ()Ljava/lang/String;
public final fun component8 ()Z
public final fun component9 ()Z
public final fun copy-5RSODus (JLdev/inmo/tgbotapi/types/ChatPhoto;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/TelegramDate;ILdev/inmo/tgbotapi/types/colors/ColorId;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/business_connection/BusinessIntro;Ldev/inmo/tgbotapi/types/business_connection/BusinessLocation;Ldev/inmo/tgbotapi/types/business_connection/BusinessOpeningHours;Ldev/inmo/tgbotapi/types/Birthdate;Ldev/inmo/tgbotapi/types/chat/PreviewChannelChat;ILdev/inmo/tgbotapi/types/gifts/AcceptedGiftTypes;)Ldev/inmo/tgbotapi/types/chat/ExtendedPrivateForumChatImpl;
public static synthetic fun copy-5RSODus$default (Ldev/inmo/tgbotapi/types/chat/ExtendedPrivateForumChatImpl;JLdev/inmo/tgbotapi/types/ChatPhoto;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/TelegramDate;ILdev/inmo/tgbotapi/types/colors/ColorId;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/business_connection/BusinessIntro;Ldev/inmo/tgbotapi/types/business_connection/BusinessLocation;Ldev/inmo/tgbotapi/types/business_connection/BusinessOpeningHours;Ldev/inmo/tgbotapi/types/Birthdate;Ldev/inmo/tgbotapi/types/chat/PreviewChannelChat;ILdev/inmo/tgbotapi/types/gifts/AcceptedGiftTypes;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/chat/ExtendedPrivateForumChatImpl;
public fun equals (Ljava/lang/Object;)Z
public fun getAccentColorId-f3WtEc0 ()I
public fun getAcceptedGiftTypes ()Ldev/inmo/tgbotapi/types/gifts/AcceptedGiftTypes;
public fun getActiveUsernames ()Ljava/util/List;
public fun getAllowCreateUserIdLink ()Z
public fun getBackgroundCustomEmojiId-GbmMWyQ ()Ljava/lang/String;
public fun getBio ()Ljava/lang/String;
public fun getBirthdate ()Ldev/inmo/tgbotapi/types/Birthdate;
public fun getBusinessIntro ()Ldev/inmo/tgbotapi/types/business_connection/BusinessIntro;
public fun getBusinessLocation ()Ldev/inmo/tgbotapi/types/business_connection/BusinessLocation;
public fun getBusinessOpeningHours ()Ldev/inmo/tgbotapi/types/business_connection/BusinessOpeningHours;
public fun getCanReceiveGifts ()Z
public fun getChatPhoto ()Ldev/inmo/tgbotapi/types/ChatPhoto;
public fun getFirstName ()Ljava/lang/String;
public fun getHasPrivateForwards ()Z
public fun getHasRestrictedVoiceAndVideoMessages ()Z
public synthetic fun getId ()Ldev/inmo/tgbotapi/types/IdChatIdentifier;
public fun getId-tHkBKVM ()J
public fun getLastName ()Ljava/lang/String;
public fun getMaxReactionsCount ()I
public fun getPersonalChat ()Ldev/inmo/tgbotapi/types/chat/PreviewChannelChat;
public fun getProfileAccentColorId-mg_h9nU ()Ldev/inmo/tgbotapi/types/colors/ColorId;
public fun getProfileBackgroundCustomEmojiId-GbmMWyQ ()Ljava/lang/String;
public fun getStatusEmojiExpiration ()Ldev/inmo/tgbotapi/types/TelegramDate;
public fun getStatusEmojiId-GbmMWyQ ()Ljava/lang/String;
public fun getUsername-san03mo ()Ljava/lang/String;
public fun hashCode ()I
public fun isDirectMessages ()Z
public fun toString ()Ljava/lang/String;
}
public final synthetic class dev/inmo/tgbotapi/types/chat/ExtendedPrivateForumChatImpl$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Ldev/inmo/tgbotapi/types/chat/ExtendedPrivateForumChatImpl$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/chat/ExtendedPrivateForumChatImpl;
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/inmo/tgbotapi/types/chat/ExtendedPrivateForumChatImpl;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/types/chat/ExtendedPrivateForumChatImpl$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public abstract interface class dev/inmo/tgbotapi/types/chat/ExtendedPublicChat : dev/inmo/tgbotapi/types/chat/ExtendedChat, dev/inmo/tgbotapi/types/chat/ExtendedNonBotChat, dev/inmo/tgbotapi/types/chat/PublicChat { public abstract interface class dev/inmo/tgbotapi/types/chat/ExtendedPublicChat : dev/inmo/tgbotapi/types/chat/ExtendedChat, dev/inmo/tgbotapi/types/chat/ExtendedNonBotChat, dev/inmo/tgbotapi/types/chat/PublicChat {
public abstract fun getAvailableReactions ()Ljava/util/List; public abstract fun getAvailableReactions ()Ljava/util/List;
public abstract fun getDescription ()Ljava/lang/String; public abstract fun getDescription ()Ljava/lang/String;
@@ -17618,7 +17706,7 @@ public final class dev/inmo/tgbotapi/types/chat/ExtendedSupergroupChatImpl$Compa
public final fun serializer ()Lkotlinx/serialization/KSerializer; public final fun serializer ()Lkotlinx/serialization/KSerializer;
} }
public abstract interface class dev/inmo/tgbotapi/types/chat/ForumChat : dev/inmo/tgbotapi/types/chat/SupergroupChat { public abstract interface class dev/inmo/tgbotapi/types/chat/ForumChat : dev/inmo/tgbotapi/types/chat/Chat {
public static final field Companion Ldev/inmo/tgbotapi/types/chat/ForumChat$Companion; public static final field Companion Ldev/inmo/tgbotapi/types/chat/ForumChat$Companion;
} }
@@ -17719,7 +17807,7 @@ public final class dev/inmo/tgbotapi/types/chat/PossiblyPremiumChat$DefaultImpls
public static fun isDirectMessages (Ldev/inmo/tgbotapi/types/chat/PossiblyPremiumChat;)Z public static fun isDirectMessages (Ldev/inmo/tgbotapi/types/chat/PossiblyPremiumChat;)Z
} }
public abstract class dev/inmo/tgbotapi/types/chat/PreviewBot : dev/inmo/tgbotapi/types/chat/PreviewUser { public abstract class dev/inmo/tgbotapi/types/chat/PreviewBot : dev/inmo/tgbotapi/types/chat/User, dev/inmo/tgbotapi/types/chat/PreviewChat, dev/inmo/tgbotapi/types/chat/PrivateChat {
public static final field Companion Ldev/inmo/tgbotapi/types/chat/PreviewBot$Companion; public static final field Companion Ldev/inmo/tgbotapi/types/chat/PreviewBot$Companion;
} }
@@ -17784,7 +17872,7 @@ public final class dev/inmo/tgbotapi/types/chat/PreviewChatSerializer : kotlinx/
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
} }
public abstract interface class dev/inmo/tgbotapi/types/chat/PreviewForumChat : dev/inmo/tgbotapi/types/chat/ForumChat, dev/inmo/tgbotapi/types/chat/PreviewSupergroupChat { public abstract interface class dev/inmo/tgbotapi/types/chat/PreviewForumChat : dev/inmo/tgbotapi/types/chat/PreviewSupergroupChat, dev/inmo/tgbotapi/types/chat/SupergroupForumChat {
public static final field Companion Ldev/inmo/tgbotapi/types/chat/PreviewForumChat$Companion; public static final field Companion Ldev/inmo/tgbotapi/types/chat/PreviewForumChat$Companion;
} }
@@ -17808,7 +17896,7 @@ public final class dev/inmo/tgbotapi/types/chat/PreviewGroupChat$DefaultImpls {
public static fun isDirectMessages (Ldev/inmo/tgbotapi/types/chat/PreviewGroupChat;)Z public static fun isDirectMessages (Ldev/inmo/tgbotapi/types/chat/PreviewGroupChat;)Z
} }
public abstract interface class dev/inmo/tgbotapi/types/chat/PreviewPrivateChat : dev/inmo/tgbotapi/types/chat/PreviewUsernameChat, dev/inmo/tgbotapi/types/chat/PrivateChat { public abstract interface class dev/inmo/tgbotapi/types/chat/PreviewPrivateChat : dev/inmo/tgbotapi/types/chat/PreviewUsernameChat, dev/inmo/tgbotapi/types/chat/PrivateUserChat {
public static final field Companion Ldev/inmo/tgbotapi/types/chat/PreviewPrivateChat$Companion; public static final field Companion Ldev/inmo/tgbotapi/types/chat/PreviewPrivateChat$Companion;
} }
@@ -17820,6 +17908,18 @@ public final class dev/inmo/tgbotapi/types/chat/PreviewPrivateChat$DefaultImpls
public static fun isDirectMessages (Ldev/inmo/tgbotapi/types/chat/PreviewPrivateChat;)Z public static fun isDirectMessages (Ldev/inmo/tgbotapi/types/chat/PreviewPrivateChat;)Z
} }
public abstract interface class dev/inmo/tgbotapi/types/chat/PreviewPrivateForumChat : dev/inmo/tgbotapi/types/chat/PreviewPrivateChat, dev/inmo/tgbotapi/types/chat/PrivateForumChat {
public static final field Companion Ldev/inmo/tgbotapi/types/chat/PreviewPrivateForumChat$Companion;
}
public final class dev/inmo/tgbotapi/types/chat/PreviewPrivateForumChat$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/types/chat/PreviewPrivateForumChat$DefaultImpls {
public static fun isDirectMessages (Ldev/inmo/tgbotapi/types/chat/PreviewPrivateForumChat;)Z
}
public abstract interface class dev/inmo/tgbotapi/types/chat/PreviewPublicChat : dev/inmo/tgbotapi/types/chat/PreviewChat, dev/inmo/tgbotapi/types/chat/PublicChat { public abstract interface class dev/inmo/tgbotapi/types/chat/PreviewPublicChat : dev/inmo/tgbotapi/types/chat/PreviewChat, dev/inmo/tgbotapi/types/chat/PublicChat {
public static final field Companion Ldev/inmo/tgbotapi/types/chat/PreviewPublicChat$Companion; public static final field Companion Ldev/inmo/tgbotapi/types/chat/PreviewPublicChat$Companion;
} }
@@ -17927,6 +18027,66 @@ public final class dev/inmo/tgbotapi/types/chat/PrivateChatImpl$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer; public final fun serializer ()Lkotlinx/serialization/KSerializer;
} }
public abstract interface class dev/inmo/tgbotapi/types/chat/PrivateForumChat : dev/inmo/tgbotapi/types/chat/ForumChat, dev/inmo/tgbotapi/types/chat/PrivateUserChat {
public static final field Companion Ldev/inmo/tgbotapi/types/chat/PrivateForumChat$Companion;
}
public final class dev/inmo/tgbotapi/types/chat/PrivateForumChat$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/types/chat/PrivateForumChat$DefaultImpls {
public static fun isDirectMessages (Ldev/inmo/tgbotapi/types/chat/PrivateForumChat;)Z
}
public final class dev/inmo/tgbotapi/types/chat/PrivateForumChatImpl : dev/inmo/tgbotapi/types/chat/PreviewPrivateForumChat {
public static final field Companion Ldev/inmo/tgbotapi/types/chat/PrivateForumChatImpl$Companion;
public synthetic fun <init> (JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public synthetic fun <init> (JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1-tHkBKVM ()J
public final fun component2-san03mo ()Ljava/lang/String;
public final fun component3 ()Ljava/lang/String;
public final fun component4 ()Ljava/lang/String;
public final fun copy-55YrAcc (JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/inmo/tgbotapi/types/chat/PrivateForumChatImpl;
public static synthetic fun copy-55YrAcc$default (Ldev/inmo/tgbotapi/types/chat/PrivateForumChatImpl;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/chat/PrivateForumChatImpl;
public fun equals (Ljava/lang/Object;)Z
public fun getFirstName ()Ljava/lang/String;
public synthetic fun getId ()Ldev/inmo/tgbotapi/types/IdChatIdentifier;
public fun getId-tHkBKVM ()J
public fun getLastName ()Ljava/lang/String;
public fun getUsername-san03mo ()Ljava/lang/String;
public fun hashCode ()I
public fun isDirectMessages ()Z
public fun toString ()Ljava/lang/String;
}
public final synthetic class dev/inmo/tgbotapi/types/chat/PrivateForumChatImpl$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Ldev/inmo/tgbotapi/types/chat/PrivateForumChatImpl$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/chat/PrivateForumChatImpl;
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/inmo/tgbotapi/types/chat/PrivateForumChatImpl;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/types/chat/PrivateForumChatImpl$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public abstract interface class dev/inmo/tgbotapi/types/chat/PrivateUserChat : dev/inmo/tgbotapi/types/chat/PrivateChat {
public static final field Companion Ldev/inmo/tgbotapi/types/chat/PrivateUserChat$Companion;
}
public final class dev/inmo/tgbotapi/types/chat/PrivateUserChat$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/types/chat/PrivateUserChat$DefaultImpls {
public static fun isDirectMessages (Ldev/inmo/tgbotapi/types/chat/PrivateUserChat;)Z
}
public abstract interface class dev/inmo/tgbotapi/types/chat/PublicChat : dev/inmo/tgbotapi/types/chat/Chat { public abstract interface class dev/inmo/tgbotapi/types/chat/PublicChat : dev/inmo/tgbotapi/types/chat/Chat {
public static final field Companion Ldev/inmo/tgbotapi/types/chat/PublicChat$Companion; public static final field Companion Ldev/inmo/tgbotapi/types/chat/PublicChat$Companion;
public abstract fun getTitle ()Ljava/lang/String; public abstract fun getTitle ()Ljava/lang/String;
@@ -17998,6 +18158,18 @@ public final class dev/inmo/tgbotapi/types/chat/SupergroupChatImpl$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer; public final fun serializer ()Lkotlinx/serialization/KSerializer;
} }
public abstract interface class dev/inmo/tgbotapi/types/chat/SupergroupForumChat : dev/inmo/tgbotapi/types/chat/ForumChat, dev/inmo/tgbotapi/types/chat/SupergroupChat {
public static final field Companion Ldev/inmo/tgbotapi/types/chat/SupergroupForumChat$Companion;
}
public final class dev/inmo/tgbotapi/types/chat/SupergroupForumChat$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/types/chat/SupergroupForumChat$DefaultImpls {
public static fun isDirectMessages (Ldev/inmo/tgbotapi/types/chat/SupergroupForumChat;)Z
}
public final class dev/inmo/tgbotapi/types/chat/UnknownChatType : dev/inmo/tgbotapi/types/chat/Chat, dev/inmo/tgbotapi/types/chat/PreviewChat { public final class dev/inmo/tgbotapi/types/chat/UnknownChatType : dev/inmo/tgbotapi/types/chat/Chat, dev/inmo/tgbotapi/types/chat/PreviewChat {
public fun <init> (Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;)V public fun <init> (Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;)V
public final fun component1 ()Ldev/inmo/tgbotapi/types/IdChatIdentifier; public final fun component1 ()Ldev/inmo/tgbotapi/types/IdChatIdentifier;

View File

@@ -37,6 +37,8 @@ data class ForwardMessage(
val disableNotification: Boolean = false, val disableNotification: Boolean = false,
@SerialName(protectContentField) @SerialName(protectContentField)
override val protectContent: Boolean = false, override val protectContent: Boolean = false,
@SerialName(messageEffectIdField)
val effectId: EffectId? = null,
@SerialName(suggestedPostParametersField) @SerialName(suggestedPostParametersField)
override val suggestedPostParameters: SuggestedPostParameters? = null override val suggestedPostParameters: SuggestedPostParameters? = null
): SimpleRequest<PossiblyForwardedMessage>, ): SimpleRequest<PossiblyForwardedMessage>,

View File

@@ -9,7 +9,10 @@ import dev.inmo.tgbotapi.types.excludeUnsavedField
import dev.inmo.tgbotapi.types.excludeSavedField import dev.inmo.tgbotapi.types.excludeSavedField
import dev.inmo.tgbotapi.types.excludeUnlimitedField import dev.inmo.tgbotapi.types.excludeUnlimitedField
import dev.inmo.tgbotapi.types.excludeLimitedField import dev.inmo.tgbotapi.types.excludeLimitedField
import dev.inmo.tgbotapi.types.excludeLimitedUpgradableField
import dev.inmo.tgbotapi.types.excludeLimitedNonUpgradableField
import dev.inmo.tgbotapi.types.excludeUniqueField import dev.inmo.tgbotapi.types.excludeUniqueField
import dev.inmo.tgbotapi.types.excludeFromBlockchainField
import dev.inmo.tgbotapi.types.sortByPriceField import dev.inmo.tgbotapi.types.sortByPriceField
import dev.inmo.tgbotapi.types.offsetField import dev.inmo.tgbotapi.types.offsetField
import dev.inmo.tgbotapi.types.limitField import dev.inmo.tgbotapi.types.limitField
@@ -29,10 +32,17 @@ data class GetBusinessAccountGifts(
val excludeSaved: Boolean = false, val excludeSaved: Boolean = false,
@SerialName(excludeUnlimitedField) @SerialName(excludeUnlimitedField)
val excludeUnlimited: Boolean = false, val excludeUnlimited: Boolean = false,
@Deprecated("Use excludeLimitedUpgradable and excludeLimitedNonUpgradable instead")
@SerialName(excludeLimitedField) @SerialName(excludeLimitedField)
val excludeLimited: Boolean = false, val excludeLimited: Boolean = false,
@SerialName(excludeLimitedUpgradableField)
val excludeLimitedUpgradable: Boolean = false,
@SerialName(excludeLimitedNonUpgradableField)
val excludeLimitedNonUpgradable: Boolean = false,
@SerialName(excludeUniqueField) @SerialName(excludeUniqueField)
val excludeUnique: Boolean = false, val excludeUnique: Boolean = false,
@SerialName(excludeFromBlockchainField)
val excludeFromBlockchain: Boolean = false,
@SerialName(sortByPriceField) @SerialName(sortByPriceField)
val sortByPrice: Boolean = false, val sortByPrice: Boolean = false,
@SerialName(offsetField) @SerialName(offsetField)

View File

@@ -0,0 +1,38 @@
package dev.inmo.tgbotapi.requests.gifts
import dev.inmo.micro_utils.common.Warning
import dev.inmo.tgbotapi.abstracts.types.ChatRequest
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
import dev.inmo.tgbotapi.types.ChatIdentifier
import dev.inmo.tgbotapi.types.OwnedGifts
import dev.inmo.tgbotapi.types.chatIdField
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
import dev.inmo.tgbotapi.types.limitField
import dev.inmo.tgbotapi.types.offsetField
import kotlinx.serialization.DeserializationStrategy
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.SerializationStrategy
// TODO::Fix
@Serializable
data class GetChatGifts(
@SerialName(chatIdField)
override val chatId: ChatIdentifier,
@SerialName(offsetField)
val offset: String? = null,
@SerialName(limitField)
val limit: Int? = null,
) : SimpleRequest<OwnedGifts<GiftSentOrReceived>>, ChatRequest {
override fun method(): String = "getChatGifts"
override val resultDeserializer: DeserializationStrategy<OwnedGifts<GiftSentOrReceived>>
get() = Companion.resultSerializer
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
companion object {
@Warning("This API can be changed without any warranties of backward compatibility")
val resultSerializer = OwnedGifts.serializer(GiftSentOrReceived.serializer())
}
}

View File

@@ -0,0 +1,38 @@
package dev.inmo.tgbotapi.requests.gifts
import dev.inmo.micro_utils.common.Warning
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
import dev.inmo.tgbotapi.types.OwnedGifts
import dev.inmo.tgbotapi.types.UserId
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
import dev.inmo.tgbotapi.types.limitField
import dev.inmo.tgbotapi.types.offsetField
import dev.inmo.tgbotapi.types.userIdField
import kotlinx.serialization.DeserializationStrategy
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.SerializationStrategy
// TODO::Fix
@Serializable
data class GetUserGifts(
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@SerialName(userIdField)
val userId: UserId,
@SerialName(offsetField)
val offset: String? = null,
@SerialName(limitField)
val limit: Int? = null,
) : SimpleRequest<OwnedGifts<GiftSentOrReceived>> {
override fun method(): String = "getUserGifts"
override val resultDeserializer: DeserializationStrategy<OwnedGifts<GiftSentOrReceived>>
get() = Companion.resultSerializer
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
companion object {
@Warning("This API can be changed without any warranties of backward compatibility")
val resultSerializer = OwnedGifts.serializer(GiftSentOrReceived.serializer())
}
}

View File

@@ -95,6 +95,7 @@ fun CopyMessage(
disableNotification: Boolean = false, disableNotification: Boolean = false,
protectContent: Boolean = false, protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false, allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null, suggestedPostParameters: SuggestedPostParameters? = null,
replyParameters: ReplyParameters? = null, replyParameters: ReplyParameters? = null,
replyMarkup: KeyboardMarkup? = null replyMarkup: KeyboardMarkup? = null
@@ -112,6 +113,7 @@ fun CopyMessage(
disableNotification = disableNotification, disableNotification = disableNotification,
protectContent = protectContent, protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast, allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters, suggestedPostParameters = suggestedPostParameters,
replyParameters = replyParameters, replyParameters = replyParameters,
replyMarkup = replyMarkup replyMarkup = replyMarkup
@@ -129,6 +131,7 @@ fun CopyMessage(
disableNotification: Boolean = false, disableNotification: Boolean = false,
protectContent: Boolean = false, protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false, allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null, suggestedPostParameters: SuggestedPostParameters? = null,
replyParameters: ReplyParameters? = null, replyParameters: ReplyParameters? = null,
replyMarkup: KeyboardMarkup? = null replyMarkup: KeyboardMarkup? = null
@@ -146,6 +149,7 @@ fun CopyMessage(
disableNotification = disableNotification, disableNotification = disableNotification,
protectContent = protectContent, protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast, allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters, suggestedPostParameters = suggestedPostParameters,
replyParameters = replyParameters, replyParameters = replyParameters,
replyMarkup = replyMarkup replyMarkup = replyMarkup
@@ -184,6 +188,8 @@ data class CopyMessage internal constructor(
override val protectContent: Boolean = false, override val protectContent: Boolean = false,
@SerialName(allowPaidBroadcastField) @SerialName(allowPaidBroadcastField)
override val allowPaidBroadcast: Boolean = false, override val allowPaidBroadcast: Boolean = false,
@SerialName(messageEffectIdField)
val effectId: EffectId? = null,
@SerialName(suggestedPostParametersField) @SerialName(suggestedPostParametersField)
override val suggestedPostParameters: SuggestedPostParameters? = null, override val suggestedPostParameters: SuggestedPostParameters? = null,
@SerialName(replyParametersField) @SerialName(replyParametersField)

View File

@@ -0,0 +1,146 @@
package dev.inmo.tgbotapi.requests.send
import dev.inmo.tgbotapi.abstracts.types.LinkPreviewOptionsContainer
import dev.inmo.tgbotapi.requests.send.abstracts.*
import dev.inmo.tgbotapi.types.*
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList
import dev.inmo.tgbotapi.types.message.ParseMode
import dev.inmo.tgbotapi.types.message.parseModeField
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
import dev.inmo.tgbotapi.types.message.*
import dev.inmo.tgbotapi.types.message.RawMessageEntity
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass
import dev.inmo.tgbotapi.types.message.content.TextContent
import dev.inmo.tgbotapi.types.message.toRawMessageEntities
import dev.inmo.tgbotapi.utils.extensions.makeString
import dev.inmo.tgbotapi.utils.throwRangeError
import kotlinx.serialization.*
internal val TextContentMessageDraftResultDeserializer: DeserializationStrategy<ContentMessage<TextContent>>
= TelegramBotAPIMessageDeserializationStrategyClass()
fun SendMessageDraft(
chatId: ChatIdentifier,
text: String,
parseMode: ParseMode? = null,
linkPreviewOptions: LinkPreviewOptions? = null,
threadId: MessageThreadId? = chatId.threadId,
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
replyParameters: ReplyParameters? = null,
replyMarkup: KeyboardMarkup? = null
) = SendMessageDraft(
chatId = chatId,
text = text,
parseMode = parseMode,
rawEntities = null,
threadId = threadId,
directMessageThreadId = directMessageThreadId,
businessConnectionId = businessConnectionId,
linkPreviewOptions = linkPreviewOptions,
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
replyParameters = replyParameters,
replyMarkup = replyMarkup
)
fun SendMessageDraft(
chatId: ChatIdentifier,
entities: TextSourcesList,
linkPreviewOptions: LinkPreviewOptions? = null,
threadId: MessageThreadId? = chatId.threadId,
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
replyParameters: ReplyParameters? = null,
replyMarkup: KeyboardMarkup? = null
) = SendMessageDraft(
chatId = chatId,
text = entities.makeString(),
parseMode = null,
rawEntities = entities.toRawMessageEntities(),
threadId = threadId,
directMessageThreadId = directMessageThreadId,
businessConnectionId = businessConnectionId,
linkPreviewOptions = linkPreviewOptions,
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
replyParameters = replyParameters,
replyMarkup = replyMarkup
)
@ConsistentCopyVisibility
@Serializable
data class SendMessageDraft internal constructor(
@SerialName(chatIdField)
override val chatId: ChatIdentifier,
@SerialName(textField)
override val text: String,
@SerialName(parseModeField)
override val parseMode: ParseMode? = null,
@SerialName(entitiesField)
private val rawEntities: List<RawMessageEntity>? = null,
@OptIn(ExperimentalSerializationApi::class)
@SerialName(messageThreadIdField)
@EncodeDefault
override val threadId: MessageThreadId? = chatId.threadId,
@OptIn(ExperimentalSerializationApi::class)
@EncodeDefault
@SerialName(directMessagesTopicIdField)
override val directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
@SerialName(businessConnectionIdField)
override val businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
@SerialName(linkPreviewOptionsField)
override val linkPreviewOptions: LinkPreviewOptions? = null,
@SerialName(disableNotificationField)
override val disableNotification: Boolean = false,
@SerialName(protectContentField)
override val protectContent: Boolean = false,
@SerialName(allowPaidBroadcastField)
override val allowPaidBroadcast: Boolean = false,
@SerialName(messageEffectIdField)
override val effectId: EffectId? = null,
@SerialName(suggestedPostParametersField)
override val suggestedPostParameters: SuggestedPostParameters? = null,
@SerialName(replyParametersField)
override val replyParameters: ReplyParameters? = null,
@SerialName(replyMarkupField)
override val replyMarkup: KeyboardMarkup? = null
) : SendContentMessageRequest<ContentMessage<TextContent>>,
ReplyingMarkupSendMessageRequest<ContentMessage<TextContent>>,
TextableSendMessageRequest<ContentMessage<TextContent>>,
LinkPreviewOptionsContainer
{
override val textSources: TextSourcesList? by lazy {
rawEntities ?.asTextSources(text)
}
init {
if (text.length !in textLength) {
throwRangeError("Text length", textLength, text.length)
}
}
override fun method(): String = "sendMessageDraft"
override val resultDeserializer: DeserializationStrategy<ContentMessage<TextContent>>
get() = TextContentMessageDraftResultDeserializer
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
}

View File

@@ -0,0 +1,31 @@
package dev.inmo.tgbotapi.requests.stories
import dev.inmo.tgbotapi.abstracts.types.WithBusinessConnectionId
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
import dev.inmo.tgbotapi.types.StoryId
import dev.inmo.tgbotapi.types.businessConnectionIdField
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
import dev.inmo.tgbotapi.types.fromBusinessConnectionIdField
import dev.inmo.tgbotapi.types.storyIdField
import dev.inmo.tgbotapi.types.stories.Story
import kotlinx.serialization.DeserializationStrategy
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.SerializationStrategy
@Serializable
data class RepostStory(
@SerialName(businessConnectionIdField)
override val businessConnectionId: BusinessConnectionId,
@SerialName(fromBusinessConnectionIdField)
val fromBusinessConnectionId: BusinessConnectionId,
@SerialName(storyIdField)
val storyId: StoryId,
) : SimpleRequest<Story>, WithBusinessConnectionId {
override fun method(): String = "repostStory"
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
override val resultDeserializer: DeserializationStrategy<Story>
get() = Story.serializer()
}

View File

@@ -190,6 +190,7 @@ const val unrestrictBoostsCountField = "unrestrict_boost_count"
const val customEmojiStickerSetNameField = "custom_emoji_sticker_set_name" const val customEmojiStickerSetNameField = "custom_emoji_sticker_set_name"
const val iconCustomEmojiIdField = "icon_custom_emoji_id" const val iconCustomEmojiIdField = "icon_custom_emoji_id"
const val hasMainWebAppField = "has_main_web_app" const val hasMainWebAppField = "has_main_web_app"
const val hasTopicsEnabledField = "has_topics_enabled"
const val canJoinGroupsField = "can_join_groups" const val canJoinGroupsField = "can_join_groups"
const val canReadAllGroupMessagesField = "can_read_all_group_messages" const val canReadAllGroupMessagesField = "can_read_all_group_messages"
const val canReplyField = "can_reply" const val canReplyField = "can_reply"
@@ -313,8 +314,10 @@ const val createsJoinRequestField = "creates_join_request"
const val pendingJoinRequestCountField = "pending_join_request_count" const val pendingJoinRequestCountField = "pending_join_request_count"
const val memberLimitField = "member_limit" const val memberLimitField = "member_limit"
const val iconColorField = "icon_color" const val iconColorField = "icon_color"
const val isNameImplicitField = "is_name_implicit"
const val emojiListField = "emoji_list" const val emojiListField = "emoji_list"
const val completedByUserField = "completed_by_user" const val completedByUserField = "completed_by_user"
const val completedByChatField = "completed_by_chat"
const val completionDateField = "completion_date" const val completionDateField = "completion_date"
const val titleEntitiesField = "title_entities" const val titleEntitiesField = "title_entities"
const val tasksField = "tasks" const val tasksField = "tasks"
@@ -533,6 +536,7 @@ const val topicIdField = "topic_id"
const val isPublicField = "is_public" const val isPublicField = "is_public"
const val giftField = "gift" const val giftField = "gift"
const val giftUpgradeSentField = "gift_upgrade_sent"
const val giftsField = "gifts" const val giftsField = "gifts"
const val rarityPerMilleField = "rarity_per_mille" const val rarityPerMilleField = "rarity_per_mille"
const val acceptedGiftTypesField = "accepted_gift_types" const val acceptedGiftTypesField = "accepted_gift_types"
@@ -545,6 +549,8 @@ const val isDirectMessagesField = "is_direct_messages"
const val nextTransferDateField = "next_transfer_date" const val nextTransferDateField = "next_transfer_date"
const val transferStarCountField = "transfer_star_count" const val transferStarCountField = "transfer_star_count"
const val lastResaleStarCountField = "last_resale_star_count" const val lastResaleStarCountField = "last_resale_star_count"
const val lastResaleCurrencyField = "last_resale_currency"
const val lastResaleAmountField = "last_resale_amount"
const val newOwnerChatIdField = "new_owner_chat_id" const val newOwnerChatIdField = "new_owner_chat_id"
const val pointField = "point" const val pointField = "point"
@@ -649,6 +655,8 @@ const val mediaField = "media"
const val mainFrameTimestampField = "main_frame_timestamp" const val mainFrameTimestampField = "main_frame_timestamp"
const val paidMessageStarCountField = "paid_message_star_count" const val paidMessageStarCountField = "paid_message_star_count"
const val ratingField = "rating"
const val uniqueGiftColorsField = "unique_gift_colors"
const val paidStarCountField = "paid_star_count" const val paidStarCountField = "paid_star_count"
const val isPaidPostField = "is_paid_post" const val isPaidPostField = "is_paid_post"
@@ -730,31 +738,48 @@ const val upgradeStarCountField = "upgrade_star_count"
const val payToUpgradeField = "pay_for_upgrade" const val payToUpgradeField = "pay_for_upgrade"
const val paidMediaField = "paid_media" const val paidMediaField = "paid_media"
const val publisherChatField = "publisher_chat" const val publisherChatField = "publisher_chat"
const val personalTotalCountField = "personal_total_count"
const val personalRemainingCountField = "personal_remaining_count"
const val isPremiumField2 = "is_premium"
const val hasColorsField = "has_colors"
const val uniqueGiftVariantCountField = "unique_gift_variant_count"
const val uniqueGiftNumberField = "unique_gift_number"
const val isUpgradeSeparateField = "is_upgrade_separate"
const val isFromBlockchainField = "is_from_blockchain"
const val centerColorField = "center_color" const val centerColorField = "center_color"
const val edgeColorField = "edge_color" const val edgeColorField = "edge_color"
const val symbolColorField = "symbol_color" const val symbolColorField = "symbol_color"
const val textColorField = "text_color" const val textColorField = "text_color"
const val nameColorField = "name_color"
const val baseColorField = "base_color"
const val linkColorField = "link_color"
const val baseNameField = "base_name" const val baseNameField = "base_name"
const val numberField = "number" const val numberField = "number"
const val modelField = "model" const val modelField = "model"
const val symbolField = "symbol" const val symbolField = "symbol"
const val backdropField = "backdrop" const val backdropField = "backdrop"
const val backgroundField = "background"
const val unlimitedGiftsField = "unlimited_gifts" const val unlimitedGiftsField = "unlimited_gifts"
const val limitedGiftsField = "limited_gifts" const val limitedGiftsField = "limited_gifts"
const val uniqueGiftsField = "unique_gifts" const val uniqueGiftsField = "unique_gifts"
const val premiumSubscriptionField = "premium_subscription" const val premiumSubscriptionField = "premium_subscription"
const val giftsFromChannelsField = "gifts_from_channels"
const val excludeUnsavedField = "exclude_unsaved" const val excludeUnsavedField = "exclude_unsaved"
const val excludeSavedField = "exclude_saved" const val excludeSavedField = "exclude_saved"
const val excludeUnlimitedField = "exclude_unlimited" const val excludeUnlimitedField = "exclude_unlimited"
const val excludeLimitedField = "exclude_limited" const val excludeLimitedField = "exclude_limited"
const val excludeLimitedUpgradableField = "exclude_limited_upgradable"
const val excludeLimitedNonUpgradableField = "exclude_limited_non_upgradable"
const val excludeUniqueField = "exclude_unique" const val excludeUniqueField = "exclude_unique"
const val excludeFromBlockchainField = "exclude_from_blockchain"
const val sortByPriceField = "sort_by_price" const val sortByPriceField = "sort_by_price"
const val businessConnectionIdField = "business_connection_id" const val businessConnectionIdField = "business_connection_id"
const val fromBusinessConnectionIdField = "from_business_connection_id"
const val businessIntroField = "business_intro" const val businessIntroField = "business_intro"
const val businessLocationField = "business_location" const val businessLocationField = "business_location"
const val businessOpeningHoursField = "business_opening_hours" const val businessOpeningHoursField = "business_opening_hours"

View File

@@ -13,7 +13,9 @@ data class ForumTopic(
@SerialName(iconColorField) @SerialName(iconColorField)
val color: RGBColor, val color: RGBColor,
@SerialName(iconCustomEmojiIdField) @SerialName(iconCustomEmojiIdField)
val iconEmojiId: CustomEmojiId? = null val iconEmojiId: CustomEmojiId? = null,
@SerialName(isNameImplicitField)
val isNameImplicit: Boolean = false
) { ) {
companion object { companion object {
val CYAN = RGBColor(0x6FB9F0) val CYAN = RGBColor(0x6FB9F0)

View File

@@ -18,6 +18,15 @@ sealed interface PrivateChat : Chat, UsernameChat {
val lastName: String val lastName: String
} }
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(ChatSerializer::class)
sealed interface PrivateUserChat : PrivateChat
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(ChatSerializer::class)
sealed interface PrivateForumChat : PrivateUserChat, ForumChat {
}
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(ChatSerializer::class) @Serializable(ChatSerializer::class)
sealed interface BusinessChat : Chat { sealed interface BusinessChat : Chat {
@@ -51,7 +60,11 @@ sealed interface SupergroupChat : GroupChat, SuperPublicChat
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(ChatSerializer::class) @Serializable(ChatSerializer::class)
sealed interface ForumChat : SupergroupChat sealed interface ForumChat : Chat
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(ChatSerializer::class)
sealed interface SupergroupForumChat : SupergroupChat, ForumChat
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(ChatSerializer::class) @Serializable(ChatSerializer::class)

View File

@@ -81,8 +81,16 @@ object ChatSerializer : KSerializer<Chat> {
val original = decodedJson[originField] val original = decodedJson[originField]
when (type) { when (type) {
ChatType.Sender -> formatter.decodeFromJsonElement(PrivateChatImpl.serializer(), decodedJson) ChatType.Sender -> if (isForum) {
ChatType.Private -> formatter.decodeFromJsonElement(PrivateChatImpl.serializer(), decodedJson) formatter.decodeFromJsonElement(PrivateForumChatImpl.serializer(), decodedJson)
} else {
formatter.decodeFromJsonElement(PrivateChatImpl.serializer(), decodedJson)
}
ChatType.Private -> if (isForum) {
formatter.decodeFromJsonElement(PrivateForumChatImpl.serializer(), decodedJson)
} else {
formatter.decodeFromJsonElement(PrivateChatImpl.serializer(), decodedJson)
}
ChatType.Group -> formatter.decodeFromJsonElement(GroupChatImpl.serializer(), decodedJson) ChatType.Group -> formatter.decodeFromJsonElement(GroupChatImpl.serializer(), decodedJson)
ChatType.Supergroup -> when { ChatType.Supergroup -> when {
isForum -> formatter.decodeFromJsonElement(ForumChatImpl.serializer(), decodedJson) isForum -> formatter.decodeFromJsonElement(ForumChatImpl.serializer(), decodedJson)
@@ -128,8 +136,16 @@ object PreviewChatSerializer : KSerializer<PreviewChat> {
val original = decodedJson[originField] val original = decodedJson[originField]
return when (type) { return when (type) {
ChatType.Sender -> formatter.decodeFromJsonElement(PrivateChatImpl.serializer(), decodedJson) ChatType.Sender -> if (isForum) {
ChatType.Private -> formatter.decodeFromJsonElement(PrivateChatImpl.serializer(), decodedJson) formatter.decodeFromJsonElement(PrivateForumChatImpl.serializer(), decodedJson)
} else {
formatter.decodeFromJsonElement(PrivateChatImpl.serializer(), decodedJson)
}
ChatType.Private -> if (isForum) {
formatter.decodeFromJsonElement(PrivateForumChatImpl.serializer(), decodedJson)
} else {
formatter.decodeFromJsonElement(PrivateChatImpl.serializer(), decodedJson)
}
ChatType.Group -> formatter.decodeFromJsonElement(GroupChatImpl.serializer(), decodedJson) ChatType.Group -> formatter.decodeFromJsonElement(GroupChatImpl.serializer(), decodedJson)
ChatType.Supergroup -> { ChatType.Supergroup -> {
when { when {
@@ -156,6 +172,7 @@ object PreviewChatSerializer : KSerializer<PreviewChat> {
override fun serialize(encoder: Encoder, value: PreviewChat) { override fun serialize(encoder: Encoder, value: PreviewChat) {
when (value) { when (value) {
is PrivateChatImpl -> PrivateChatImpl.serializer().serialize(encoder, value) is PrivateChatImpl -> PrivateChatImpl.serializer().serialize(encoder, value)
is PrivateForumChatImpl -> PrivateForumChatImpl.serializer().serialize(encoder, value)
is BusinessChatImpl -> BusinessChatImpl.serializer().serialize(encoder, value) is BusinessChatImpl -> BusinessChatImpl.serializer().serialize(encoder, value)
is GroupChatImpl -> GroupChatImpl.serializer().serialize(encoder, value) is GroupChatImpl -> GroupChatImpl.serializer().serialize(encoder, value)
is SupergroupChatImpl -> SupergroupChatImpl.serializer().serialize(encoder, value) is SupergroupChatImpl -> SupergroupChatImpl.serializer().serialize(encoder, value)
@@ -183,8 +200,16 @@ sealed class ExtendedChatSerializer : KSerializer<ExtendedChat> {
val original = decodedJson[originField] val original = decodedJson[originField]
return when (type) { return when (type) {
ChatType.Sender -> formatter.decodeFromJsonElement(ExtendedPrivateChatImpl.serializer(), decodedJson) ChatType.Sender -> if (isForum) {
ChatType.Private -> formatter.decodeFromJsonElement(ExtendedPrivateChatImpl.serializer(), decodedJson) formatter.decodeFromJsonElement(ExtendedPrivateForumChatImpl.serializer(), decodedJson)
} else {
formatter.decodeFromJsonElement(ExtendedPrivateChatImpl.serializer(), decodedJson)
}
ChatType.Private -> if (isForum) {
formatter.decodeFromJsonElement(ExtendedPrivateForumChatImpl.serializer(), decodedJson)
} else {
formatter.decodeFromJsonElement(ExtendedPrivateChatImpl.serializer(), decodedJson)
}
ChatType.Group -> formatter.decodeFromJsonElement(ExtendedGroupChatImpl.serializer(), decodedJson) ChatType.Group -> formatter.decodeFromJsonElement(ExtendedGroupChatImpl.serializer(), decodedJson)
ChatType.Supergroup -> { ChatType.Supergroup -> {
when { when {
@@ -212,6 +237,7 @@ sealed class ExtendedChatSerializer : KSerializer<ExtendedChat> {
when (value) { when (value) {
is ExtendedBusinessChatImpl -> ExtendedBusinessChatImpl.serializer().serialize(encoder, value) is ExtendedBusinessChatImpl -> ExtendedBusinessChatImpl.serializer().serialize(encoder, value)
is ExtendedPrivateChatImpl -> ExtendedPrivateChatImpl.serializer().serialize(encoder, value) is ExtendedPrivateChatImpl -> ExtendedPrivateChatImpl.serializer().serialize(encoder, value)
is ExtendedPrivateForumChatImpl -> ExtendedPrivateForumChatImpl.serializer().serialize(encoder, value)
is ExtendedGroupChatImpl -> ExtendedGroupChatImpl.serializer().serialize(encoder, value) is ExtendedGroupChatImpl -> ExtendedGroupChatImpl.serializer().serialize(encoder, value)
is ExtendedSupergroupChatImpl -> ExtendedSupergroupChatImpl.serializer().serialize(encoder, value) is ExtendedSupergroupChatImpl -> ExtendedSupergroupChatImpl.serializer().serialize(encoder, value)
is ExtendedForumChatImpl -> ExtendedForumChatImpl.serializer().serialize(encoder, value) is ExtendedForumChatImpl -> ExtendedForumChatImpl.serializer().serialize(encoder, value)
@@ -238,7 +264,7 @@ sealed class ExtendedChatSerializer : KSerializer<ExtendedChat> {
class BasedOnBusinessConnection(private val businessConnectionId: BusinessConnectionId) : ExtendedChatSerializer() { class BasedOnBusinessConnection(private val businessConnectionId: BusinessConnectionId) : ExtendedChatSerializer() {
override fun deserialize(decoder: Decoder): ExtendedChat { override fun deserialize(decoder: Decoder): ExtendedChat {
return super.deserialize(decoder).let { return super.deserialize(decoder).let {
if (it is ExtendedPrivateChatImpl) { if (it is ExtendedPrivateChatImpl || it is ExtendedPrivateForumChatImpl) {
ExtendedBusinessChatImpl( ExtendedBusinessChatImpl(
BusinessChatId(it.id.chatId, businessConnectionId), BusinessChatId(it.id.chatId, businessConnectionId),
it it

View File

@@ -6,6 +6,7 @@ import dev.inmo.tgbotapi.types.business_connection.BusinessLocation
import dev.inmo.tgbotapi.types.business_connection.BusinessOpeningHours import dev.inmo.tgbotapi.types.business_connection.BusinessOpeningHours
import dev.inmo.tgbotapi.types.colors.ColorId import dev.inmo.tgbotapi.types.colors.ColorId
import dev.inmo.tgbotapi.types.gifts.AcceptedGiftTypes import dev.inmo.tgbotapi.types.gifts.AcceptedGiftTypes
import dev.inmo.tgbotapi.types.gifts.unique.UniqueGiftColors
import dev.inmo.tgbotapi.types.message.abstracts.Message import dev.inmo.tgbotapi.types.message.abstracts.Message
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializeOnlySerializer import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializeOnlySerializer
import dev.inmo.tgbotapi.types.reactions.Reaction import dev.inmo.tgbotapi.types.reactions.Reaction
@@ -65,7 +66,13 @@ data class ExtendedChannelChatImpl(
@SerialName(hasVisibleHistoryField) @SerialName(hasVisibleHistoryField)
override val newMembersSeeHistory: Boolean = false, override val newMembersSeeHistory: Boolean = false,
@SerialName(maxReactionCountField) @SerialName(maxReactionCountField)
override val maxReactionsCount: Int = 3 override val maxReactionsCount: Int = 3,
@SerialName(ratingField)
override val rating: UserRating? = null,
@SerialName(paidMessageStarCountField)
override val paidMessageStarCount: Int? = null,
@SerialName(uniqueGiftColorsField)
override val uniqueGiftColors: UniqueGiftColors? = null
) : ExtendedChannelChat ) : ExtendedChannelChat
@Serializable @Serializable
@@ -109,6 +116,12 @@ data class ExtendedGroupChatImpl(
override val maxReactionsCount: Int = 3, override val maxReactionsCount: Int = 3,
@SerialName(acceptedGiftTypesField) @SerialName(acceptedGiftTypesField)
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(), override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(),
@SerialName(ratingField)
override val rating: UserRating? = null,
@SerialName(paidMessageStarCountField)
override val paidMessageStarCount: Int? = null,
@SerialName(uniqueGiftColorsField)
override val uniqueGiftColors: UniqueGiftColors? = null
) : ExtendedGroupChat ) : ExtendedGroupChat
@Serializable @Serializable
@@ -165,7 +178,61 @@ data class ExtendedPrivateChatImpl(
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(), override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(),
) : ExtendedPrivateChat ) : ExtendedPrivateChat
typealias ExtendedUser = ExtendedPrivateChatImpl @Serializable
@RiskFeature("This class is a subject of changes. It is better to use ExtendedPrivateChat due")
data class ExtendedPrivateForumChatImpl(
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@SerialName(idField)
override val id: UserId,
@SerialName(photoField)
override val chatPhoto: ChatPhoto? = null,
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@SerialName(usernameField)
override val username: Username? = null,
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@SerialName(activeUsernamesField)
override val activeUsernames: List<Username> = emptyList(),
@SerialName(firstNameField)
override val firstName: String = "",
@SerialName(lastNameField)
override val lastName: String = "",
@SerialName(bioField)
override val bio: String = "",
@SerialName(hasPrivateForwardsField)
override val hasPrivateForwards: Boolean = false,
@SerialName(hasRestrictedVoiceAndVideoMessagesField)
override val hasRestrictedVoiceAndVideoMessages: Boolean = false,
@SerialName(emojiStatusCustomEmojiIdField)
override val statusEmojiId: CustomEmojiId? = null,
@SerialName(emojiStatusExpirationDateField)
override val statusEmojiExpiration: TelegramDate? = null,
@SerialName(accentColorIdField)
override val accentColorId: ColorId = ColorId(0),
@SerialName(profileAccentColorIdField)
override val profileAccentColorId: ColorId? = null,
@SerialName(backgroundCustomEmojiIdField)
override val backgroundCustomEmojiId: CustomEmojiId? = null,
@SerialName(profileBackgroundCustomEmojiIdField)
override val profileBackgroundCustomEmojiId: CustomEmojiId? = null,
@SerialName(businessIntroField)
override val businessIntro: BusinessIntro? = null,
@SerialName(businessLocationField)
override val businessLocation: BusinessLocation? = null,
@SerialName(businessOpeningHoursField)
override val businessOpeningHours: BusinessOpeningHours? = null,
@SerialName(birthdateField)
override val birthdate: Birthdate? = null,
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@SerialName(personalChatField)
@Serializable(PreviewChatSerializer::class)
override val personalChat: PreviewChannelChat? = null,
@SerialName(maxReactionCountField)
override val maxReactionsCount: Int = 3,
@SerialName(acceptedGiftTypesField)
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(),
) : ExtendedPrivateForumChat
typealias ExtendedUser = ExtendedPrivateChat
@Serializable @Serializable
@RiskFeature("This class is a subject of changes. It is better to use ExtendedSupergroupChat due") @RiskFeature("This class is a subject of changes. It is better to use ExtendedSupergroupChat due")
@@ -235,6 +302,12 @@ data class ExtendedSupergroupChatImpl(
override val maxReactionsCount: Int = 3, override val maxReactionsCount: Int = 3,
@SerialName(acceptedGiftTypesField) @SerialName(acceptedGiftTypesField)
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(), override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(),
@SerialName(ratingField)
override val rating: UserRating? = null,
@SerialName(paidMessageStarCountField)
override val paidMessageStarCount: Int? = null,
@SerialName(uniqueGiftColorsField)
override val uniqueGiftColors: UniqueGiftColors? = null
) : ExtendedSupergroupChat ) : ExtendedSupergroupChat
@Serializable @Serializable
@@ -305,6 +378,12 @@ data class ExtendedForumChatImpl(
override val maxReactionsCount: Int = 3, override val maxReactionsCount: Int = 3,
@SerialName(acceptedGiftTypesField) @SerialName(acceptedGiftTypesField)
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(), override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(),
@SerialName(ratingField)
override val rating: UserRating? = null,
@SerialName(paidMessageStarCountField)
override val paidMessageStarCount: Int? = null,
@SerialName(uniqueGiftColorsField)
override val uniqueGiftColors: UniqueGiftColors? = null
) : ExtendedForumChat ) : ExtendedForumChat
@Serializable @Serializable
@@ -378,6 +457,12 @@ data class ExtendedChannelDirectMessagesChatImpl(
override val maxReactionsCount: Int = 3, override val maxReactionsCount: Int = 3,
@SerialName(acceptedGiftTypesField) @SerialName(acceptedGiftTypesField)
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(), override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(),
@SerialName(ratingField)
override val rating: UserRating? = null,
@SerialName(paidMessageStarCountField)
override val paidMessageStarCount: Int? = null,
@SerialName(uniqueGiftColorsField)
override val uniqueGiftColors: UniqueGiftColors? = null
) : ExtendedChannelDirectMessagesChat { ) : ExtendedChannelDirectMessagesChat {
@OptIn(ExperimentalSerializationApi::class) @OptIn(ExperimentalSerializationApi::class)
@SerialName(isDirectMessagesField) @SerialName(isDirectMessagesField)
@@ -419,6 +504,8 @@ data class ExtendedBot(
override val maxReactionsCount: Int = 3, override val maxReactionsCount: Int = 3,
@SerialName(hasMainWebAppField) @SerialName(hasMainWebAppField)
val hasMainWebApp: Boolean = false, val hasMainWebApp: Boolean = false,
@SerialName(hasTopicsEnabledField)
val hasTopicsEnabled: Boolean = false,
@SerialName(acceptedGiftTypesField) @SerialName(acceptedGiftTypesField)
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(), override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(),
) : Bot(), ExtendedChat { ) : Bot(), ExtendedChat {

View File

@@ -6,6 +6,7 @@ import dev.inmo.tgbotapi.types.business_connection.BusinessLocation
import dev.inmo.tgbotapi.types.business_connection.BusinessOpeningHours import dev.inmo.tgbotapi.types.business_connection.BusinessOpeningHours
import dev.inmo.tgbotapi.types.colors.ColorId import dev.inmo.tgbotapi.types.colors.ColorId
import dev.inmo.tgbotapi.types.gifts.AcceptedGiftTypes import dev.inmo.tgbotapi.types.gifts.AcceptedGiftTypes
import dev.inmo.tgbotapi.types.gifts.unique.UniqueGiftColors
import dev.inmo.tgbotapi.types.message.abstracts.Message import dev.inmo.tgbotapi.types.message.abstracts.Message
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializeOnlySerializer import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializeOnlySerializer
import dev.inmo.tgbotapi.types.reactions.Reaction import dev.inmo.tgbotapi.types.reactions.Reaction
@@ -56,7 +57,7 @@ sealed interface ExtendedGroupChat : GroupChat, ExtendedPublicChat {
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(ExtendedChatSerializer.Companion::class) @Serializable(ExtendedChatSerializer.Companion::class)
sealed interface ExtendedPrivateChat : PrivateChat, ExtendedChatWithUsername, ExtendedNonBotChat { sealed interface ExtendedPrivateChat : PrivateUserChat, ExtendedChatWithUsername, ExtendedNonBotChat {
val bio: String val bio: String
val hasPrivateForwards: Boolean val hasPrivateForwards: Boolean
val hasRestrictedVoiceAndVideoMessages: Boolean val hasRestrictedVoiceAndVideoMessages: Boolean
@@ -72,6 +73,10 @@ sealed interface ExtendedPrivateChat : PrivateChat, ExtendedChatWithUsername, Ex
get() = hasPrivateForwards get() = hasPrivateForwards
} }
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(ExtendedChatSerializer.Companion::class)
sealed interface ExtendedPrivateForumChat : ExtendedPrivateChat, PrivateForumChat
sealed interface ExtendedPublicChat : ExtendedChat, PublicChat, ExtendedNonBotChat { sealed interface ExtendedPublicChat : ExtendedChat, PublicChat, ExtendedNonBotChat {
val description: String val description: String
val inviteLink: String? val inviteLink: String?
@@ -81,6 +86,9 @@ sealed interface ExtendedPublicChat : ExtendedChat, PublicChat, ExtendedNonBotCh
val membersHidden: Boolean val membersHidden: Boolean
val availableReactions: List<Reaction>? val availableReactions: List<Reaction>?
val newMembersSeeHistory: Boolean val newMembersSeeHistory: Boolean
val rating: UserRating?
val paidMessageStarCount: Int?
val uniqueGiftColors: UniqueGiftColors?
} }
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@@ -112,7 +120,7 @@ sealed interface ExtendedSupergroupChat : SupergroupChat, ExtendedGroupChat, Ext
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(ExtendedChatSerializer.Companion::class) @Serializable(ExtendedChatSerializer.Companion::class)
sealed interface ExtendedForumChat : ExtendedSupergroupChat, ForumChat sealed interface ExtendedForumChat : ExtendedSupergroupChat, SupergroupForumChat
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(PreviewChatSerializer::class) @Serializable(PreviewChatSerializer::class)

View File

@@ -33,6 +33,20 @@ data class PrivateChatImpl(
@SerialName(lastNameField) @SerialName(lastNameField)
override val lastName: String = "" override val lastName: String = ""
) : PreviewPrivateChat ) : PreviewPrivateChat
@Serializable
@RiskFeature("This class is a subject of changes. It is better to use PrivateChat due")
data class PrivateForumChatImpl(
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@SerialName(idField)
override val id: UserId,
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@SerialName(usernameField)
override val username: Username? = null,
@SerialName(firstNameField)
override val firstName: String = "",
@SerialName(lastNameField)
override val lastName: String = ""
) : PreviewPrivateForumChat
@Serializable @Serializable
@RiskFeature("This class is a subject of changes. It is better to use PrivateChat due") @RiskFeature("This class is a subject of changes. It is better to use PrivateChat due")
@@ -115,7 +129,7 @@ sealed class Bot : User()
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(UserSerializer::class) @Serializable(UserSerializer::class)
sealed class PreviewBot : PreviewUser() sealed class PreviewBot : PrivateChat, PreviewChat, User()
@Serializable @Serializable
data class CommonBot( data class CommonBot(
@@ -129,6 +143,8 @@ data class CommonBot(
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@SerialName(usernameField) @SerialName(usernameField)
override val username: Username? = null, override val username: Username? = null,
@SerialName(hasTopicsEnabledField)
val hasTopicsEnabled: Boolean = false,
) : PreviewBot() { ) : PreviewBot() {
@SerialName(isBotField) @SerialName(isBotField)
private val isBot = true private val isBot = true

View File

@@ -11,7 +11,11 @@ sealed interface PreviewUsernameChat : PreviewChat, UsernameChat
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(PreviewChatSerializer::class) @Serializable(PreviewChatSerializer::class)
sealed interface PreviewPrivateChat : PreviewUsernameChat, PrivateChat sealed interface PreviewPrivateChat : PreviewUsernameChat, PrivateUserChat
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(PreviewChatSerializer::class)
sealed interface PreviewPrivateForumChat : PreviewPrivateChat, PrivateForumChat
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(PreviewChatSerializer::class) @Serializable(PreviewChatSerializer::class)
@@ -39,7 +43,7 @@ sealed interface PreviewSupergroupChat : PreviewGroupChat, PreviewSuperPublicCha
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(PreviewChatSerializer::class) @Serializable(PreviewChatSerializer::class)
sealed interface PreviewForumChat : PreviewSupergroupChat, ForumChat sealed interface PreviewForumChat : PreviewSupergroupChat, SupergroupForumChat
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(PreviewChatSerializer::class) @Serializable(PreviewChatSerializer::class)

View File

@@ -0,0 +1,14 @@
package dev.inmo.tgbotapi.types.chat
import dev.inmo.tgbotapi.types.countField
import dev.inmo.tgbotapi.types.ratingField
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class UserRating(
@SerialName(countField)
val count: Int,
@SerialName(ratingField)
val rating: Double
)

View File

@@ -3,8 +3,10 @@ package dev.inmo.tgbotapi.types.checklists
import dev.inmo.micro_utils.common.Warning import dev.inmo.micro_utils.common.Warning
import dev.inmo.tgbotapi.abstracts.TextedInput import dev.inmo.tgbotapi.abstracts.TextedInput
import dev.inmo.tgbotapi.types.TelegramDate import dev.inmo.tgbotapi.types.TelegramDate
import dev.inmo.tgbotapi.types.chat.PreviewChat
import dev.inmo.tgbotapi.types.chat.PreviewUser import dev.inmo.tgbotapi.types.chat.PreviewUser
import dev.inmo.tgbotapi.types.completedByUserField import dev.inmo.tgbotapi.types.completedByUserField
import dev.inmo.tgbotapi.types.completedByChatField
import dev.inmo.tgbotapi.types.completionDateField import dev.inmo.tgbotapi.types.completionDateField
import dev.inmo.tgbotapi.types.idField import dev.inmo.tgbotapi.types.idField
import dev.inmo.tgbotapi.types.message.ParseMode import dev.inmo.tgbotapi.types.message.ParseMode
@@ -130,6 +132,8 @@ sealed interface ChecklistTask : TextedInput {
override val id: ChecklistTaskId, override val id: ChecklistTaskId,
@SerialName(completedByUserField) @SerialName(completedByUserField)
override val completedByUser: PreviewUser, override val completedByUser: PreviewUser,
@SerialName(completedByChatField)
val completedByChat: PreviewChat? = null,
@SerialName(completionDateField) @SerialName(completionDateField)
override val completionDate: TelegramDate, override val completionDate: TelegramDate,
@SerialName(textEntitiesField) @SerialName(textEntitiesField)
@@ -145,10 +149,12 @@ sealed interface ChecklistTask : TextedInput {
id: ChecklistTaskId, id: ChecklistTaskId,
text: String, text: String,
completedByUser: PreviewUser, completedByUser: PreviewUser,
completedByChat: PreviewChat? = null,
completionDate: TelegramDate, completionDate: TelegramDate,
): this( ): this(
id, id,
completedByUser, completedByUser,
completedByChat,
completionDate, completionDate,
listOf( listOf(
RegularTextSource(text) RegularTextSource(text)
@@ -176,6 +182,8 @@ sealed interface ChecklistTask : TextedInput {
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@SerialName(completedByUserField) @SerialName(completedByUserField)
val completedByUser: PreviewUser? = null, val completedByUser: PreviewUser? = null,
@SerialName(completedByChatField)
val completedByChat: PreviewChat? = null,
@SerialName(completionDateField) @SerialName(completionDateField)
val completionDate: TelegramDate = TelegramDate(0), // TelegramDate(0) is the default according to https://core.telegram.org/bots/api#checklisttask val completionDate: TelegramDate = TelegramDate(0), // TelegramDate(0) is the default according to https://core.telegram.org/bots/api#checklisttask
) )
@@ -190,6 +198,7 @@ sealed interface ChecklistTask : TextedInput {
raw.completedByUser != null -> Done( raw.completedByUser != null -> Done(
id = raw.id, id = raw.id,
completedByUser = raw.completedByUser, completedByUser = raw.completedByUser,
completedByChat = raw.completedByChat,
completionDate = raw.completionDate, completionDate = raw.completionDate,
textSources = raw.textSources.asTextSources(raw.text), textSources = raw.textSources.asTextSources(raw.text),
) )
@@ -207,6 +216,7 @@ sealed interface ChecklistTask : TextedInput {
id = value.id, id = value.id,
text = value.text, text = value.text,
completedByUser = value.completedByUser, completedByUser = value.completedByUser,
completedByChat = (value as? Done)?.completedByChat,
completionDate = value.completionDate ?: TelegramDate(0), completionDate = value.completionDate ?: TelegramDate(0),
textSources = value.textSources.toRawMessageEntities() textSources = value.textSources.toRawMessageEntities()
) )

View File

@@ -1,5 +1,6 @@
package dev.inmo.tgbotapi.types.gifts package dev.inmo.tgbotapi.types.gifts
import dev.inmo.tgbotapi.types.giftsFromChannelsField
import dev.inmo.tgbotapi.types.limitedGiftsField import dev.inmo.tgbotapi.types.limitedGiftsField
import dev.inmo.tgbotapi.types.premiumSubscriptionField import dev.inmo.tgbotapi.types.premiumSubscriptionField
import dev.inmo.tgbotapi.types.uniqueGiftsField import dev.inmo.tgbotapi.types.uniqueGiftsField
@@ -17,5 +18,7 @@ data class AcceptedGiftTypes(
@SerialName(uniqueGiftsField) @SerialName(uniqueGiftsField)
val uniqueGifts: Boolean = false, val uniqueGifts: Boolean = false,
@SerialName(premiumSubscriptionField) @SerialName(premiumSubscriptionField)
val premiumSubscription: Boolean = false val premiumSubscription: Boolean = false,
@SerialName(giftsFromChannelsField)
val giftsFromChannels: Boolean = false
) )

View File

@@ -4,6 +4,7 @@ import dev.inmo.tgbotapi.types.*
import dev.inmo.tgbotapi.types.chat.PreviewChat import dev.inmo.tgbotapi.types.chat.PreviewChat
import dev.inmo.tgbotapi.types.files.Sticker import dev.inmo.tgbotapi.types.files.Sticker
import dev.inmo.tgbotapi.types.gifts.unique.UniqueGiftBackdrop import dev.inmo.tgbotapi.types.gifts.unique.UniqueGiftBackdrop
import dev.inmo.tgbotapi.types.gifts.unique.UniqueGiftColors
import dev.inmo.tgbotapi.types.gifts.unique.UniqueGiftModel import dev.inmo.tgbotapi.types.gifts.unique.UniqueGiftModel
import dev.inmo.tgbotapi.types.gifts.unique.UniqueGiftSymbol import dev.inmo.tgbotapi.types.gifts.unique.UniqueGiftSymbol
import kotlinx.serialization.KSerializer import kotlinx.serialization.KSerializer
@@ -24,6 +25,12 @@ sealed interface Gift {
val totalCount: Int? val totalCount: Int?
val upgradeStarCount: Int? val upgradeStarCount: Int?
val remainingCount: Int? val remainingCount: Int?
val personalTotalCount: Int?
val personalRemainingCount: Int?
val isPremium: Boolean
val hasColors: Boolean
val background: dev.inmo.tgbotapi.types.gifts.GiftBackground?
val uniqueGiftVariantCount: Int?
@Serializable @Serializable
data class Unlimited( data class Unlimited(
@@ -37,6 +44,18 @@ sealed interface Gift {
override val upgradeStarCount: Int? = null, override val upgradeStarCount: Int? = null,
@SerialName(publisherChatField) @SerialName(publisherChatField)
override val publisherChat: PreviewChat? = null, override val publisherChat: PreviewChat? = null,
@SerialName(personalTotalCountField)
override val personalTotalCount: Int? = null,
@SerialName(personalRemainingCountField)
override val personalRemainingCount: Int? = null,
@SerialName(isPremiumField2)
override val isPremium: Boolean = false,
@SerialName(hasColorsField)
override val hasColors: Boolean = false,
@SerialName(backgroundField)
override val background: dev.inmo.tgbotapi.types.gifts.GiftBackground? = null,
@SerialName(uniqueGiftVariantCountField)
override val uniqueGiftVariantCount: Int? = null,
) : Regular { ) : Regular {
override val totalCount: Int? override val totalCount: Int?
get() = null get() = null
@@ -60,6 +79,18 @@ sealed interface Gift {
override val upgradeStarCount: Int? = null, override val upgradeStarCount: Int? = null,
@SerialName(publisherChatField) @SerialName(publisherChatField)
override val publisherChat: PreviewChat? = null, override val publisherChat: PreviewChat? = null,
@SerialName(personalTotalCountField)
override val personalTotalCount: Int? = null,
@SerialName(personalRemainingCountField)
override val personalRemainingCount: Int? = null,
@SerialName(isPremiumField2)
override val isPremium: Boolean = false,
@SerialName(hasColorsField)
override val hasColors: Boolean = false,
@SerialName(backgroundField)
override val background: dev.inmo.tgbotapi.types.gifts.GiftBackground? = null,
@SerialName(uniqueGiftVariantCountField)
override val uniqueGiftVariantCount: Int? = null,
) : Regular ) : Regular
companion object : KSerializer<Regular> { companion object : KSerializer<Regular> {
@@ -73,6 +104,12 @@ sealed interface Gift {
val remaining_count: Int? = null, val remaining_count: Int? = null,
val upgrade_star_count: Int? = null, val upgrade_star_count: Int? = null,
val publisher_chat: PreviewChat? = null, val publisher_chat: PreviewChat? = null,
val personal_total_count: Int? = null,
val personal_remaining_count: Int? = null,
val is_premium: Boolean = false,
val has_colors: Boolean = false,
val background: dev.inmo.tgbotapi.types.gifts.GiftBackground? = null,
val unique_gift_variant_count: Int? = null,
) )
override val descriptor: SerialDescriptor override val descriptor: SerialDescriptor
@@ -89,7 +126,13 @@ sealed interface Gift {
totalCount = surrogate.total_count, totalCount = surrogate.total_count,
remainingCount = surrogate.remaining_count, remainingCount = surrogate.remaining_count,
upgradeStarCount = surrogate.upgrade_star_count, upgradeStarCount = surrogate.upgrade_star_count,
publisherChat = surrogate.publisher_chat publisherChat = surrogate.publisher_chat,
personalTotalCount = surrogate.personal_total_count,
personalRemainingCount = surrogate.personal_remaining_count,
isPremium = surrogate.is_premium,
hasColors = surrogate.has_colors,
background = surrogate.background,
uniqueGiftVariantCount = surrogate.unique_gift_variant_count
) )
} else { } else {
Unlimited( Unlimited(
@@ -98,6 +141,12 @@ sealed interface Gift {
starCount = surrogate.star_count, starCount = surrogate.star_count,
upgradeStarCount = surrogate.upgrade_star_count, upgradeStarCount = surrogate.upgrade_star_count,
publisherChat = surrogate.publisher_chat, publisherChat = surrogate.publisher_chat,
personalTotalCount = surrogate.personal_total_count,
personalRemainingCount = surrogate.personal_remaining_count,
isPremium = surrogate.is_premium,
hasColors = surrogate.has_colors,
background = surrogate.background,
uniqueGiftVariantCount = surrogate.unique_gift_variant_count
) )
} }
} }
@@ -110,7 +159,13 @@ sealed interface Gift {
total_count = value.totalCount, total_count = value.totalCount,
remaining_count = value.remainingCount, remaining_count = value.remainingCount,
upgrade_star_count = value.upgradeStarCount, upgrade_star_count = value.upgradeStarCount,
publisher_chat = value.publisherChat publisher_chat = value.publisherChat,
personal_total_count = value.personalTotalCount,
personal_remaining_count = value.personalRemainingCount,
is_premium = value.isPremium,
has_colors = value.hasColors,
background = value.background,
unique_gift_variant_count = value.uniqueGiftVariantCount
) )
RegularGiftSurrogate.serializer().serialize(encoder, surrogate) RegularGiftSurrogate.serializer().serialize(encoder, surrogate)
} }
@@ -119,6 +174,8 @@ sealed interface Gift {
@Serializable @Serializable
data class Unique( data class Unique(
@SerialName(giftIdField)
val id: GiftId? = null,
@SerialName(baseNameField) @SerialName(baseNameField)
val baseName: String, val baseName: String,
@SerialName(nameField) @SerialName(nameField)
@@ -132,7 +189,13 @@ sealed interface Gift {
@SerialName(backdropField) @SerialName(backdropField)
val backdrop: UniqueGiftBackdrop, val backdrop: UniqueGiftBackdrop,
@SerialName(publisherChatField) @SerialName(publisherChatField)
override val publisherChat: PreviewChat? = null override val publisherChat: PreviewChat? = null,
@SerialName(isFromBlockchainField)
val isFromBlockchain: Boolean = false,
@SerialName(isPremiumField2)
val isPremium: Boolean = false,
@SerialName(colorsField)
val colors: UniqueGiftColors = null
) : Gift ) : Gift
companion object : KSerializer<Gift> { companion object : KSerializer<Gift> {
@@ -146,6 +209,12 @@ sealed interface Gift {
val total_count: Int? = null, val total_count: Int? = null,
val remaining_count: Int? = null, val remaining_count: Int? = null,
val upgrade_star_count: Int? = null, val upgrade_star_count: Int? = null,
val personal_total_count: Int? = null,
val personal_remaining_count: Int? = null,
val is_premium: Boolean = false,
val has_colors: Boolean = false,
val background: dev.inmo.tgbotapi.types.gifts.GiftBackground? = null,
val unique_gift_variant_count: Int? = null,
// unique gift fields // unique gift fields
val base_name: String? = null, val base_name: String? = null,
val name: String? = null, val name: String? = null,
@@ -153,6 +222,8 @@ sealed interface Gift {
val model: UniqueGiftModel? = null, val model: UniqueGiftModel? = null,
val symbol: UniqueGiftSymbol? = null, val symbol: UniqueGiftSymbol? = null,
val backdrop: UniqueGiftBackdrop? = null, val backdrop: UniqueGiftBackdrop? = null,
val is_from_blockchain: Boolean = false,
val colors: dev.inmo.tgbotapi.types.gifts.unique.UniqueGiftColors? = null,
val publisher_chat: PreviewChat? = null, val publisher_chat: PreviewChat? = null,
) )
@@ -164,13 +235,17 @@ sealed interface Gift {
return if (surrogate.base_name != null && surrogate.name != null && surrogate.number != null && surrogate.model != null && surrogate.symbol != null && surrogate.backdrop != null) { return if (surrogate.base_name != null && surrogate.name != null && surrogate.number != null && surrogate.model != null && surrogate.symbol != null && surrogate.backdrop != null) {
Unique( Unique(
id = surrogate.id,
baseName = surrogate.base_name, baseName = surrogate.base_name,
name = surrogate.name, name = surrogate.name,
number = surrogate.number, number = surrogate.number,
model = surrogate.model, model = surrogate.model,
symbol = surrogate.symbol, symbol = surrogate.symbol,
backdrop = surrogate.backdrop, backdrop = surrogate.backdrop,
publisherChat = surrogate.publisher_chat publisherChat = surrogate.publisher_chat,
isFromBlockchain = surrogate.is_from_blockchain,
isPremium = surrogate.is_premium,
colors = surrogate.colors
) )
} else { } else {
decoder.decodeSerializableValue(Regular.serializer()) decoder.decodeSerializableValue(Regular.serializer())
@@ -188,12 +263,21 @@ sealed interface Gift {
total_count = (value as? Regular.Limited)?.totalCount, total_count = (value as? Regular.Limited)?.totalCount,
remaining_count = (value as? Regular.Limited)?.remainingCount, remaining_count = (value as? Regular.Limited)?.remainingCount,
upgrade_star_count = (value as? Regular)?.upgradeStarCount, upgrade_star_count = (value as? Regular)?.upgradeStarCount,
personal_total_count = (value as? Regular)?.personalTotalCount,
personal_remaining_count = (value as? Regular)?.personalRemainingCount,
is_premium = (value as? Regular)?.isPremium ?: (value as? Unique)?.isPremium ?: false,
has_colors = (value as? Regular)?.hasColors ?: false,
background = (value as? Regular)?.background,
unique_gift_variant_count = (value as? Regular)?.uniqueGiftVariantCount,
base_name = (value as? Unique)?.baseName, base_name = (value as? Unique)?.baseName,
name = (value as? Unique)?.name, name = (value as? Unique)?.name,
number = (value as? Unique)?.number, number = (value as? Unique)?.number,
model = (value as? Unique)?.model, model = (value as? Unique)?.model,
symbol = (value as? Unique)?.symbol, symbol = (value as? Unique)?.symbol,
backdrop = (value as? Unique)?.backdrop, backdrop = (value as? Unique)?.backdrop,
gift_id = (value as? Unique)?.id,
is_from_blockchain = (value as? Unique)?.isFromBlockchain ?: false,
colors = (value as? Unique)?.colors,
publisher_chat = value.publisherChat, publisher_chat = value.publisherChat,
) )
GiftSurrogate.serializer().serialize(encoder, surrogate) GiftSurrogate.serializer().serialize(encoder, surrogate)

View File

@@ -0,0 +1,13 @@
package dev.inmo.tgbotapi.types.gifts
import dev.inmo.tgbotapi.types.backgroundField
import dev.inmo.tgbotapi.types.files.PathedFile
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class GiftBackground(
@SerialName(backgroundField)
val background: PathedFile
)

View File

@@ -9,6 +9,7 @@ import dev.inmo.tgbotapi.types.message.asTextSources
import dev.inmo.tgbotapi.types.message.textsources.TextSource import dev.inmo.tgbotapi.types.message.textsources.TextSource
import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList
import dev.inmo.tgbotapi.types.message.toRawMessageEntities import dev.inmo.tgbotapi.types.message.toRawMessageEntities
import dev.inmo.tgbotapi.types.payments.abstracts.Currency
import dev.inmo.tgbotapi.utils.internal.ClassCastsIncluded import dev.inmo.tgbotapi.utils.internal.ClassCastsIncluded
import kotlinx.serialization.EncodeDefault import kotlinx.serialization.EncodeDefault
import kotlinx.serialization.KSerializer import kotlinx.serialization.KSerializer
@@ -51,6 +52,8 @@ sealed interface GiftSentOrReceived : CommonEvent {
val prepaidUpgradeStarCount: Int? val prepaidUpgradeStarCount: Int?
val canBeUpgraded: Boolean val canBeUpgraded: Boolean
val isPrivate: Boolean val isPrivate: Boolean
val isUpgradeSeparate: Boolean
val uniqueGiftNumber: Int?
@Serializable @Serializable
data class Common( data class Common(
@@ -68,6 +71,10 @@ sealed interface GiftSentOrReceived : CommonEvent {
private val entities: RawMessageEntities? = null, private val entities: RawMessageEntities? = null,
@SerialName(isPrivateField) @SerialName(isPrivateField)
override val isPrivate: Boolean = false, override val isPrivate: Boolean = false,
@SerialName(isUpgradeSeparateField)
override val isUpgradeSeparate: Boolean = false,
@SerialName(uniqueGiftNumberField)
override val uniqueGiftNumber: Int? = null,
@SerialName(nextTransferDateField) @SerialName(nextTransferDateField)
override val nextTransferDate: TelegramDate? = null override val nextTransferDate: TelegramDate? = null
) : Regular { ) : Regular {
@@ -96,6 +103,10 @@ sealed interface GiftSentOrReceived : CommonEvent {
private val entities: RawMessageEntities? = null, private val entities: RawMessageEntities? = null,
@SerialName(isPrivateField) @SerialName(isPrivateField)
override val isPrivate: Boolean = false, override val isPrivate: Boolean = false,
@SerialName(isUpgradeSeparateField)
override val isUpgradeSeparate: Boolean = false,
@SerialName(uniqueGiftNumberField)
override val uniqueGiftNumber: Int? = null,
@SerialName(nextTransferDateField) @SerialName(nextTransferDateField)
override val nextTransferDate: TelegramDate? = null override val nextTransferDate: TelegramDate? = null
) : Regular, GiftSentOrReceived.ReceivedInBusinessAccount { ) : Regular, GiftSentOrReceived.ReceivedInBusinessAccount {
@@ -123,6 +134,10 @@ sealed interface GiftSentOrReceived : CommonEvent {
val entities: RawMessageEntities? = null, val entities: RawMessageEntities? = null,
@SerialName(isPrivateField) @SerialName(isPrivateField)
val isPrivate: Boolean = false, val isPrivate: Boolean = false,
@SerialName(isUpgradeSeparateField)
val isUpgradeSeparate: Boolean = false,
@SerialName(uniqueGiftNumberField)
val uniqueGiftNumber: Int? = null,
@SerialName(nextTransferDateField) @SerialName(nextTransferDateField)
val nextTransferDate: TelegramDate? = null val nextTransferDate: TelegramDate? = null
) )
@@ -150,6 +165,8 @@ sealed interface GiftSentOrReceived : CommonEvent {
text = surrogate.text, text = surrogate.text,
entities = surrogate.entities, entities = surrogate.entities,
isPrivate = surrogate.isPrivate, isPrivate = surrogate.isPrivate,
isUpgradeSeparate = surrogate.isUpgradeSeparate,
uniqueGiftNumber = surrogate.uniqueGiftNumber,
nextTransferDate = surrogate.nextTransferDate nextTransferDate = surrogate.nextTransferDate
) )
} }
@@ -163,6 +180,8 @@ sealed interface GiftSentOrReceived : CommonEvent {
text = surrogate.text, text = surrogate.text,
entities = surrogate.entities, entities = surrogate.entities,
isPrivate = surrogate.isPrivate, isPrivate = surrogate.isPrivate,
isUpgradeSeparate = surrogate.isUpgradeSeparate,
uniqueGiftNumber = surrogate.uniqueGiftNumber,
nextTransferDate = surrogate.nextTransferDate nextTransferDate = surrogate.nextTransferDate
) )
} }
@@ -178,7 +197,9 @@ sealed interface GiftSentOrReceived : CommonEvent {
text: String? = null, text: String? = null,
textSources: TextSourcesList = emptyList(), textSources: TextSourcesList = emptyList(),
position: Int, position: Int,
isPrivate: Boolean = false isPrivate: Boolean = false,
isUpgradeSeparate: Boolean = false,
uniqueGiftNumber: Int? = null
) = ownedGiftId ?.let { ) = ownedGiftId ?.let {
ReceivedInBusinessAccount( ReceivedInBusinessAccount(
gift, gift,
@@ -188,7 +209,9 @@ sealed interface GiftSentOrReceived : CommonEvent {
canBeUpgraded, canBeUpgraded,
text, text,
textSources.toRawMessageEntities(position), textSources.toRawMessageEntities(position),
isPrivate isPrivate,
isUpgradeSeparate,
uniqueGiftNumber
) )
} ?: Common( } ?: Common(
gift, gift,
@@ -197,7 +220,9 @@ sealed interface GiftSentOrReceived : CommonEvent {
canBeUpgraded, canBeUpgraded,
text, text,
textSources.toRawMessageEntities(position), textSources.toRawMessageEntities(position),
isPrivate isPrivate,
isUpgradeSeparate,
uniqueGiftNumber
) )
} }
} }
@@ -207,7 +232,10 @@ sealed interface GiftSentOrReceived : CommonEvent {
override val gift: Gift.Unique override val gift: Gift.Unique
val origin: String? val origin: String?
val originTyped: Origin? val originTyped: Origin?
@Deprecated("Use lastResaleCurrency and lastResaleAmount instead")
val lastResaleStarCount: Int? val lastResaleStarCount: Int?
val lastResaleCurrency: String?
val lastResaleAmount: Long?
val transferStarCount: Int? val transferStarCount: Int?
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@@ -215,11 +243,15 @@ sealed interface GiftSentOrReceived : CommonEvent {
sealed interface Origin { sealed interface Origin {
val string: String val string: String
@Serializable(Origin.Companion::class) @Serializable(Origin.Companion::class)
object Upgrade : Origin { override val string: String = "upgrade" } data object Upgrade : Origin { override val string: String = "upgrade" }
@Serializable(Origin.Companion::class) @Serializable(Origin.Companion::class)
object Transfer : Origin { override val string: String = "transfer" } data object Transfer : Origin { override val string: String = "transfer" }
@Serializable(Origin.Companion::class) @Serializable(Origin.Companion::class)
object Resale : Origin { override val string: String = "resale" } data object Resale : Origin { override val string: String = "resale" }
@Serializable(Origin.Companion::class)
data object GiftedUpgrade : Origin { override val string: String = "gifted_upgrade" }
@Serializable(Origin.Companion::class)
data object Offer : Origin { override val string: String = "offer" }
@Serializable(Origin.Companion::class) @Serializable(Origin.Companion::class)
@JvmInline @JvmInline
value class Unknown(override val string: String) : Origin value class Unknown(override val string: String) : Origin
@@ -231,6 +263,8 @@ sealed interface GiftSentOrReceived : CommonEvent {
Upgrade.string -> Upgrade Upgrade.string -> Upgrade
Transfer.string -> Transfer Transfer.string -> Transfer
Resale.string -> Resale Resale.string -> Resale
GiftedUpgrade.string -> GiftedUpgrade
Offer.string -> Offer
else -> Unknown(value) else -> Unknown(value)
} }
@@ -254,8 +288,13 @@ sealed interface GiftSentOrReceived : CommonEvent {
override val gift: Gift.Unique, override val gift: Gift.Unique,
@SerialName(originField) @SerialName(originField)
override val originTyped: Origin? = null, override val originTyped: Origin? = null,
@Deprecated("Use lastResaleCurrency and lastResaleAmount instead")
@SerialName(lastResaleStarCountField) @SerialName(lastResaleStarCountField)
override val lastResaleStarCount: Int? = null, override val lastResaleStarCount: Int? = null,
@SerialName(lastResaleCurrencyField)
override val lastResaleCurrency: Currency? = null,
@SerialName(lastResaleAmountField)
override val lastResaleAmount: Long? = null,
@SerialName(transferStarCountField) @SerialName(transferStarCountField)
override val transferStarCount: Int? = null, override val transferStarCount: Int? = null,
@SerialName(nextTransferDateField) @SerialName(nextTransferDateField)
@@ -271,12 +310,16 @@ sealed interface GiftSentOrReceived : CommonEvent {
gift: Gift.Unique, gift: Gift.Unique,
origin: String?, origin: String?,
lastResaleStarCount: Int? = null, lastResaleStarCount: Int? = null,
lastResaleCurrency: Currency? = null,
lastResaleAmount: Long? = null,
transferStarCount: Int? = null, transferStarCount: Int? = null,
nextTransferDate: TelegramDate? = null nextTransferDate: TelegramDate? = null
) : this( ) : this(
gift, gift,
origin ?.let { Origin.fromString(it) }, origin ?.let { Origin.fromString(it) },
lastResaleStarCount, lastResaleStarCount,
lastResaleCurrency,
lastResaleAmount,
transferStarCount, transferStarCount,
nextTransferDate nextTransferDate
) )
@@ -290,8 +333,13 @@ sealed interface GiftSentOrReceived : CommonEvent {
override val ownedGiftId: GiftId, override val ownedGiftId: GiftId,
@SerialName(originField) @SerialName(originField)
override val originTyped: Origin? = null, override val originTyped: Origin? = null,
@Deprecated("Use lastResaleCurrency and lastResaleAmount instead")
@SerialName(lastResaleStarCountField) @SerialName(lastResaleStarCountField)
override val lastResaleStarCount: Int? = null, override val lastResaleStarCount: Int? = null,
@SerialName(lastResaleCurrencyField)
override val lastResaleCurrency: Currency? = null,
@SerialName(lastResaleAmountField)
override val lastResaleAmount: Long? = null,
@SerialName(transferStarCountField) @SerialName(transferStarCountField)
override val transferStarCount: Int? = null, override val transferStarCount: Int? = null,
@SerialName(nextTransferDateField) @SerialName(nextTransferDateField)
@@ -305,6 +353,8 @@ sealed interface GiftSentOrReceived : CommonEvent {
ownedGiftId: GiftId, ownedGiftId: GiftId,
origin: String? = null, origin: String? = null,
lastResaleStarCount: Int? = null, lastResaleStarCount: Int? = null,
lastResaleCurrency: Currency? = null,
lastResaleAmount: Long? = null,
transferStarCount: Int? = null, transferStarCount: Int? = null,
nextTransferDate: TelegramDate? = null nextTransferDate: TelegramDate? = null
) : this( ) : this(
@@ -312,6 +362,8 @@ sealed interface GiftSentOrReceived : CommonEvent {
ownedGiftId = ownedGiftId, ownedGiftId = ownedGiftId,
originTyped = origin ?.let { Origin.fromString(it) }, originTyped = origin ?.let { Origin.fromString(it) },
lastResaleStarCount = lastResaleStarCount, lastResaleStarCount = lastResaleStarCount,
lastResaleCurrency = lastResaleCurrency,
lastResaleAmount = lastResaleAmount,
transferStarCount = transferStarCount, transferStarCount = transferStarCount,
nextTransferDate = nextTransferDate nextTransferDate = nextTransferDate
) )
@@ -328,6 +380,10 @@ sealed interface GiftSentOrReceived : CommonEvent {
val origin: Origin? = null, val origin: Origin? = null,
@SerialName(lastResaleStarCountField) @SerialName(lastResaleStarCountField)
val lastResaleStarCount: Int? = null, val lastResaleStarCount: Int? = null,
@SerialName(lastResaleCurrencyField)
val lastResaleCurrency: Currency? = null,
@SerialName(lastResaleAmountField)
val lastResaleAmount: Long? = null,
@SerialName(transferStarCountField) @SerialName(transferStarCountField)
val transferStarCount: Int? = null, val transferStarCount: Int? = null,
@SerialName(nextTransferDateField) @SerialName(nextTransferDateField)
@@ -353,6 +409,8 @@ sealed interface GiftSentOrReceived : CommonEvent {
gift = surrogate.gift, gift = surrogate.gift,
originTyped = surrogate.origin, originTyped = surrogate.origin,
lastResaleStarCount = surrogate.lastResaleStarCount, lastResaleStarCount = surrogate.lastResaleStarCount,
lastResaleCurrency = surrogate.lastResaleCurrency,
lastResaleAmount = surrogate.lastResaleAmount,
transferStarCount = surrogate.transferStarCount, transferStarCount = surrogate.transferStarCount,
nextTransferDate = surrogate.nextTransferDate nextTransferDate = surrogate.nextTransferDate
) )
@@ -363,6 +421,8 @@ sealed interface GiftSentOrReceived : CommonEvent {
ownedGiftId = surrogate.ownedGiftId, ownedGiftId = surrogate.ownedGiftId,
originTyped = surrogate.origin, originTyped = surrogate.origin,
lastResaleStarCount = surrogate.lastResaleStarCount, lastResaleStarCount = surrogate.lastResaleStarCount,
lastResaleCurrency = surrogate.lastResaleCurrency,
lastResaleAmount = surrogate.lastResaleAmount,
transferStarCount = surrogate.transferStarCount, transferStarCount = surrogate.transferStarCount,
nextTransferDate = surrogate.nextTransferDate nextTransferDate = surrogate.nextTransferDate
) )

View File

@@ -0,0 +1,19 @@
package dev.inmo.tgbotapi.types.gifts.unique
import dev.inmo.tgbotapi.types.baseColorField
import dev.inmo.tgbotapi.types.linkColorField
import dev.inmo.tgbotapi.types.nameColorField
import dev.inmo.tgbotapi.utils.RGBColor
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class UniqueGiftColors(
@SerialName(nameColorField)
val nameColor: RGBColor,
@SerialName(baseColorField)
val baseColor: RGBColor,
@SerialName(linkColorField)
val linkColor: RGBColor
)

View File

@@ -3,6 +3,7 @@ package dev.inmo.tgbotapi.types.message.ChatEvents.forum
import dev.inmo.tgbotapi.types.CustomEmojiId import dev.inmo.tgbotapi.types.CustomEmojiId
import dev.inmo.tgbotapi.types.iconColorField import dev.inmo.tgbotapi.types.iconColorField
import dev.inmo.tgbotapi.types.iconCustomEmojiIdField import dev.inmo.tgbotapi.types.iconCustomEmojiIdField
import dev.inmo.tgbotapi.types.isNameImplicitField
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.ForumEvent import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.ForumEvent
import dev.inmo.tgbotapi.types.nameField import dev.inmo.tgbotapi.types.nameField
import dev.inmo.tgbotapi.utils.RGBColor import dev.inmo.tgbotapi.utils.RGBColor
@@ -16,5 +17,7 @@ data class ForumTopicCreated(
@SerialName(iconColorField) @SerialName(iconColorField)
val iconColor: RGBColor, val iconColor: RGBColor,
@SerialName(iconCustomEmojiIdField) @SerialName(iconCustomEmojiIdField)
val iconEmojiId: CustomEmojiId? = null val iconEmojiId: CustomEmojiId? = null,
@SerialName(isNameImplicitField)
val isNameImplicit: Boolean = false
) : ForumEvent ) : ForumEvent

View File

@@ -201,6 +201,7 @@ internal data class RawMessage(
// Gifts // Gifts
private val gift: GiftSentOrReceived.Regular? = null, private val gift: GiftSentOrReceived.Regular? = null,
private val unique_gift: GiftSentOrReceived.Unique? = null, private val unique_gift: GiftSentOrReceived.Unique? = null,
private val gift_upgrade_sent: GiftSentOrReceived? = null,
) { ) {
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
private val checkedFrom = from ?.takeIf { !it.isFakeTelegramUser() } private val checkedFrom = from ?.takeIf { !it.isFakeTelegramUser() }
@@ -328,6 +329,7 @@ internal data class RawMessage(
paid_message_price_changed != null -> paid_message_price_changed paid_message_price_changed != null -> paid_message_price_changed
gift != null -> gift gift != null -> gift
unique_gift != null -> unique_gift unique_gift != null -> unique_gift
gift_upgrade_sent != null -> gift_upgrade_sent
checklist_tasks_done != null -> checklist_tasks_done checklist_tasks_done != null -> checklist_tasks_done
checklist_tasks_added != null -> checklist_tasks_added checklist_tasks_added != null -> checklist_tasks_added
direct_message_price_changed != null -> direct_message_price_changed direct_message_price_changed != null -> direct_message_price_changed

View File

@@ -13,9 +13,11 @@ import dev.inmo.tgbotapi.types.chat.*
* language) * language)
*/ */
fun PrivateChat.toUser(): User = when (this) { fun PrivateChat.toUser(): User = when (this) {
is ExtendedPrivateChatImpl -> CommonUser(id, firstName, lastName, username)
is CommonUser -> this is CommonUser -> this
is CommonBot -> this is CommonBot -> this
is PrivateChatImpl -> CommonUser(id, firstName, lastName, username)
is ExtendedBot -> this is ExtendedBot -> this
is ExtendedPrivateChatImpl -> CommonUser(id, firstName, lastName, username)
is PrivateChatImpl -> CommonUser(id, firstName, lastName, username)
is ExtendedPrivateForumChatImpl -> CommonUser(id, firstName, lastName, username)
is PrivateForumChatImpl -> CommonUser(id, firstName, lastName, username)
} }

View File

@@ -1425,6 +1425,8 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt {
public static final fun extendedNonBotChatOrThrow (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/ExtendedNonBotChat; public static final fun extendedNonBotChatOrThrow (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/ExtendedNonBotChat;
public static final fun extendedPrivateChatOrNull (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/ExtendedPrivateChat; public static final fun extendedPrivateChatOrNull (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/ExtendedPrivateChat;
public static final fun extendedPrivateChatOrThrow (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/ExtendedPrivateChat; public static final fun extendedPrivateChatOrThrow (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/ExtendedPrivateChat;
public static final fun extendedPrivateForumChatOrNull (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/ExtendedPrivateForumChat;
public static final fun extendedPrivateForumChatOrThrow (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/ExtendedPrivateForumChat;
public static final fun extendedPublicChatOrNull (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/ExtendedPublicChat; public static final fun extendedPublicChatOrNull (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/ExtendedPublicChat;
public static final fun extendedPublicChatOrThrow (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/ExtendedPublicChat; public static final fun extendedPublicChatOrThrow (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/ExtendedPublicChat;
public static final fun extendedSupergroupChatOrNull (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/ExtendedSupergroupChat; public static final fun extendedSupergroupChatOrNull (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/ExtendedSupergroupChat;
@@ -1745,6 +1747,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt {
public static final fun ifExtendedGroupChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifExtendedGroupChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifExtendedNonBotChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifExtendedNonBotChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifExtendedPrivateChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifExtendedPrivateChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifExtendedPrivateForumChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifExtendedPublicChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifExtendedPublicChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifExtendedSupergroupChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifExtendedSupergroupChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifExternal (Ldev/inmo/tgbotapi/types/ReplyInfo;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifExternal (Ldev/inmo/tgbotapi/types/ReplyInfo;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
@@ -1975,6 +1978,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt {
public static final fun ifPreviewForumChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifPreviewForumChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifPreviewGroupChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifPreviewGroupChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifPreviewPrivateChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifPreviewPrivateChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifPreviewPrivateForumChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifPreviewPublicChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifPreviewPublicChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifPreviewSuperPublicChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifPreviewSuperPublicChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifPreviewSupergroupChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifPreviewSupergroupChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
@@ -1986,6 +1990,8 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt {
public static final fun ifPrivateContentMessage (Ldev/inmo/tgbotapi/types/message/abstracts/Message;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifPrivateContentMessage (Ldev/inmo/tgbotapi/types/message/abstracts/Message;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifPrivateEvent (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifPrivateEvent (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifPrivateEventMessage (Ldev/inmo/tgbotapi/types/message/abstracts/Message;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifPrivateEventMessage (Ldev/inmo/tgbotapi/types/message/abstracts/Message;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifPrivateForumChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifPrivateUserChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifProximityAlertTriggered (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifProximityAlertTriggered (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifPublicChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifPublicChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifPublicChatEvent (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifPublicChatEvent (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
@@ -2053,6 +2059,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt {
public static final fun ifSupergroupEvent (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifSupergroupEvent (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifSupergroupEventMessage (Ldev/inmo/tgbotapi/abstracts/OptionallyWithUser;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifSupergroupEventMessage (Ldev/inmo/tgbotapi/abstracts/OptionallyWithUser;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifSupergroupEventMessage (Ldev/inmo/tgbotapi/types/message/abstracts/Message;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifSupergroupEventMessage (Ldev/inmo/tgbotapi/types/message/abstracts/Message;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifSupergroupForumChat (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifSwitchInlineQueryChosenChatInlineKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifSwitchInlineQueryChosenChatInlineKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifSwitchInlineQueryCurrentChatInlineKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifSwitchInlineQueryCurrentChatInlineKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
public static final fun ifSwitchInlineQueryInlineKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifSwitchInlineQueryInlineKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
@@ -2480,6 +2487,8 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt {
public static final fun previewGroupChatOrThrow (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/PreviewGroupChat; public static final fun previewGroupChatOrThrow (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/PreviewGroupChat;
public static final fun previewPrivateChatOrNull (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/PreviewPrivateChat; public static final fun previewPrivateChatOrNull (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/PreviewPrivateChat;
public static final fun previewPrivateChatOrThrow (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/PreviewPrivateChat; public static final fun previewPrivateChatOrThrow (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/PreviewPrivateChat;
public static final fun previewPrivateForumChatOrNull (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/PreviewPrivateForumChat;
public static final fun previewPrivateForumChatOrThrow (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/PreviewPrivateForumChat;
public static final fun previewPublicChatOrNull (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/PreviewPublicChat; public static final fun previewPublicChatOrNull (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/PreviewPublicChat;
public static final fun previewPublicChatOrThrow (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/PreviewPublicChat; public static final fun previewPublicChatOrThrow (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/PreviewPublicChat;
public static final fun previewSuperPublicChatOrNull (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/PreviewSuperPublicChat; public static final fun previewSuperPublicChatOrNull (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/PreviewSuperPublicChat;
@@ -2502,6 +2511,10 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt {
public static final fun privateEventMessageOrThrow (Ldev/inmo/tgbotapi/types/message/abstracts/Message;)Ldev/inmo/tgbotapi/types/message/PrivateEventMessage; public static final fun privateEventMessageOrThrow (Ldev/inmo/tgbotapi/types/message/abstracts/Message;)Ldev/inmo/tgbotapi/types/message/PrivateEventMessage;
public static final fun privateEventOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/PrivateEvent; public static final fun privateEventOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/PrivateEvent;
public static final fun privateEventOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/PrivateEvent; public static final fun privateEventOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/PrivateEvent;
public static final fun privateForumChatOrNull (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/PrivateForumChat;
public static final fun privateForumChatOrThrow (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/PrivateForumChat;
public static final fun privateUserChatOrNull (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/PrivateUserChat;
public static final fun privateUserChatOrThrow (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/PrivateUserChat;
public static final fun proximityAlertTriggeredOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/ChatEvents/ProximityAlertTriggered; public static final fun proximityAlertTriggeredOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/ChatEvents/ProximityAlertTriggered;
public static final fun proximityAlertTriggeredOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/ChatEvents/ProximityAlertTriggered; public static final fun proximityAlertTriggeredOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/ChatEvents/ProximityAlertTriggered;
public static final fun publicChatEventOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/PublicChatEvent; public static final fun publicChatEventOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/PublicChatEvent;
@@ -2636,6 +2649,8 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt {
public static final fun supergroupEventMessageOrThrow (Ldev/inmo/tgbotapi/types/message/abstracts/Message;)Ldev/inmo/tgbotapi/types/message/abstracts/SupergroupEventMessage; public static final fun supergroupEventMessageOrThrow (Ldev/inmo/tgbotapi/types/message/abstracts/Message;)Ldev/inmo/tgbotapi/types/message/abstracts/SupergroupEventMessage;
public static final fun supergroupEventOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/SupergroupEvent; public static final fun supergroupEventOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/SupergroupEvent;
public static final fun supergroupEventOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/SupergroupEvent; public static final fun supergroupEventOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/SupergroupEvent;
public static final fun supergroupForumChatOrNull (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/SupergroupForumChat;
public static final fun supergroupForumChatOrThrow (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/SupergroupForumChat;
public static final fun switchInlineQueryChosenChatInlineKeyboardButtonOrNull (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;)Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/SwitchInlineQueryChosenChatInlineKeyboardButton; public static final fun switchInlineQueryChosenChatInlineKeyboardButtonOrNull (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;)Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/SwitchInlineQueryChosenChatInlineKeyboardButton;
public static final fun switchInlineQueryChosenChatInlineKeyboardButtonOrThrow (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;)Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/SwitchInlineQueryChosenChatInlineKeyboardButton; public static final fun switchInlineQueryChosenChatInlineKeyboardButtonOrThrow (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;)Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/SwitchInlineQueryChosenChatInlineKeyboardButton;
public static final fun switchInlineQueryCurrentChatInlineKeyboardButtonOrNull (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;)Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/SwitchInlineQueryCurrentChatInlineKeyboardButton; public static final fun switchInlineQueryCurrentChatInlineKeyboardButtonOrNull (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;)Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/SwitchInlineQueryCurrentChatInlineKeyboardButton;

View File

@@ -142,6 +142,7 @@ import dev.inmo.tgbotapi.types.chat.ExtendedForumChat
import dev.inmo.tgbotapi.types.chat.ExtendedGroupChat import dev.inmo.tgbotapi.types.chat.ExtendedGroupChat
import dev.inmo.tgbotapi.types.chat.ExtendedNonBotChat import dev.inmo.tgbotapi.types.chat.ExtendedNonBotChat
import dev.inmo.tgbotapi.types.chat.ExtendedPrivateChat import dev.inmo.tgbotapi.types.chat.ExtendedPrivateChat
import dev.inmo.tgbotapi.types.chat.ExtendedPrivateForumChat
import dev.inmo.tgbotapi.types.chat.ExtendedPublicChat import dev.inmo.tgbotapi.types.chat.ExtendedPublicChat
import dev.inmo.tgbotapi.types.chat.ExtendedSupergroupChat import dev.inmo.tgbotapi.types.chat.ExtendedSupergroupChat
import dev.inmo.tgbotapi.types.chat.ForumChat import dev.inmo.tgbotapi.types.chat.ForumChat
@@ -155,15 +156,19 @@ import dev.inmo.tgbotapi.types.chat.PreviewChat
import dev.inmo.tgbotapi.types.chat.PreviewForumChat import dev.inmo.tgbotapi.types.chat.PreviewForumChat
import dev.inmo.tgbotapi.types.chat.PreviewGroupChat import dev.inmo.tgbotapi.types.chat.PreviewGroupChat
import dev.inmo.tgbotapi.types.chat.PreviewPrivateChat import dev.inmo.tgbotapi.types.chat.PreviewPrivateChat
import dev.inmo.tgbotapi.types.chat.PreviewPrivateForumChat
import dev.inmo.tgbotapi.types.chat.PreviewPublicChat import dev.inmo.tgbotapi.types.chat.PreviewPublicChat
import dev.inmo.tgbotapi.types.chat.PreviewSuperPublicChat import dev.inmo.tgbotapi.types.chat.PreviewSuperPublicChat
import dev.inmo.tgbotapi.types.chat.PreviewSupergroupChat import dev.inmo.tgbotapi.types.chat.PreviewSupergroupChat
import dev.inmo.tgbotapi.types.chat.PreviewUser import dev.inmo.tgbotapi.types.chat.PreviewUser
import dev.inmo.tgbotapi.types.chat.PreviewUsernameChat import dev.inmo.tgbotapi.types.chat.PreviewUsernameChat
import dev.inmo.tgbotapi.types.chat.PrivateChat import dev.inmo.tgbotapi.types.chat.PrivateChat
import dev.inmo.tgbotapi.types.chat.PrivateForumChat
import dev.inmo.tgbotapi.types.chat.PrivateUserChat
import dev.inmo.tgbotapi.types.chat.PublicChat import dev.inmo.tgbotapi.types.chat.PublicChat
import dev.inmo.tgbotapi.types.chat.SuperPublicChat import dev.inmo.tgbotapi.types.chat.SuperPublicChat
import dev.inmo.tgbotapi.types.chat.SupergroupChat import dev.inmo.tgbotapi.types.chat.SupergroupChat
import dev.inmo.tgbotapi.types.chat.SupergroupForumChat
import dev.inmo.tgbotapi.types.chat.UnknownChatType import dev.inmo.tgbotapi.types.chat.UnknownChatType
import dev.inmo.tgbotapi.types.chat.UnknownExtendedChat import dev.inmo.tgbotapi.types.chat.UnknownExtendedChat
import dev.inmo.tgbotapi.types.chat.User import dev.inmo.tgbotapi.types.chat.User
@@ -1330,6 +1335,12 @@ public inline fun Chat.extendedPrivateChatOrThrow(): ExtendedPrivateChat = this
public inline fun <T> Chat.ifExtendedPrivateChat(block: (ExtendedPrivateChat) -> T): T? = extendedPrivateChatOrNull() ?.let(block) public inline fun <T> Chat.ifExtendedPrivateChat(block: (ExtendedPrivateChat) -> T): T? = extendedPrivateChatOrNull() ?.let(block)
public inline fun Chat.extendedPrivateForumChatOrNull(): ExtendedPrivateForumChat? = this as? dev.inmo.tgbotapi.types.chat.ExtendedPrivateForumChat
public inline fun Chat.extendedPrivateForumChatOrThrow(): ExtendedPrivateForumChat = this as dev.inmo.tgbotapi.types.chat.ExtendedPrivateForumChat
public inline fun <T> Chat.ifExtendedPrivateForumChat(block: (ExtendedPrivateForumChat) -> T): T? = extendedPrivateForumChatOrNull() ?.let(block)
public inline fun Chat.extendedPublicChatOrNull(): ExtendedPublicChat? = this as? dev.inmo.tgbotapi.types.chat.ExtendedPublicChat public inline fun Chat.extendedPublicChatOrNull(): ExtendedPublicChat? = this as? dev.inmo.tgbotapi.types.chat.ExtendedPublicChat
public inline fun Chat.extendedPublicChatOrThrow(): ExtendedPublicChat = this as dev.inmo.tgbotapi.types.chat.ExtendedPublicChat public inline fun Chat.extendedPublicChatOrThrow(): ExtendedPublicChat = this as dev.inmo.tgbotapi.types.chat.ExtendedPublicChat
@@ -1420,6 +1431,18 @@ public inline fun Chat.privateChatOrThrow(): PrivateChat = this as dev.inmo.tgbo
public inline fun <T> Chat.ifPrivateChat(block: (PrivateChat) -> T): T? = privateChatOrNull() ?.let(block) public inline fun <T> Chat.ifPrivateChat(block: (PrivateChat) -> T): T? = privateChatOrNull() ?.let(block)
public inline fun Chat.privateUserChatOrNull(): PrivateUserChat? = this as? dev.inmo.tgbotapi.types.chat.PrivateUserChat
public inline fun Chat.privateUserChatOrThrow(): PrivateUserChat = this as dev.inmo.tgbotapi.types.chat.PrivateUserChat
public inline fun <T> Chat.ifPrivateUserChat(block: (PrivateUserChat) -> T): T? = privateUserChatOrNull() ?.let(block)
public inline fun Chat.privateForumChatOrNull(): PrivateForumChat? = this as? dev.inmo.tgbotapi.types.chat.PrivateForumChat
public inline fun Chat.privateForumChatOrThrow(): PrivateForumChat = this as dev.inmo.tgbotapi.types.chat.PrivateForumChat
public inline fun <T> Chat.ifPrivateForumChat(block: (PrivateForumChat) -> T): T? = privateForumChatOrNull() ?.let(block)
public inline fun Chat.businessChatOrNull(): BusinessChat? = this as? dev.inmo.tgbotapi.types.chat.BusinessChat public inline fun Chat.businessChatOrNull(): BusinessChat? = this as? dev.inmo.tgbotapi.types.chat.BusinessChat
public inline fun Chat.businessChatOrThrow(): BusinessChat = this as dev.inmo.tgbotapi.types.chat.BusinessChat public inline fun Chat.businessChatOrThrow(): BusinessChat = this as dev.inmo.tgbotapi.types.chat.BusinessChat
@@ -1462,6 +1485,12 @@ public inline fun Chat.forumChatOrThrow(): ForumChat = this as dev.inmo.tgbotapi
public inline fun <T> Chat.ifForumChat(block: (ForumChat) -> T): T? = forumChatOrNull() ?.let(block) public inline fun <T> Chat.ifForumChat(block: (ForumChat) -> T): T? = forumChatOrNull() ?.let(block)
public inline fun Chat.supergroupForumChatOrNull(): SupergroupForumChat? = this as? dev.inmo.tgbotapi.types.chat.SupergroupForumChat
public inline fun Chat.supergroupForumChatOrThrow(): SupergroupForumChat = this as dev.inmo.tgbotapi.types.chat.SupergroupForumChat
public inline fun <T> Chat.ifSupergroupForumChat(block: (SupergroupForumChat) -> T): T? = supergroupForumChatOrNull() ?.let(block)
public inline fun Chat.channelDirectMessagesChatOrNull(): ChannelDirectMessagesChat? = this as? dev.inmo.tgbotapi.types.chat.ChannelDirectMessagesChat public inline fun Chat.channelDirectMessagesChatOrNull(): ChannelDirectMessagesChat? = this as? dev.inmo.tgbotapi.types.chat.ChannelDirectMessagesChat
public inline fun Chat.channelDirectMessagesChatOrThrow(): ChannelDirectMessagesChat = this as dev.inmo.tgbotapi.types.chat.ChannelDirectMessagesChat public inline fun Chat.channelDirectMessagesChatOrThrow(): ChannelDirectMessagesChat = this as dev.inmo.tgbotapi.types.chat.ChannelDirectMessagesChat
@@ -1510,6 +1539,12 @@ public inline fun Chat.previewPrivateChatOrThrow(): PreviewPrivateChat = this as
public inline fun <T> Chat.ifPreviewPrivateChat(block: (PreviewPrivateChat) -> T): T? = previewPrivateChatOrNull() ?.let(block) public inline fun <T> Chat.ifPreviewPrivateChat(block: (PreviewPrivateChat) -> T): T? = previewPrivateChatOrNull() ?.let(block)
public inline fun Chat.previewPrivateForumChatOrNull(): PreviewPrivateForumChat? = this as? dev.inmo.tgbotapi.types.chat.PreviewPrivateForumChat
public inline fun Chat.previewPrivateForumChatOrThrow(): PreviewPrivateForumChat = this as dev.inmo.tgbotapi.types.chat.PreviewPrivateForumChat
public inline fun <T> Chat.ifPreviewPrivateForumChat(block: (PreviewPrivateForumChat) -> T): T? = previewPrivateForumChatOrNull() ?.let(block)
public inline fun Chat.previewBusinessChatOrNull(): PreviewBusinessChat? = this as? dev.inmo.tgbotapi.types.chat.PreviewBusinessChat public inline fun Chat.previewBusinessChatOrNull(): PreviewBusinessChat? = this as? dev.inmo.tgbotapi.types.chat.PreviewBusinessChat
public inline fun Chat.previewBusinessChatOrThrow(): PreviewBusinessChat = this as dev.inmo.tgbotapi.types.chat.PreviewBusinessChat public inline fun Chat.previewBusinessChatOrThrow(): PreviewBusinessChat = this as dev.inmo.tgbotapi.types.chat.PreviewBusinessChat