Fix JSBridge & Sync Clash

This commit is contained in:
yicheng 2018-10-29 23:00:13 +08:00
parent f81d53e72f
commit 9e3601d957
3 changed files with 39 additions and 10 deletions

View File

@ -25,18 +25,40 @@ class JsBridgeHelper {
}
bridge.registerHandler("writeConfigWithString") {(anydata, responseCallback) in
if let str = anydata as? String {
if (FileManager.default.fileExists(atPath: kConfigFilePath)) {
try? FileManager.default.removeItem(at: URL(fileURLWithPath: kConfigFilePath))
do {
if let str = anydata as? String {
if (FileManager.default.fileExists(atPath: kConfigFilePath)) {
try? FileManager.default.removeItem(at: URL(fileURLWithPath: kConfigFilePath))
}
try str.write(to: URL(fileURLWithPath: kConfigFilePath), atomically: true, encoding: .utf8)
} else {
responseCallback?(false)
}
try? str.write(to: URL(fileURLWithPath: kConfigFilePath), atomically: true, encoding: .utf8)
} catch {
responseCallback?(false)
}
}
bridge.registerHandler("isSystemProxySet") {(anydata, responseCallback) in
responseCallback?(ConfigManager.shared.proxyPortAutoSet)
}
bridge.registerHandler("setSystemProxy") {(anydata, responseCallback) in
if let dict = anydata as? [String:Int] {
let success = ProxyConfigManager.setUpSystemProxy(port: dict["port"], socksPort: dict["socksPort"])
responseCallback?(success)
if let enable = anydata as? Bool {
ConfigManager.shared.proxyPortAutoSet = enable
if let config = ConfigManager.shared.currentConfig {
let success:Bool
if enable{
success = ProxyConfigManager.setUpSystemProxy(port: config.port,socksPort: config.socketPort)
} else {
success = ProxyConfigManager.setUpSystemProxy(port: nil,socksPort: nil)
}
responseCallback?(success)
} else {
responseCallback?(false)
}
} else {
responseCallback?(false)
}
}
@ -50,6 +72,9 @@ class JsBridgeHelper {
bridge.registerHandler("setPasteboard") {(anydata, responseCallback) in
if let str = anydata as? String {
NSPasteboard.general.setString(str, forType: .string)
responseCallback?(true)
} else {
responseCallback?(false)
}
}
@ -65,6 +90,9 @@ class JsBridgeHelper {
bridge.registerHandler("setStartAtLogin") { (anydata, responseCallback) in
if let enable = anydata as? Bool {
LaunchAtLogin.shared.isEnabled = enable
responseCallback?(true)
} else {
responseCallback?(false)
}
}
@ -72,9 +100,8 @@ class JsBridgeHelper {
// ping-pong
bridge.registerHandler("ping"){ (anydata, responseCallback) in
bridge.callHandler("pong")
responseCallback?(true)
}
return bridge
}
}

View File

@ -1,3 +1,3 @@
module github.com/yichengchen/clashX/ClashX
require github.com/Dreamacro/clash v0.8.2-0.20181027045756-19cbe5245616
require github.com/Dreamacro/clash v0.9.0

View File

@ -10,6 +10,7 @@ github.com/Dreamacro/clash v0.8.2-0.20181024160955-990bba4a05eb h1:iIULnMtYwQVHV
github.com/Dreamacro/clash v0.8.2-0.20181024160955-990bba4a05eb/go.mod h1:rMXos/r0xCfD43VJDZk9P3+qD08O8J0C9Vy68waJX+0=
github.com/Dreamacro/clash v0.8.2-0.20181027045756-19cbe5245616 h1:5jSZFPeqxs2q9OkFSJU7KAn5pzPt16Lwo15t4DvKwRU=
github.com/Dreamacro/clash v0.8.2-0.20181027045756-19cbe5245616/go.mod h1:rMXos/r0xCfD43VJDZk9P3+qD08O8J0C9Vy68waJX+0=
github.com/Dreamacro/clash v0.9.0/go.mod h1:RungNqYy4CdPujNqT6M4AdwJXoY1tWBZJzwbJAic7Tc=
github.com/Dreamacro/go-shadowsocks2 v0.1.1 h1:Z6Z1ZQFtIKqB3ZghASl4taaJmL7SOw+KpJ+QZpax+TI=
github.com/Dreamacro/go-shadowsocks2 v0.1.1/go.mod h1:6Fuc8zRHwXqCV9Xaw9qNfrh6OUYpDGrlPVPW4oQ34Gs=
github.com/Dreamacro/go-shadowsocks2 v0.1.2-0.20181010040219-acb54ea41fbd h1:6HucPDdF32vx1b9Z+XVC8cNJuCCkh0eTS20GmKdwOec=
@ -36,6 +37,7 @@ github.com/gofrs/uuid v3.1.0+incompatible h1:q2rtkjaKT4YEr6E1kamy0Ha4RtepWlQBedy
github.com/gofrs/uuid v3.1.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
github.com/gopherjs/gopherjs v0.0.0-20181004151105-1babbf986f6f h1:JJ2EP5vV3LAD2U1CxQtD7PTOO15Y96kXmKDz7TjxGHs=
github.com/gopherjs/gopherjs v0.0.0-20181004151105-1babbf986f6f/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/jtolds/gls v4.2.1+incompatible h1:fSuqC+Gmlu6l/ZYAoZzx2pyucC8Xza35fpRVWLVmUEE=
github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
github.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f2633dfe h1:CHRGQ8V7OlCYtwaKPJi3iA7J+YdNKdo8j7nG5IgDhjs=