diff --git a/submodules/TelegramCore/Sources/ApiUtils/TelegramUser.swift b/submodules/TelegramCore/Sources/ApiUtils/TelegramUser.swift index 7dc05dbdee..e19c5f723f 100644 --- a/submodules/TelegramCore/Sources/ApiUtils/TelegramUser.swift +++ b/submodules/TelegramCore/Sources/ApiUtils/TelegramUser.swift @@ -128,6 +128,9 @@ extension TelegramUser { if (flags2 & (1 << 17)) != 0 { botFlags.insert(.forumManagedByUser) } + if (flags2 & (1 << 18)) != 0 { + botFlags.insert(.canManageBots) + } botInfo = BotUserInfo(flags: botFlags, inlinePlaceholder: botInlinePlaceholder) } diff --git a/submodules/TelegramCore/Sources/SyncCore/SyncCore_TelegramUser.swift b/submodules/TelegramCore/Sources/SyncCore/SyncCore_TelegramUser.swift index be2637e7d4..bcc02ef022 100644 --- a/submodules/TelegramCore/Sources/SyncCore/SyncCore_TelegramUser.swift +++ b/submodules/TelegramCore/Sources/SyncCore/SyncCore_TelegramUser.swift @@ -44,6 +44,7 @@ public struct BotUserInfoFlags: OptionSet { public static let hasWebApp = BotUserInfoFlags(rawValue: (1 << 7)) public static let hasForum = BotUserInfoFlags(rawValue: (1 << 8)) public static let forumManagedByUser = BotUserInfoFlags(rawValue: (1 << 9)) + public static let canManageBots = BotUserInfoFlags(rawValue: (1 << 10)) } public struct BotUserInfo: PostboxCoding, Equatable { diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Peers/AddPeerMember.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/AddPeerMember.swift index 1412c0c9ea..a1a5efa82f 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Peers/AddPeerMember.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/AddPeerMember.swift @@ -388,6 +388,7 @@ func _internal_sendBotRequestedPeer(account: Account, peerId: PeerId, messageId: public enum CreateBotError { case generic case occupied + case limitExceeded } func _internal_createBot(account: Account, name: String, username: String, managerPeerId: PeerId, viaDeeplink: Bool) -> Signal { @@ -410,6 +411,8 @@ func _internal_createBot(account: Account, name: String, username: String, manag |> mapError { error -> CreateBotError in if error.errorDescription == "USERNAME_OCCUPIED" { return .occupied + } else if error.errorDescription == "BOT_CREATE_LIMIT_EXCEEDED" { + return .limitExceeded } else { return .generic }