Now handler multiper config in one ss url #165

This commit is contained in:
秦宇航
2017-06-14 10:01:54 +08:00
parent abf99692d8
commit d3bdc73054
2 changed files with 29 additions and 2 deletions
+4 -2
View File
@@ -730,11 +730,13 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele
func handleURLEvent(_ event: NSAppleEventDescriptor, withReplyEvent replyEvent: NSAppleEventDescriptor) {
if let urlString = event.paramDescriptor(forKeyword: AEKeyword(keyDirectObject))?.stringValue {
if let url = URL(string: urlString) {
if URL(string: urlString) != nil {
NotificationCenter.default.post(
name: Notification.Name(rawValue: "NOTIFY_FOUND_SS_URL"), object: nil
, userInfo: [
"urls": [url],
"urls": splitProfile(url: urlString, max: 5).map({ (item: String) -> URL in
return URL(string: item)!
}),
"source": "url",
])
}
+25
View File
@@ -25,3 +25,28 @@ extension Data {
return hexBytes.joined(separator: "")
}
}
func splitProfile(url: String, max: Int) -> [String] {
let ssrregexp = "ssr://([A-Za-z0-9_-]+)"
let ssregexp = "ss://([A-Za-z0-9_-]+"
if url.hasPrefix("ss://"){
return splitor(url: url, regexp: ssregexp)
}else if url.hasPrefix("ssr://"){
return splitor(url: url, regexp: ssrregexp)
}
return [""]
}
fileprivate func splitor(url: String, regexp: String) -> [String] {
var ret: [String] = []
var ssrUrl = url
while ssrUrl.range(of:regexp, options: .regularExpression) != nil{
let range = ssrUrl.range(of:regexp, options: .regularExpression)
let result = ssrUrl.substring(with:range!)
ssrUrl.replaceSubrange(range!, with: "")
ret.append(result)
}
return ret
}