mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
56 lines
1.3 KiB
Swift
56 lines
1.3 KiB
Swift
import Foundation
|
|
|
|
struct AccountNotificationKey: Codable {
|
|
let id: Data
|
|
let data: Data
|
|
}
|
|
|
|
struct AccountDatacenterKey: Codable {
|
|
let id: Int64
|
|
let data: Data
|
|
}
|
|
|
|
struct AccountDatacenterAddress: Codable {
|
|
let host: String
|
|
let port: Int32
|
|
let isMedia: Bool
|
|
let secret: Data?
|
|
}
|
|
|
|
struct AccountDatacenterInfo: Codable {
|
|
let masterKey: AccountDatacenterKey
|
|
let addressList: [AccountDatacenterAddress]
|
|
}
|
|
|
|
struct AccountProxyConnection: Codable {
|
|
let host: String
|
|
let port: Int32
|
|
let username: String?
|
|
let password: String?
|
|
let secret: Data?
|
|
}
|
|
|
|
struct StoredAccountInfo: Codable {
|
|
let id: Int64
|
|
let primaryId: Int32
|
|
let isTestingEnvironment: Bool
|
|
let peerName: String
|
|
let datacenters: [Int32: AccountDatacenterInfo]
|
|
let notificationKey: AccountNotificationKey
|
|
}
|
|
|
|
struct StoredAccountInfos: Codable {
|
|
let proxy: AccountProxyConnection?
|
|
let accounts: [StoredAccountInfo]
|
|
}
|
|
|
|
func loadAccountsData(rootPath: String) -> StoredAccountInfos {
|
|
guard let data = try? Data(contentsOf: URL(fileURLWithPath: rootPath + "/accounts-shared-data")) else {
|
|
return StoredAccountInfos(proxy: nil, accounts: [])
|
|
}
|
|
guard let value = try? JSONDecoder().decode(StoredAccountInfos.self, from: data) else {
|
|
return StoredAccountInfos(proxy: nil, accounts: [])
|
|
}
|
|
return value
|
|
}
|