mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-10-09 03:20:48 +00:00
Recent/saved sticker reference validation
This commit is contained in:
parent
79502b3d6f
commit
7df240019c
@ -141,27 +141,39 @@ func mediaContentToUpload(accountPeerId: PeerId, network: Network, postbox: Post
|
|||||||
return uploadedMediaFileContent(network: network, postbox: postbox, auxiliaryMethods: auxiliaryMethods, transformOutgoingMessageMedia: transformOutgoingMessageMedia, messageMediaPreuploadManager: messageMediaPreuploadManager, forceReupload: true, isGrouped: isGrouped, passFetchProgress: false, forceNoBigParts: false, peerId: peerId, messageId: messageId, text: text, attributes: attributes, autoremoveMessageAttribute: autoremoveMessageAttribute, autoclearMessageAttribute: autoclearMessageAttribute, file: file)
|
return uploadedMediaFileContent(network: network, postbox: postbox, auxiliaryMethods: auxiliaryMethods, transformOutgoingMessageMedia: transformOutgoingMessageMedia, messageMediaPreuploadManager: messageMediaPreuploadManager, forceReupload: true, isGrouped: isGrouped, passFetchProgress: false, forceNoBigParts: false, peerId: peerId, messageId: messageId, text: text, attributes: attributes, autoremoveMessageAttribute: autoremoveMessageAttribute, autoclearMessageAttribute: autoclearMessageAttribute, file: file)
|
||||||
} else {
|
} else {
|
||||||
if forceReupload {
|
if forceReupload {
|
||||||
let finalMediaReference: AnyMediaReference
|
let finalMediaReference: Signal<AnyMediaReference, NoError>
|
||||||
if let mediaReference = mediaReference {
|
if let mediaReference = mediaReference {
|
||||||
finalMediaReference = mediaReference
|
finalMediaReference = .single(mediaReference)
|
||||||
} else if file.isSticker {
|
} else if file.isSticker || file.isCustomEmoji {
|
||||||
if let partialReference = file.partialReference {
|
if let partialReference = file.partialReference {
|
||||||
finalMediaReference = partialReference.mediaReference(file)
|
finalMediaReference = .single(partialReference.mediaReference(file))
|
||||||
} else {
|
} else {
|
||||||
finalMediaReference = .standalone(media: file)
|
finalMediaReference = postbox.transaction { transaction -> AnyMediaReference in
|
||||||
|
if transaction.getOrderedItemListItem(collectionId: Namespaces.OrderedItemList.CloudRecentStickers, itemId: RecentMediaItemId(file.fileId).rawValue) != nil {
|
||||||
|
return .recentSticker(media: file)
|
||||||
|
} else if transaction.getOrderedItemListItem(collectionId: Namespaces.OrderedItemList.CloudSavedStickers, itemId: RecentMediaItemId(file.fileId).rawValue) != nil {
|
||||||
|
return .savedSticker(media: file)
|
||||||
|
}
|
||||||
|
|
||||||
|
return .standalone(media: file)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
finalMediaReference = .savedGif(media: file)
|
finalMediaReference = .single(.savedGif(media: file))
|
||||||
}
|
}
|
||||||
return revalidateMediaResourceReference(accountPeerId: accountPeerId, postbox: postbox, network: network, revalidationContext: revalidationContext, info: TelegramCloudMediaResourceFetchInfo(reference: finalMediaReference.resourceReference(file.resource), preferBackgroundReferenceRevalidation: false, continueInBackground: false), resource: resource)
|
return finalMediaReference
|
||||||
|> mapError { _ -> PendingMessageUploadError in
|
|> castError(PendingMessageUploadError.self)
|
||||||
return .generic
|
|> mapToSignal { finalMediaReference in
|
||||||
}
|
return revalidateMediaResourceReference(accountPeerId: accountPeerId, postbox: postbox, network: network, revalidationContext: revalidationContext, info: TelegramCloudMediaResourceFetchInfo(reference: finalMediaReference.resourceReference(file.resource), preferBackgroundReferenceRevalidation: false, continueInBackground: false), resource: resource)
|
||||||
|> mapToSignal { validatedResource -> Signal<PendingMessageUploadedContentResult, PendingMessageUploadError> in
|
|> mapError { _ -> PendingMessageUploadError in
|
||||||
if let validatedResource = validatedResource.updatedResource as? TelegramCloudMediaResourceWithFileReference, let reference = validatedResource.fileReference {
|
return .generic
|
||||||
return .single(.content(PendingMessageUploadedContentAndReuploadInfo(content: .media(Api.InputMedia.inputMediaDocument(flags: 0, id: Api.InputDocument.inputDocument(id: resource.fileId, accessHash: resource.accessHash, fileReference: Buffer(data: reference)), ttlSeconds: nil, query: nil), text), reuploadInfo: nil, cacheReferenceKey: nil)))
|
}
|
||||||
} else {
|
|> mapToSignal { validatedResource -> Signal<PendingMessageUploadedContentResult, PendingMessageUploadError> in
|
||||||
return .fail(.generic)
|
if let validatedResource = validatedResource.updatedResource as? TelegramCloudMediaResourceWithFileReference, let reference = validatedResource.fileReference {
|
||||||
|
return .single(.content(PendingMessageUploadedContentAndReuploadInfo(content: .media(Api.InputMedia.inputMediaDocument(flags: 0, id: Api.InputDocument.inputDocument(id: resource.fileId, accessHash: resource.accessHash, fileReference: Buffer(data: reference)), ttlSeconds: nil, query: nil), text), reuploadInfo: nil, cacheReferenceKey: nil)))
|
||||||
|
} else {
|
||||||
|
return .fail(.generic)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user