From ac9098839d721ad683e0845deac86d34cc201542 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Fri, 9 Feb 2024 19:46:20 +0400 Subject: [PATCH] Update API --- .../Sources/ChannelAdminController.swift | 1 + submodules/TelegramApi/Sources/Api0.swift | 2 +- submodules/TelegramApi/Sources/Api10.swift | 18 +++++++------- .../StandaloneSendMessage.swift | 24 +++++++++---------- .../Sources/State/PendingMessageManager.swift | 20 ++++++++-------- .../SyncCore_TelegramChatAdminRights.swift | 5 +++- 6 files changed, 37 insertions(+), 33 deletions(-) diff --git a/submodules/PeerInfoUI/Sources/ChannelAdminController.swift b/submodules/PeerInfoUI/Sources/ChannelAdminController.swift index 9bb04aa507..42ef265d82 100644 --- a/submodules/PeerInfoUI/Sources/ChannelAdminController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelAdminController.swift @@ -677,6 +677,7 @@ private func channelAdminControllerEntries(presentationData: PresentationData, s .direct(.canBanUsers), .direct(.canInviteUsers), .direct(.canPinMessages), + .sub(.stories, storiesRelatedFlags), .direct(.canManageCalls), .direct(.canBeAnonymous), .direct(.canAddAdmins) diff --git a/submodules/TelegramApi/Sources/Api0.swift b/submodules/TelegramApi/Sources/Api0.swift index be8ecd8eb8..90ff7307ba 100644 --- a/submodules/TelegramApi/Sources/Api0.swift +++ b/submodules/TelegramApi/Sources/Api0.swift @@ -397,7 +397,7 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = { dict[195371015] = { return Api.InputPrivacyRule.parse_inputPrivacyValueDisallowContacts($0) } dict[-1877932953] = { return Api.InputPrivacyRule.parse_inputPrivacyValueDisallowUsers($0) } dict[583071445] = { return Api.InputReplyTo.parse_inputReplyToMessage($0) } - dict[363917955] = { return Api.InputReplyTo.parse_inputReplyToStory($0) } + dict[1484862010] = { return Api.InputReplyTo.parse_inputReplyToStory($0) } dict[1399317950] = { return Api.InputSecureFile.parse_inputSecureFile($0) } dict[859091184] = { return Api.InputSecureFile.parse_inputSecureFileUploaded($0) } dict[-618540889] = { return Api.InputSecureValue.parse_inputSecureValue($0) } diff --git a/submodules/TelegramApi/Sources/Api10.swift b/submodules/TelegramApi/Sources/Api10.swift index 1335731228..7249151a22 100644 --- a/submodules/TelegramApi/Sources/Api10.swift +++ b/submodules/TelegramApi/Sources/Api10.swift @@ -1,7 +1,7 @@ public extension Api { indirect enum InputReplyTo: TypeConstructorDescription { case inputReplyToMessage(flags: Int32, replyToMsgId: Int32, topMsgId: Int32?, replyToPeerId: Api.InputPeer?, quoteText: String?, quoteEntities: [Api.MessageEntity]?, quoteOffset: Int32?) - case inputReplyToStory(userId: Api.InputUser, storyId: Int32) + case inputReplyToStory(peer: Api.InputPeer, storyId: Int32) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { switch self { @@ -21,11 +21,11 @@ public extension Api { }} if Int(flags) & Int(1 << 4) != 0 {serializeInt32(quoteOffset!, buffer: buffer, boxed: false)} break - case .inputReplyToStory(let userId, let storyId): + case .inputReplyToStory(let peer, let storyId): if boxed { - buffer.appendInt32(363917955) + buffer.appendInt32(1484862010) } - userId.serialize(buffer, true) + peer.serialize(buffer, true) serializeInt32(storyId, buffer: buffer, boxed: false) break } @@ -35,8 +35,8 @@ public extension Api { switch self { case .inputReplyToMessage(let flags, let replyToMsgId, let topMsgId, let replyToPeerId, let quoteText, let quoteEntities, let quoteOffset): return ("inputReplyToMessage", [("flags", flags as Any), ("replyToMsgId", replyToMsgId as Any), ("topMsgId", topMsgId as Any), ("replyToPeerId", replyToPeerId as Any), ("quoteText", quoteText as Any), ("quoteEntities", quoteEntities as Any), ("quoteOffset", quoteOffset as Any)]) - case .inputReplyToStory(let userId, let storyId): - return ("inputReplyToStory", [("userId", userId as Any), ("storyId", storyId as Any)]) + case .inputReplyToStory(let peer, let storyId): + return ("inputReplyToStory", [("peer", peer as Any), ("storyId", storyId as Any)]) } } @@ -74,16 +74,16 @@ public extension Api { } } public static func parse_inputReplyToStory(_ reader: BufferReader) -> InputReplyTo? { - var _1: Api.InputUser? + var _1: Api.InputPeer? if let signature = reader.readInt32() { - _1 = Api.parse(reader, signature: signature) as? Api.InputUser + _1 = Api.parse(reader, signature: signature) as? Api.InputPeer } var _2: Int32? _2 = reader.readInt32() let _c1 = _1 != nil let _c2 = _2 != nil if _c1 && _c2 { - return Api.InputReplyTo.inputReplyToStory(userId: _1!, storyId: _2!) + return Api.InputReplyTo.inputReplyToStory(peer: _1!, storyId: _2!) } else { return nil diff --git a/submodules/TelegramCore/Sources/PendingMessages/StandaloneSendMessage.swift b/submodules/TelegramCore/Sources/PendingMessages/StandaloneSendMessage.swift index 2ca7884bc2..5496447f8c 100644 --- a/submodules/TelegramCore/Sources/PendingMessages/StandaloneSendMessage.swift +++ b/submodules/TelegramCore/Sources/PendingMessages/StandaloneSendMessage.swift @@ -404,9 +404,9 @@ private func sendUploadedMessageContent( } replyTo = .inputReplyToMessage(flags: replyFlags, replyToMsgId: replyMessageId, topMsgId: threadId.flatMap(Int32.init(clamping:)), replyToPeerId: nil, quoteText: nil, quoteEntities: nil, quoteOffset: nil) } else if let replyToStoryId = replyToStoryId { - if let inputUser = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputUser) { + if let inputPeer = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputPeer) { flags |= 1 << 0 - replyTo = .inputReplyToStory(userId: inputUser, storyId: replyToStoryId.id) + replyTo = .inputReplyToStory(peer: inputPeer, storyId: replyToStoryId.id) } } @@ -426,9 +426,9 @@ private func sendUploadedMessageContent( } replyTo = .inputReplyToMessage(flags: replyFlags, replyToMsgId: replyMessageId, topMsgId: threadId.flatMap(Int32.init(clamping:)), replyToPeerId: nil, quoteText: nil, quoteEntities: nil, quoteOffset: nil) } else if let replyToStoryId = replyToStoryId { - if let inputUser = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputUser) { + if let inputPeer = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputPeer) { flags |= 1 << 0 - replyTo = .inputReplyToStory(userId: inputUser, storyId: replyToStoryId.id) + replyTo = .inputReplyToStory(peer: inputPeer, storyId: replyToStoryId.id) } } @@ -462,9 +462,9 @@ private func sendUploadedMessageContent( } replyTo = .inputReplyToMessage(flags: replyFlags, replyToMsgId: replyMessageId, topMsgId: threadId.flatMap(Int32.init(clamping:)), replyToPeerId: nil, quoteText: nil, quoteEntities: nil, quoteOffset: nil) } else if let replyToStoryId = replyToStoryId { - if let inputUser = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputUser) { + if let inputPeer = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputPeer) { flags |= 1 << 0 - replyTo = .inputReplyToStory(userId: inputUser, storyId: replyToStoryId.id) + replyTo = .inputReplyToStory(peer: inputPeer, storyId: replyToStoryId.id) } } @@ -477,9 +477,9 @@ private func sendUploadedMessageContent( let replyFlags: Int32 = 0 replyTo = .inputReplyToMessage(flags: replyFlags, replyToMsgId: replyMessageId, topMsgId: nil, replyToPeerId: nil, quoteText: nil, quoteEntities: nil, quoteOffset: nil) } else if let replyToStoryId = replyToStoryId { - if let inputUser = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputUser) { + if let inputPeer = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputPeer) { flags |= 1 << 0 - replyTo = .inputReplyToStory(userId: inputUser, storyId: replyToStoryId.id) + replyTo = .inputReplyToStory(peer: inputPeer, storyId: replyToStoryId.id) } else { let replyFlags: Int32 = 0 replyTo = .inputReplyToMessage(flags: replyFlags, replyToMsgId: 0, topMsgId: nil, replyToPeerId: nil, quoteText: nil, quoteEntities: nil, quoteOffset: nil) @@ -627,9 +627,9 @@ private func sendMessageContent(account: Account, peerId: PeerId, attributes: [M let replyFlags: Int32 = 0 replyTo = .inputReplyToMessage(flags: replyFlags, replyToMsgId: replyMessageId, topMsgId: nil, replyToPeerId: nil, quoteText: nil, quoteEntities: nil, quoteOffset: nil) } else if let replyToStoryId = replyToStoryId { - if let inputUser = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputUser) { + if let inputPeer = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputPeer) { flags |= 1 << 0 - replyTo = .inputReplyToStory(userId: inputUser, storyId: replyToStoryId.id) + replyTo = .inputReplyToStory(peer: inputPeer, storyId: replyToStoryId.id) } } @@ -645,9 +645,9 @@ private func sendMessageContent(account: Account, peerId: PeerId, attributes: [M let replyFlags: Int32 = 0 replyTo = .inputReplyToMessage(flags: replyFlags, replyToMsgId: replyMessageId, topMsgId: nil, replyToPeerId: nil, quoteText: nil, quoteEntities: nil, quoteOffset: nil) } else if let replyToStoryId = replyToStoryId { - if let inputUser = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputUser) { + if let inputPeer = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputPeer) { flags |= 1 << 0 - replyTo = .inputReplyToStory(userId: inputUser, storyId: replyToStoryId.id) + replyTo = .inputReplyToStory(peer: inputPeer, storyId: replyToStoryId.id) } } diff --git a/submodules/TelegramCore/Sources/State/PendingMessageManager.swift b/submodules/TelegramCore/Sources/State/PendingMessageManager.swift index 4045a73bba..bab864f5a6 100644 --- a/submodules/TelegramCore/Sources/State/PendingMessageManager.swift +++ b/submodules/TelegramCore/Sources/State/PendingMessageManager.swift @@ -987,9 +987,9 @@ public final class PendingMessageManager { replyTo = .inputReplyToMessage(flags: replyFlags, replyToMsgId: replyMessageId, topMsgId: topMsgId, replyToPeerId: replyToPeerId, quoteText: quoteText, quoteEntities: quoteEntities, quoteOffset: quoteOffset) } else if let replyToStoryId = replyToStoryId { - if let inputUser = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputUser) { + if let inputPeer = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputPeer) { flags |= 1 << 0 - replyTo = .inputReplyToStory(userId: inputUser, storyId: replyToStoryId.id) + replyTo = .inputReplyToStory(peer: inputPeer, storyId: replyToStoryId.id) } } @@ -1279,9 +1279,9 @@ public final class PendingMessageManager { replyTo = .inputReplyToMessage(flags: replyFlags, replyToMsgId: replyMessageId, topMsgId: message.threadId.flatMap(Int32.init(clamping:)), replyToPeerId: replyToPeerId, quoteText: quoteText, quoteEntities: quoteEntities, quoteOffset: quoteOffset) } else if let replyToStoryId = replyToStoryId { - if let inputUser = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputUser) { + if let inputPeer = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputPeer) { flags |= 1 << 0 - replyTo = .inputReplyToStory(userId: inputUser, storyId: replyToStoryId.id) + replyTo = .inputReplyToStory(peer: inputPeer, storyId: replyToStoryId.id) } } @@ -1344,9 +1344,9 @@ public final class PendingMessageManager { replyTo = .inputReplyToMessage(flags: replyFlags, replyToMsgId: replyMessageId, topMsgId: message.threadId.flatMap(Int32.init(clamping:)), replyToPeerId: replyToPeerId, quoteText: quoteText, quoteEntities: quoteEntities, quoteOffset: quoteOffset) } else if let replyToStoryId = replyToStoryId { - if let inputUser = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputUser) { + if let inputPeer = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputPeer) { flags |= 1 << 0 - replyTo = .inputReplyToStory(userId: inputUser, storyId: replyToStoryId.id) + replyTo = .inputReplyToStory(peer: inputPeer, storyId: replyToStoryId.id) } } @@ -1423,9 +1423,9 @@ public final class PendingMessageManager { replyTo = .inputReplyToMessage(flags: replyFlags, replyToMsgId: replyMessageId, topMsgId: message.threadId.flatMap(Int32.init(clamping:)), replyToPeerId: replyToPeerId, quoteText: quoteText, quoteEntities: quoteEntities, quoteOffset: quoteOffset) } else if let replyToStoryId = replyToStoryId { - if let inputUser = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputUser) { + if let inputPeer = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputPeer) { flags |= 1 << 0 - replyTo = .inputReplyToStory(userId: inputUser, storyId: replyToStoryId.id) + replyTo = .inputReplyToStory(peer: inputPeer, storyId: replyToStoryId.id) } } @@ -1438,9 +1438,9 @@ public final class PendingMessageManager { let replyFlags: Int32 = 0 replyTo = .inputReplyToMessage(flags: replyFlags, replyToMsgId: replyMessageId, topMsgId: nil, replyToPeerId: nil, quoteText: nil, quoteEntities: nil, quoteOffset: nil) } else if let replyToStoryId = replyToStoryId { - if let inputUser = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputUser) { + if let inputPeer = transaction.getPeer(replyToStoryId.peerId).flatMap(apiInputPeer) { flags |= 1 << 0 - replyTo = .inputReplyToStory(userId: inputUser, storyId: replyToStoryId.id) + replyTo = .inputReplyToStory(peer: inputPeer, storyId: replyToStoryId.id) } else { let replyFlags: Int32 = 0 replyTo = .inputReplyToMessage(flags: replyFlags, replyToMsgId: 0, topMsgId: nil, replyToPeerId: nil, quoteText: nil, quoteEntities: nil, quoteOffset: nil) diff --git a/submodules/TelegramCore/Sources/SyncCore/SyncCore_TelegramChatAdminRights.swift b/submodules/TelegramCore/Sources/SyncCore/SyncCore_TelegramChatAdminRights.swift index 6cf6b7ff00..e94d448962 100644 --- a/submodules/TelegramCore/Sources/SyncCore/SyncCore_TelegramChatAdminRights.swift +++ b/submodules/TelegramCore/Sources/SyncCore/SyncCore_TelegramChatAdminRights.swift @@ -43,7 +43,10 @@ public struct TelegramChatAdminRightsFlags: OptionSet, Hashable { .canPinMessages, .canManageCalls, .canBeAnonymous, - .canAddAdmins + .canAddAdmins, + .canPostStories, + .canEditStories, + .canDeleteStories ] public static let internal_broadcastSpecific: TelegramChatAdminRightsFlags = [