mirror of
https://github.com/ichmagmaus111/ghostgram.git
synced 2026-08-10 16:20:32 +02:00
Update Ghostgram features
This commit is contained in:
@@ -85,35 +85,39 @@ public final class BlockedPeersContext {
|
||||
}
|
||||
return postbox.transaction { transaction -> (peers: [RenderedPeer], canLoadMore: Bool, totalCount: Int?) in
|
||||
switch result {
|
||||
case let .blocked(blocked, chats, users):
|
||||
case let .blocked(blockedData):
|
||||
let (blocked, chats, users) = (blockedData.blocked, blockedData.chats, blockedData.users)
|
||||
let parsedPeers = AccumulatedPeers(transaction: transaction, chats: chats, users: users)
|
||||
updatePeers(transaction: transaction, accountPeerId: accountPeerId, peers: parsedPeers)
|
||||
|
||||
var renderedPeers: [RenderedPeer] = []
|
||||
for blockedPeer in blocked {
|
||||
switch blockedPeer {
|
||||
case let .peerBlocked(peerId, _):
|
||||
case let .peerBlocked(peerBlockedData):
|
||||
let peerId = peerBlockedData.peerId
|
||||
if let peer = transaction.getPeer(peerId.peerId) {
|
||||
renderedPeers.append(RenderedPeer(peer: peer))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return (renderedPeers, false, nil)
|
||||
case let .blockedSlice(count, blocked, chats, users):
|
||||
case let .blockedSlice(blockedSliceData):
|
||||
let (count, blocked, chats, users) = (blockedSliceData.count, blockedSliceData.blocked, blockedSliceData.chats, blockedSliceData.users)
|
||||
let parsedPeers = AccumulatedPeers(transaction: transaction, chats: chats, users: users)
|
||||
updatePeers(transaction: transaction, accountPeerId: accountPeerId, peers: parsedPeers)
|
||||
|
||||
var renderedPeers: [RenderedPeer] = []
|
||||
for blockedPeer in blocked {
|
||||
switch blockedPeer {
|
||||
case let .peerBlocked(peerId, _):
|
||||
case let .peerBlocked(peerBlockedData):
|
||||
let peerId = peerBlockedData.peerId
|
||||
if let peer = transaction.getPeer(peerId.peerId) {
|
||||
renderedPeers.append(RenderedPeer(peer: peer))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return (renderedPeers, true, Int(count))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,7 +104,8 @@ public struct RecentAccountSession: Equatable {
|
||||
extension RecentAccountSession {
|
||||
init(apiAuthorization: Api.Authorization) {
|
||||
switch apiAuthorization {
|
||||
case let .authorization(flags, hash, deviceModel, platform, systemVersion, apiId, appName, appVersion, dateCreated, dateActive, ip, country, region):
|
||||
case let .authorization(authorizationData):
|
||||
let (flags, hash, deviceModel, platform, systemVersion, apiId, appName, appVersion, dateCreated, dateActive, ip, country, region) = (authorizationData.flags, authorizationData.hash, authorizationData.deviceModel, authorizationData.platform, authorizationData.systemVersion, authorizationData.apiId, authorizationData.appName, authorizationData.appVersion, authorizationData.dateCreated, authorizationData.dateActive, authorizationData.ip, authorizationData.country, authorizationData.region)
|
||||
var accountSessionFlags: AccountSessionFlags = []
|
||||
if (flags & (1 << 1)) != 0 {
|
||||
accountSessionFlags.insert(.isOfficial)
|
||||
|
||||
@@ -13,7 +13,8 @@ func requestRecentAccountSessions(account: Account) -> Signal<([RecentAccountSes
|
||||
var sessions: [RecentAccountSession] = []
|
||||
var ttlDays: Int32 = 1
|
||||
switch result {
|
||||
case let .authorizations(authorizationTtlDays, authorizations):
|
||||
case let .authorizations(authorizationsData):
|
||||
let (authorizationTtlDays, authorizations) = (authorizationsData.authorizationTtlDays, authorizationsData.authorizations)
|
||||
for authorization in authorizations {
|
||||
sessions.append(RecentAccountSession(apiAuthorization: authorization))
|
||||
}
|
||||
|
||||
@@ -30,12 +30,14 @@ func webSessions(network: Network) -> Signal<([WebAuthorization], [PeerId: Peer]
|
||||
var sessions: [WebAuthorization] = []
|
||||
var peers:[PeerId : Peer] = [:]
|
||||
switch result {
|
||||
case let .webAuthorizations(authorizations, users):
|
||||
case let .webAuthorizations(webAuthorizationsData):
|
||||
let (authorizations, users) = (webAuthorizationsData.authorizations, webAuthorizationsData.users)
|
||||
for authorization in authorizations {
|
||||
switch authorization {
|
||||
case let .webAuthorization(hash, botId, domain, browser, platform, dateCreated, dateActive, ip, region):
|
||||
case let .webAuthorization(webAuthorizationData):
|
||||
let (hash, botId, domain, browser, platform, dateCreated, dateActive, ip, region) = (webAuthorizationData.hash, webAuthorizationData.botId, webAuthorizationData.domain, webAuthorizationData.browser, webAuthorizationData.platform, webAuthorizationData.dateCreated, webAuthorizationData.dateActive, webAuthorizationData.ip, webAuthorizationData.region)
|
||||
sessions.append(WebAuthorization(hash: hash, botId: PeerId(namespace: Namespaces.Peer.CloudUser, id: PeerId.Id._internalFromInt64Value(botId)), domain: domain, browser: browser, platform: platform, dateCreated: dateCreated, dateActive: dateActive, ip: ip, region: region))
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
for user in users {
|
||||
|
||||
+49
-31
@@ -16,7 +16,8 @@ func _internal_updateGlobalPrivacySettings(account: Account) -> Signal<Never, No
|
||||
}
|
||||
let globalSettings: GlobalPrivacySettings
|
||||
switch result {
|
||||
case let .globalPrivacySettings(flags, nonContactPeersPaidStars, disallowedStarGifts):
|
||||
case let .globalPrivacySettings(globalPrivacySettingsData):
|
||||
let (flags, nonContactPeersPaidStars, disallowedStarGifts) = (globalPrivacySettingsData.flags, globalPrivacySettingsData.noncontactPeersPaidStars, globalPrivacySettingsData.disallowedGifts)
|
||||
let automaticallyArchiveAndMuteNonContacts = (flags & (1 << 0)) != 0
|
||||
let keepArchivedUnmuted = (flags & (1 << 1)) != 0
|
||||
let keepArchivedFolders = (flags & (1 << 2)) != 0
|
||||
@@ -80,13 +81,14 @@ func _internal_requestAccountPrivacySettings(account: Account) -> Signal<Account
|
||||
|> mapToSignal { lastSeenPrivacy, groupPrivacy, voiceCallPrivacy, voiceCallP2P, profilePhotoPrivacy, forwardPrivacy, phoneNumberPrivacy, phoneDiscoveryPrivacy, voiceMessagesPrivacy, bioPrivacy, birthdayPrivacy, giftsAutoSavePrivacy, noPaidMessagesPrivacy, savedMusicPrivacy, autoremoveTimeout, globalPrivacySettings, messageAutoremoveTimeout -> Signal<AccountPrivacySettings, NoError> in
|
||||
let accountTimeoutSeconds: Int32
|
||||
switch autoremoveTimeout {
|
||||
case let .accountDaysTTL(days):
|
||||
accountTimeoutSeconds = days * 24 * 60 * 60
|
||||
case let .accountDaysTTL(accountDaysTTL):
|
||||
accountTimeoutSeconds = accountDaysTTL.days * 24 * 60 * 60
|
||||
}
|
||||
|
||||
let messageAutoremoveSeconds: Int32?
|
||||
switch messageAutoremoveTimeout {
|
||||
case let .defaultHistoryTTL(period):
|
||||
case let .defaultHistoryTTL(defaultHistoryTTLData):
|
||||
let period = defaultHistoryTTLData.period
|
||||
if period != 0 {
|
||||
messageAutoremoveSeconds = period
|
||||
} else {
|
||||
@@ -111,49 +113,56 @@ func _internal_requestAccountPrivacySettings(account: Account) -> Signal<Account
|
||||
var apiChats: [Api.Chat] = []
|
||||
|
||||
switch lastSeenPrivacy {
|
||||
case let .privacyRules(rules, chats, users):
|
||||
case let .privacyRules(privacyRulesData):
|
||||
let (rules, chats, users) = (privacyRulesData.rules, privacyRulesData.chats, privacyRulesData.users)
|
||||
apiUsers.append(contentsOf: users)
|
||||
apiChats.append(contentsOf: chats)
|
||||
lastSeenRules = rules
|
||||
}
|
||||
|
||||
switch groupPrivacy {
|
||||
case let .privacyRules(rules, chats, users):
|
||||
case let .privacyRules(privacyRulesData):
|
||||
let (rules, chats, users) = (privacyRulesData.rules, privacyRulesData.chats, privacyRulesData.users)
|
||||
apiUsers.append(contentsOf: users)
|
||||
apiChats.append(contentsOf: chats)
|
||||
groupRules = rules
|
||||
}
|
||||
|
||||
switch voiceCallPrivacy {
|
||||
case let .privacyRules(rules, chats, users):
|
||||
case let .privacyRules(privacyRulesData):
|
||||
let (rules, chats, users) = (privacyRulesData.rules, privacyRulesData.chats, privacyRulesData.users)
|
||||
apiUsers.append(contentsOf: users)
|
||||
apiChats.append(contentsOf: chats)
|
||||
voiceRules = rules
|
||||
}
|
||||
|
||||
switch voiceCallP2P {
|
||||
case let .privacyRules(rules, chats, users):
|
||||
case let .privacyRules(privacyRulesData):
|
||||
let (rules, chats, users) = (privacyRulesData.rules, privacyRulesData.chats, privacyRulesData.users)
|
||||
apiUsers.append(contentsOf: users)
|
||||
apiChats.append(contentsOf: chats)
|
||||
voiceP2PRules = rules
|
||||
}
|
||||
|
||||
switch profilePhotoPrivacy {
|
||||
case let .privacyRules(rules, chats, users):
|
||||
case let .privacyRules(privacyRulesData):
|
||||
let (rules, chats, users) = (privacyRulesData.rules, privacyRulesData.chats, privacyRulesData.users)
|
||||
apiUsers.append(contentsOf: users)
|
||||
apiChats.append(contentsOf: chats)
|
||||
profilePhotoRules = rules
|
||||
}
|
||||
|
||||
switch forwardPrivacy {
|
||||
case let .privacyRules(rules, chats, users):
|
||||
case let .privacyRules(privacyRulesData):
|
||||
let (rules, chats, users) = (privacyRulesData.rules, privacyRulesData.chats, privacyRulesData.users)
|
||||
apiUsers.append(contentsOf: users)
|
||||
apiChats.append(contentsOf: chats)
|
||||
forwardRules = rules
|
||||
}
|
||||
|
||||
switch phoneNumberPrivacy {
|
||||
case let .privacyRules(rules, chats, users):
|
||||
case let .privacyRules(privacyRulesData):
|
||||
let (rules, chats, users) = (privacyRulesData.rules, privacyRulesData.chats, privacyRulesData.users)
|
||||
apiUsers.append(contentsOf: users)
|
||||
apiChats.append(contentsOf: chats)
|
||||
phoneNumberRules = rules
|
||||
@@ -161,7 +170,8 @@ func _internal_requestAccountPrivacySettings(account: Account) -> Signal<Account
|
||||
|
||||
var phoneDiscoveryValue = false
|
||||
switch phoneDiscoveryPrivacy {
|
||||
case let .privacyRules(rules, _, _):
|
||||
case let .privacyRules(privacyRulesData):
|
||||
let rules = privacyRulesData.rules
|
||||
for rule in rules {
|
||||
switch rule {
|
||||
case .privacyValueAllowAll:
|
||||
@@ -173,40 +183,46 @@ func _internal_requestAccountPrivacySettings(account: Account) -> Signal<Account
|
||||
}
|
||||
|
||||
switch voiceMessagesPrivacy {
|
||||
case let .privacyRules(rules, chats, users):
|
||||
case let .privacyRules(privacyRulesData):
|
||||
let (rules, chats, users) = (privacyRulesData.rules, privacyRulesData.chats, privacyRulesData.users)
|
||||
apiUsers.append(contentsOf: users)
|
||||
apiChats.append(contentsOf: chats)
|
||||
voiceMessagesRules = rules
|
||||
}
|
||||
|
||||
switch bioPrivacy {
|
||||
case let .privacyRules(rules, chats, users):
|
||||
case let .privacyRules(privacyRulesData):
|
||||
let (rules, chats, users) = (privacyRulesData.rules, privacyRulesData.chats, privacyRulesData.users)
|
||||
apiUsers.append(contentsOf: users)
|
||||
apiChats.append(contentsOf: chats)
|
||||
bioRules = rules
|
||||
}
|
||||
|
||||
switch birthdayPrivacy {
|
||||
case let .privacyRules(rules, chats, users):
|
||||
case let .privacyRules(privacyRulesData):
|
||||
let (rules, chats, users) = (privacyRulesData.rules, privacyRulesData.chats, privacyRulesData.users)
|
||||
apiUsers.append(contentsOf: users)
|
||||
apiChats.append(contentsOf: chats)
|
||||
birthdayRules = rules
|
||||
}
|
||||
|
||||
switch giftsAutoSavePrivacy {
|
||||
case let .privacyRules(rules, chats, users):
|
||||
case let .privacyRules(privacyRulesData):
|
||||
let (rules, chats, users) = (privacyRulesData.rules, privacyRulesData.chats, privacyRulesData.users)
|
||||
apiUsers.append(contentsOf: users)
|
||||
apiChats.append(contentsOf: chats)
|
||||
giftsAutoSaveRules = rules
|
||||
}
|
||||
switch noPaidMessagesPrivacy {
|
||||
case let .privacyRules(rules, chats, users):
|
||||
case let .privacyRules(privacyRulesData):
|
||||
let (rules, chats, users) = (privacyRulesData.rules, privacyRulesData.chats, privacyRulesData.users)
|
||||
apiUsers.append(contentsOf: users)
|
||||
apiChats.append(contentsOf: chats)
|
||||
noPaidMessagesRules = rules
|
||||
}
|
||||
switch savedMusicPrivacy {
|
||||
case let .privacyRules(rules, chats, users):
|
||||
case let .privacyRules(privacyRulesData):
|
||||
let (rules, chats, users) = (privacyRulesData.rules, privacyRulesData.chats, privacyRulesData.users)
|
||||
apiUsers.append(contentsOf: users)
|
||||
apiChats.append(contentsOf: chats)
|
||||
savedMusicRules = rules
|
||||
@@ -220,7 +236,8 @@ func _internal_requestAccountPrivacySettings(account: Account) -> Signal<Account
|
||||
if let peer = parseTelegramGroupOrChannel(chat: chat) {
|
||||
var participantCount: Int32? = nil
|
||||
switch chat {
|
||||
case let .channel(_, _, _, _, _, _, _, _, _, _, _, _, participantsCountValue, _, _, _, _, _, _, _, _, _, _):
|
||||
case let .channel(channelData):
|
||||
let participantsCountValue = channelData.participantsCount
|
||||
participantCount = participantsCountValue
|
||||
default:
|
||||
break
|
||||
@@ -235,7 +252,8 @@ func _internal_requestAccountPrivacySettings(account: Account) -> Signal<Account
|
||||
|
||||
let globalSettings: GlobalPrivacySettings
|
||||
switch globalPrivacySettings {
|
||||
case let .globalPrivacySettings(flags, nonContactPeersPaidStars, disallowedStarGifts):
|
||||
case let .globalPrivacySettings(globalPrivacySettingsData):
|
||||
let (flags, nonContactPeersPaidStars, disallowedStarGifts) = (globalPrivacySettingsData.flags, globalPrivacySettingsData.noncontactPeersPaidStars, globalPrivacySettingsData.disallowedGifts)
|
||||
let automaticallyArchiveAndMuteNonContacts = (flags & (1 << 0)) != 0
|
||||
let keepArchivedUnmuted = (flags & (1 << 1)) != 0
|
||||
let keepArchivedFolders = (flags & (1 << 2)) != 0
|
||||
@@ -403,16 +421,16 @@ func _internal_updateGlobalPrivacySettings(account: Account, settings: GlobalPri
|
||||
}
|
||||
flags |= 1 << 6
|
||||
|
||||
let disallowedStargifts: Api.DisallowedGiftsSettings = .disallowedGiftsSettings(flags: giftFlags)
|
||||
let disallowedStargifts: Api.DisallowedGiftsSettings = .disallowedGiftsSettings(.init(flags: giftFlags))
|
||||
return account.network.request(Api.functions.account.setGlobalPrivacySettings(
|
||||
settings: .globalPrivacySettings(flags: flags, noncontactPeersPaidStars: noncontactPeersPaidStars, disallowedGifts: disallowedStargifts)
|
||||
settings: .globalPrivacySettings(.init(flags: flags, noncontactPeersPaidStars: noncontactPeersPaidStars, disallowedGifts: disallowedStargifts))
|
||||
))
|
||||
|> retryRequest
|
||||
|> ignoreValues
|
||||
}
|
||||
|
||||
func _internal_updateAccountRemovalTimeout(account: Account, timeout: Int32) -> Signal<Void, NoError> {
|
||||
return account.network.request(Api.functions.account.setAccountTTL(ttl: .accountDaysTTL(days: timeout / (24 * 60 * 60))))
|
||||
return account.network.request(Api.functions.account.setAccountTTL(ttl: .accountDaysTTL(Api.AccountDaysTTL.Cons_accountDaysTTL(days: timeout / (24 * 60 * 60)))))
|
||||
|> retryRequest
|
||||
|> mapToSignal { _ -> Signal<Void, NoError> in
|
||||
return .complete()
|
||||
@@ -529,10 +547,10 @@ func _internal_updateSelectiveAccountPrivacySettings(account: Account, type: Upd
|
||||
let enablePeers = apiUserAndGroupIds(peerIds: enableFor)
|
||||
|
||||
if !enablePeers.users.isEmpty {
|
||||
rules.append(Api.InputPrivacyRule.inputPrivacyValueAllowUsers(users: apiInputUsers(transaction: transaction, peerIds: enablePeers.users)))
|
||||
rules.append(Api.InputPrivacyRule.inputPrivacyValueAllowUsers(.init(users: apiInputUsers(transaction: transaction, peerIds: enablePeers.users))))
|
||||
}
|
||||
if !enablePeers.groups.isEmpty {
|
||||
rules.append(Api.InputPrivacyRule.inputPrivacyValueAllowChatParticipants(chats: enablePeers.groups.map({ $0.id._internalGetInt64Value() })))
|
||||
rules.append(Api.InputPrivacyRule.inputPrivacyValueAllowChatParticipants(.init(chats: enablePeers.groups.map({ $0.id._internalGetInt64Value() }))))
|
||||
}
|
||||
|
||||
rules.append(Api.InputPrivacyRule.inputPrivacyValueDisallowAll)
|
||||
@@ -550,17 +568,17 @@ func _internal_updateSelectiveAccountPrivacySettings(account: Account, type: Upd
|
||||
let disablePeers = apiUserAndGroupIds(peerIds: disableFor)
|
||||
|
||||
if !enablePeers.users.isEmpty {
|
||||
rules.append(Api.InputPrivacyRule.inputPrivacyValueAllowUsers(users: apiInputUsers(transaction: transaction, peerIds: enablePeers.users)))
|
||||
rules.append(Api.InputPrivacyRule.inputPrivacyValueAllowUsers(.init(users: apiInputUsers(transaction: transaction, peerIds: enablePeers.users))))
|
||||
}
|
||||
if !enablePeers.groups.isEmpty {
|
||||
rules.append(Api.InputPrivacyRule.inputPrivacyValueAllowChatParticipants(chats: enablePeers.groups.map({ $0.id._internalGetInt64Value() })))
|
||||
rules.append(Api.InputPrivacyRule.inputPrivacyValueAllowChatParticipants(.init(chats: enablePeers.groups.map({ $0.id._internalGetInt64Value() }))))
|
||||
}
|
||||
|
||||
if !disablePeers.users.isEmpty {
|
||||
rules.append(Api.InputPrivacyRule.inputPrivacyValueDisallowUsers(users: apiInputUsers(transaction: transaction, peerIds: disablePeers.users)))
|
||||
rules.append(Api.InputPrivacyRule.inputPrivacyValueDisallowUsers(.init(users: apiInputUsers(transaction: transaction, peerIds: disablePeers.users))))
|
||||
}
|
||||
if !disablePeers.groups.isEmpty {
|
||||
rules.append(Api.InputPrivacyRule.inputPrivacyValueDisallowChatParticipants(chats: disablePeers.groups.map({ $0.id._internalGetInt64Value() })))
|
||||
rules.append(Api.InputPrivacyRule.inputPrivacyValueDisallowChatParticipants(.init(chats: disablePeers.groups.map({ $0.id._internalGetInt64Value() }))))
|
||||
}
|
||||
|
||||
rules.append(Api.InputPrivacyRule.inputPrivacyValueAllowContacts)
|
||||
@@ -574,10 +592,10 @@ func _internal_updateSelectiveAccountPrivacySettings(account: Account, type: Upd
|
||||
let disablePeers = apiUserAndGroupIds(peerIds: disableFor)
|
||||
|
||||
if !disablePeers.users.isEmpty {
|
||||
rules.append(Api.InputPrivacyRule.inputPrivacyValueDisallowUsers(users: apiInputUsers(transaction: transaction, peerIds: disablePeers.users)))
|
||||
rules.append(Api.InputPrivacyRule.inputPrivacyValueDisallowUsers(.init(users: apiInputUsers(transaction: transaction, peerIds: disablePeers.users))))
|
||||
}
|
||||
if !disablePeers.groups.isEmpty {
|
||||
rules.append(Api.InputPrivacyRule.inputPrivacyValueDisallowChatParticipants(chats: disablePeers.groups.map({ $0.id._internalGetInt64Value() })))
|
||||
rules.append(Api.InputPrivacyRule.inputPrivacyValueDisallowChatParticipants(.init(chats: disablePeers.groups.map({ $0.id._internalGetInt64Value() }))))
|
||||
}
|
||||
|
||||
rules.append(Api.InputPrivacyRule.inputPrivacyValueAllowAll)
|
||||
|
||||
Reference in New Issue
Block a user