Update Ghostgram features

This commit is contained in:
ichmagmaus 812
2026-03-07 18:15:32 +01:00
parent 1a3303b059
commit 24a7ec39d9
902 changed files with 148302 additions and 62355 deletions
@@ -25,7 +25,8 @@ private func updatedRemoteContactPeers(network: Network, hash: Int64) -> Signal<
switch result {
case .contactsNotModified:
return nil
case let .contacts(_, savedCount, users):
case let .contacts(contactsData):
let (savedCount, users) = (contactsData.savedCount, contactsData.users)
return (AccumulatedPeers(users: users), savedCount)
}
}
@@ -10,10 +10,10 @@ func _internal_importContact(account: Account, firstName: String, lastName: Stri
var note: Api.TextWithEntities?
if !noteText.isEmpty {
flags |= (1 << 1)
note = .textWithEntities(text: noteText, entities: apiEntitiesFromMessageTextEntities(noteEntities, associatedPeers: SimpleDictionary()))
note = .textWithEntities(.init(text: noteText, entities: apiEntitiesFromMessageTextEntities(noteEntities, associatedPeers: SimpleDictionary())))
}
let input = Api.InputContact.inputPhoneContact(flags: 0, clientId: 1, phone: phoneNumber, firstName: firstName, lastName: lastName, note: note)
let input = Api.InputContact.inputPhoneContact(.init(flags: 0, clientId: 1, phone: phoneNumber, firstName: firstName, lastName: lastName, note: note))
return account.network.request(Api.functions.contacts.importContacts(contacts: [input]))
|> map(Optional.init)
@@ -24,7 +24,8 @@ func _internal_importContact(account: Account, firstName: String, lastName: Stri
return account.postbox.transaction { transaction -> PeerId? in
if let result = result {
switch result {
case let .importedContacts(_, _, _, users):
case let .importedContacts(importedContactsData):
let users = importedContactsData.users
if let first = users.first {
updatePeers(transaction: transaction, accountPeerId: accountPeerId, peers: AccumulatedPeers(users: users))
@@ -75,7 +76,7 @@ func _internal_addContactInteractively(account: Account, peerId: PeerId, firstNa
var note: Api.TextWithEntities?
if !noteText.isEmpty {
flags |= (1 << 1)
note = .textWithEntities(text: noteText, entities: apiEntitiesFromMessageTextEntities(noteEntities, associatedPeers: SimpleDictionary()))
note = .textWithEntities(.init(text: noteText, entities: apiEntitiesFromMessageTextEntities(noteEntities, associatedPeers: SimpleDictionary())))
}
return account.network.request(Api.functions.contacts.addContact(flags: flags, id: inputUser, firstName: firstName, lastName: lastName, phone: phone, note: note))
|> mapError { _ -> AddContactError in
@@ -85,9 +86,11 @@ func _internal_addContactInteractively(account: Account, peerId: PeerId, firstNa
return account.postbox.transaction { transaction -> Void in
var peers = AccumulatedPeers()
switch result {
case let .updates(_, users, _, _, _):
case let .updates(updatesData):
let users = updatesData.users
peers = AccumulatedPeers(users: users)
case let .updatesCombined(_, users, _, _, _, _):
case let .updatesCombined(updatesCombinedData):
let users = updatesCombinedData.users
peers = AccumulatedPeers(users: users)
default:
break
@@ -35,7 +35,7 @@ public enum UpdateContactNoteError {
func _internal_updateContactNote(account: Account, peerId: PeerId, text: String, entities: [MessageTextEntity]) -> Signal<Never, UpdateContactNoteError> {
return account.postbox.transaction { transaction -> Signal<Void, UpdateContactNoteError> in
if let peer = transaction.getPeer(peerId) as? TelegramUser, let inputUser = apiInputUser(peer) {
return account.network.request(Api.functions.contacts.updateContactNote(id: inputUser, note: .textWithEntities(text: text, entities: apiEntitiesFromMessageTextEntities(entities, associatedPeers: SimpleDictionary()))))
return account.network.request(Api.functions.contacts.updateContactNote(id: inputUser, note: .textWithEntities(.init(text: text, entities: apiEntitiesFromMessageTextEntities(entities, associatedPeers: SimpleDictionary())))))
|> mapError { _ -> UpdateContactNoteError in
return .generic
}