mirror of
https://github.com/ichmagmaus111/ghostgram.git
synced 2026-06-10 20:07:47 +02:00
Update Ghostgram features
This commit is contained in:
@@ -21,7 +21,8 @@ public func updateAutodownloadSettingsInteractively(accountManager: AccountManag
|
||||
extension AutodownloadPresetSettings {
|
||||
init(apiAutodownloadSettings: Api.AutoDownloadSettings) {
|
||||
switch apiAutodownloadSettings {
|
||||
case let .autoDownloadSettings(flags, photoSizeMax, videoSizeMax, fileSizeMax, videoUploadMaxbitrate, _, _):
|
||||
case let .autoDownloadSettings(autoDownloadSettingsData):
|
||||
let (flags, photoSizeMax, videoSizeMax, fileSizeMax, videoUploadMaxbitrate, _, _) = (autoDownloadSettingsData.flags, autoDownloadSettingsData.photoSizeMax, autoDownloadSettingsData.videoSizeMax, autoDownloadSettingsData.fileSizeMax, autoDownloadSettingsData.videoUploadMaxbitrate, autoDownloadSettingsData.smallQueueActiveOperationsMax, autoDownloadSettingsData.largeQueueActiveOperationsMax)
|
||||
self.init(disabled: (flags & (1 << 0)) != 0, photoSizeMax: Int64(photoSizeMax), videoSizeMax: videoSizeMax, fileSizeMax: fileSizeMax, preloadLargeVideo: (flags & (1 << 1)) != 0, lessDataForPhoneCalls: (flags & (1 << 3)) != 0, videoUploadMaxbitrate: videoUploadMaxbitrate)
|
||||
}
|
||||
}
|
||||
@@ -30,7 +31,8 @@ extension AutodownloadPresetSettings {
|
||||
extension AutodownloadSettings {
|
||||
init(apiAutodownloadSettings: Api.account.AutoDownloadSettings) {
|
||||
switch apiAutodownloadSettings {
|
||||
case let .autoDownloadSettings(low, medium, high):
|
||||
case let .autoDownloadSettings(autoDownloadSettingsData):
|
||||
let (low, medium, high) = (autoDownloadSettingsData.low, autoDownloadSettingsData.medium, autoDownloadSettingsData.high)
|
||||
self.init(lowPreset: AutodownloadPresetSettings(apiAutodownloadSettings: low), mediumPreset: AutodownloadPresetSettings(apiAutodownloadSettings: medium), highPreset: AutodownloadPresetSettings(apiAutodownloadSettings: high))
|
||||
}
|
||||
}
|
||||
@@ -47,6 +49,6 @@ func apiAutodownloadPresetSettings(_ autodownloadPresetSettings: AutodownloadPre
|
||||
if autodownloadPresetSettings.lessDataForPhoneCalls {
|
||||
flags |= (1 << 3)
|
||||
}
|
||||
return .autoDownloadSettings(flags: flags, photoSizeMax: Int32(autodownloadPresetSettings.photoSizeMax), videoSizeMax: autodownloadPresetSettings.videoSizeMax, fileSizeMax: autodownloadPresetSettings.fileSizeMax, videoUploadMaxbitrate: autodownloadPresetSettings.videoUploadMaxbitrate, smallQueueActiveOperationsMax: 0, largeQueueActiveOperationsMax: 0)
|
||||
return .autoDownloadSettings(Api.AutoDownloadSettings.Cons_autoDownloadSettings(flags: flags, photoSizeMax: Int32(autodownloadPresetSettings.photoSizeMax), videoSizeMax: autodownloadPresetSettings.videoSizeMax, fileSizeMax: autodownloadPresetSettings.fileSizeMax, videoUploadMaxbitrate: autodownloadPresetSettings.videoUploadMaxbitrate, smallQueueActiveOperationsMax: 0, largeQueueActiveOperationsMax: 0))
|
||||
}
|
||||
|
||||
|
||||
@@ -4,14 +4,16 @@ import TelegramApi
|
||||
import SwiftSignalKit
|
||||
|
||||
public struct ContentSettings: Equatable {
|
||||
public static var `default` = ContentSettings(ignoreContentRestrictionReasons: [], addContentRestrictionReasons: [])
|
||||
public static var `default` = ContentSettings(ignoreContentRestrictionReasons: [], addContentRestrictionReasons: [], appConfiguration: AppConfiguration.defaultValue)
|
||||
|
||||
public var ignoreContentRestrictionReasons: Set<String>
|
||||
public var addContentRestrictionReasons: [String]
|
||||
public var appConfiguration: AppConfiguration
|
||||
|
||||
public init(ignoreContentRestrictionReasons: Set<String>, addContentRestrictionReasons: [String]) {
|
||||
public init(ignoreContentRestrictionReasons: Set<String>, addContentRestrictionReasons: [String], appConfiguration: AppConfiguration) {
|
||||
self.ignoreContentRestrictionReasons = ignoreContentRestrictionReasons
|
||||
self.addContentRestrictionReasons = addContentRestrictionReasons
|
||||
self.appConfiguration = appConfiguration
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +29,9 @@ extension ContentSettings {
|
||||
addContentRestrictionReasons = addContentRestrictionReasonsData
|
||||
}
|
||||
}
|
||||
self.init(ignoreContentRestrictionReasons: Set(reasons), addContentRestrictionReasons: addContentRestrictionReasons)
|
||||
// MARK: Swiftgram
|
||||
reasons += appConfiguration.sgWebSettings.user.expandedContentReasons()
|
||||
self.init(ignoreContentRestrictionReasons: Set(reasons), addContentRestrictionReasons: addContentRestrictionReasons, appConfiguration: appConfiguration)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,7 +65,8 @@ public func contentSettingsConfiguration(network: Network) -> Signal<ContentSett
|
||||
return network.request(Api.functions.account.getContentSettings())
|
||||
|> map { result -> ContentSettingsConfiguration in
|
||||
switch result {
|
||||
case let .contentSettings(flags):
|
||||
case let .contentSettings(contentSettingsData):
|
||||
let flags = contentSettingsData.flags
|
||||
return ContentSettingsConfiguration(sensitiveContentEnabled: (flags & (1 << 0)) != 0, canAdjustSensitiveContent: (flags & (1 << 1)) != 0)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,8 @@ import TelegramApi
|
||||
extension MessageNotificationSettings {
|
||||
init(apiSettings: Api.PeerNotifySettings) {
|
||||
switch apiSettings {
|
||||
case let .peerNotifySettings(_, showPreviews, _, muteUntil, iosSound, _, desktopSound, storiesMuted, storiesHideSender, storiesIosSound, _, storiesDesktopSound):
|
||||
case let .peerNotifySettings(peerNotifySettingsData):
|
||||
let (showPreviews, muteUntil, iosSound, desktopSound, storiesMuted, storiesHideSender, storiesIosSound, storiesDesktopSound) = (peerNotifySettingsData.showPreviews, peerNotifySettingsData.muteUntil, peerNotifySettingsData.iosSound, peerNotifySettingsData.otherSound, peerNotifySettingsData.storiesMuted, peerNotifySettingsData.storiesHideSender, peerNotifySettingsData.storiesIosSound, peerNotifySettingsData.storiesOtherSound)
|
||||
let sound: Api.NotificationSound?
|
||||
let storiesSound: Api.NotificationSound?
|
||||
#if os(iOS)
|
||||
|
||||
@@ -6,7 +6,8 @@ import SwiftSignalKit
|
||||
extension PeerStatusSettings {
|
||||
init(apiSettings: Api.PeerSettings) {
|
||||
switch apiSettings {
|
||||
case let .peerSettings(flags, geoDistance, requestChatTitle, requestChatDate, businessBotId, businessBotManageUrl, chargePaidMessageStars, registrationMonth, phoneCountry, nameChangeDate, photoChangeDate):
|
||||
case let .peerSettings(peerSettingsData):
|
||||
let (flags, geoDistance, requestChatTitle, requestChatDate, businessBotId, businessBotManageUrl, chargePaidMessageStars, registrationMonth, phoneCountry, nameChangeDate, photoChangeDate) = (peerSettingsData.flags, peerSettingsData.geoDistance, peerSettingsData.requestChatTitle, peerSettingsData.requestChatDate, peerSettingsData.businessBotId, peerSettingsData.businessBotManageUrl, peerSettingsData.chargePaidMessageStars, peerSettingsData.registrationMonth, peerSettingsData.phoneCountry, peerSettingsData.nameChangeDate, peerSettingsData.photoChangeDate)
|
||||
var result = PeerStatusSettings.Flags()
|
||||
if (flags & (1 << 1)) != 0 {
|
||||
result.insert(.canAddContact)
|
||||
|
||||
@@ -230,7 +230,8 @@ extension SelectivePrivacySettings {
|
||||
current = .enableEveryone(disableFor: [:])
|
||||
case .privacyValueAllowContacts:
|
||||
current = .enableContacts(enableFor: [:], disableFor: [:], enableForPremium: false, enableForBots: false)
|
||||
case let .privacyValueAllowUsers(users):
|
||||
case let .privacyValueAllowUsers(privacyValueAllowUsersData):
|
||||
let users = privacyValueAllowUsersData.users
|
||||
for id in users {
|
||||
if let peer = peers[PeerId(namespace: Namespaces.Peer.CloudUser, id: PeerId.Id._internalFromInt64Value(id))] {
|
||||
enableFor[peer.peer.id] = peer
|
||||
@@ -240,13 +241,15 @@ extension SelectivePrivacySettings {
|
||||
break
|
||||
case .privacyValueDisallowContacts:
|
||||
break
|
||||
case let .privacyValueDisallowUsers(users):
|
||||
case let .privacyValueDisallowUsers(privacyValueDisallowUsersData):
|
||||
let users = privacyValueDisallowUsersData.users
|
||||
for id in users {
|
||||
if let peer = peers[PeerId(namespace: Namespaces.Peer.CloudUser, id: PeerId.Id._internalFromInt64Value(id))] {
|
||||
disableFor[peer.peer.id] = peer
|
||||
}
|
||||
}
|
||||
case let .privacyValueAllowChatParticipants(chats):
|
||||
case let .privacyValueAllowChatParticipants(privacyValueAllowChatParticipantsData):
|
||||
let chats = privacyValueAllowChatParticipantsData.chats
|
||||
for id in chats {
|
||||
for possibleId in [PeerId(namespace: Namespaces.Peer.CloudGroup, id: PeerId.Id._internalFromInt64Value(id)), PeerId(namespace: Namespaces.Peer.CloudChannel, id: PeerId.Id._internalFromInt64Value(id))] {
|
||||
if let peer = peers[possibleId] {
|
||||
@@ -254,7 +257,8 @@ extension SelectivePrivacySettings {
|
||||
}
|
||||
}
|
||||
}
|
||||
case let .privacyValueDisallowChatParticipants(chats):
|
||||
case let .privacyValueDisallowChatParticipants(privacyValueDisallowChatParticipantsData):
|
||||
let chats = privacyValueDisallowChatParticipantsData.chats
|
||||
for id in chats {
|
||||
for possibleId in [PeerId(namespace: Namespaces.Peer.CloudGroup, id: PeerId.Id._internalFromInt64Value(id)), PeerId(namespace: Namespaces.Peer.CloudChannel, id: PeerId.Id._internalFromInt64Value(id))] {
|
||||
if let peer = peers[possibleId] {
|
||||
@@ -337,7 +341,8 @@ extension TelegramDisallowedGifts {
|
||||
init(apiDisallowedGifts: Api.DisallowedGiftsSettings?) {
|
||||
var disallowedGifts: TelegramDisallowedGifts = []
|
||||
switch apiDisallowedGifts {
|
||||
case let .disallowedGiftsSettings(giftFlags):
|
||||
case let .disallowedGiftsSettings(disallowedGiftsSettingsData):
|
||||
let giftFlags = disallowedGiftsSettingsData.flags
|
||||
if (giftFlags & (1 << 0)) != 0 {
|
||||
disallowedGifts.insert(.unlimited)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user