Update Ghostgram features

This commit is contained in:
ichmagmaus 812
2026-03-07 18:15:32 +01:00
parent 32b0dddcd9
commit 13a43b9068
902 changed files with 148302 additions and 62355 deletions
+23
View File
@@ -0,0 +1,23 @@
load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library")
swift_library(
name = "SGAPIWebSettings",
module_name = "SGAPIWebSettings",
srcs = glob([
"Sources/**/*.swift",
]),
copts = [
"-warnings-as-errors",
],
deps = [
"//Swiftgram/SGAPI:SGAPI",
"//Swiftgram/SGAPIToken:SGAPIToken",
"//Swiftgram/SGLogging:SGLogging",
"//Swiftgram/SGSimpleSettings:SGSimpleSettings",
"//submodules/AccountContext:AccountContext",
"//submodules/TelegramCore:TelegramCore",
],
visibility = [
"//visibility:public",
],
)
@@ -0,0 +1,51 @@
import Foundation
import SGAPIToken
import SGAPI
import SGLogging
import AccountContext
import SGSimpleSettings
import TelegramCore
public func updateSGWebSettingsInteractivelly(context: AccountContext) {
let _ = getSGApiToken(context: context).startStandalone(next: { token in
let _ = getSGSettings(token: token).startStandalone(next: { webSettings in
SGLogger.shared.log("SGAPI", "New SGWebSettings for id \(context.account.peerId.id._internalGetInt64Value()): \(webSettings) ")
SGSimpleSettings.shared.canUseStealthMode = webSettings.global.storiesAvailable
SGSimpleSettings.shared.duckyAppIconAvailable = webSettings.global.duckyAppIconAvailable
SGSimpleSettings.shared.canUseNY = webSettings.global.nyAvailable
let _ = (context.account.postbox.transaction { transaction in
updateAppConfiguration(transaction: transaction, { configuration -> AppConfiguration in
var configuration = configuration
configuration.sgWebSettings = webSettings
return configuration
})
}).startStandalone()
}, error: { e in
if case let .generic(errorMessage) = e, let errorMessage = errorMessage {
SGLogger.shared.log("SGAPI", errorMessage)
}
})
}, error: { e in
if case let .generic(errorMessage) = e, let errorMessage = errorMessage {
SGLogger.shared.log("SGAPI", errorMessage)
}
})
}
public func postSGWebSettingsInteractivelly(context: AccountContext, data: [String: Any]) {
let _ = getSGApiToken(context: context).startStandalone(next: { token in
let _ = postSGSettings(token: token, data: data).startStandalone(error: { e in
if case let .generic(errorMessage) = e, let errorMessage = errorMessage {
SGLogger.shared.log("SGAPI", errorMessage)
}
})
}, error: { e in
if case let .generic(errorMessage) = e, let errorMessage = errorMessage {
SGLogger.shared.log("SGAPI", errorMessage)
}
})
}