iOS-jumao/AnXuanCliect/JuMaoConfig.swift

144 lines
4.0 KiB
Swift

import Foundation
public class JuMaoConfig {
private var tongBu: [String : Any] = [:]
public init() {
load()
}
public func XiuGaiJieDian(pName: String, sName: String,name3: String) {
tongBu["XiuGaiJieDian"] = [
"pName": pName,
"sName": sName,
"name3": name3,
]
baocun()
}
public func HeNeiHeChuShi(hDir: String) {
tongBu["HeNeiHeChuShi"] = hDir
baocun()
}
public func SheZhiPeiZhi(cp: String) {
tongBu["SheZhiPeiZhi"] = cp
baocun()
}
public func SheZhiZhuYeLuJing(LuJing: String) {
tongBu["SheZhiZhuYeLuJing"] = LuJing
baocun()
}
public func SheZhiSuiDaoMoShi(moShi: String) {
tongBu["SheZhiSuiDaoMoShi"] = moShi
baocun()
}
public func KaiQiRiZhi() {
tongBu["KaiQiRiZhi"] = true
baocun()
}
public func TingZhiRiZhi() {
tongBu.removeValue(forKey: "TingZhiRiZhi")
baocun()
}
public func tiJiaoNeiHe(cli: JuMaoCli) async {
let rizhi = tongBu["KaiQiRiZhi"] as? Bool
await cli.SetLayout()
NSLog("[SheZhiRizhi] SetLayout")
if(rizhi == true) {
let _ = await cli.KaiQiRiZhi()
NSLog("[SheZhiRizhi] KaiQiRiZhi")
}
let _ = await cli.SheZhiPeiZhi(cp: tongBu["SheZhiPeiZhi"] as! String)
NSLog("[SheZhiRizhi] SheZhiPeiZhi")
await cli.SetLayout()
let _ = await cli.SheZhiZhuYeLuJing(LuJing: tongBu["SheZhiZhuYeLuJing"] as! String)
NSLog("[SheZhiRizhi] SheZhiZhuYeLuJing")
await cli.SetAppInfo(appinfo: "")
let _ = await cli.HeNeiHeChuShi(hDir: tongBu["HeNeiHeChuShi"] as! String)
NSLog("[SheZhiRizhi] HeNeiHeChuShi")
await cli.GetUserInfo()
let _ = await cli.JieXiPeiZhi()
NSLog("[SheZhiRizhi] JieXiPeiZhi")
//
let ff = tongBu["XiuGaiJieDian"] as? [String : Any]
if(ff != nil) {
let _ = await cli.XiuGaiJieDian(
pName: ff!["pName"] as! String,
sName: ff!["sName"] as! String,
name3: ff!["name3"] as! String
)
NSLog("[SheZhiRizhi] XiuGaiJieDian")
}
//
let moshi = tongBu["SheZhiSuiDaoMoShi"] as? String
if(moshi != nil) {
let _ = await cli.SheZhiSuiDaoMoShi(moShi: moshi!)
NSLog("[SheZhiRizhi] SheZhiSuiDaoMoShi")
}
}
private func baocun() {
let js = try! JSONSerialization.data(withJSONObject: tongBu)
try! js.write(to: getSharedFile("JuMaoConfig.json"))
}
private func load() {
let js = try? Data(contentsOf: getSharedFile("JuMaoConfig.json"))
if (js == nil) {
return
}
let d = try? JSONSerialization.jsonObject(with: js!) as? [String : Any]
if(d == nil) {
return
}
tongBu = d!
}
}
private let fm = FileManager.default
public func getSharedFile(_ fn: String, create: Bool = true) -> URL {
var id = "group.\(Bundle.main.bundleIdentifier!)"
if let range = id.range(of: ".PacketTunnel", options: .backwards) {
id.removeSubrange(range)
}
let sharedContainerURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: id)!
let target = sharedContainerURL.appendingPathComponent(fn)
if (create && !fm.fileExists(atPath: target.path)) {
fm.createFile(atPath: target.path, contents: nil)
}
return target
}
public func ms2() {
}
public func ms1() {
}
public func makeShared(_ source: URL) -> URL {
let fileName = source.lastPathComponent
let shared = getSharedFile(fileName, create: false)
if fm.fileExists(atPath: shared.path) {
try! fm.removeItem(at: shared)
}
try! fm.copyItem(at: source, to: shared)
return shared
}
public func makeSharedPath(_ filePath: String) -> String {
let source = URL(fileURLWithPath: filePath)
let url = makeShared(source)
return url.path
}