mirror of
https://github.com/qinyuhang/ShadowsocksX-NG-R.git
synced 2026-10-27 19:24:01 +00:00
Now handler multiper config in one ss url #165
This commit is contained in:
@@ -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,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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user