144 lines
4.0 KiB
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
|
|
}
|