Skip to content

Commit

Permalink
Now handler multiper config in one ss url shadowsocks#165
Browse files Browse the repository at this point in the history
  • Loading branch information
qinyuhang committed Jun 14, 2017
1 parent abf9969 commit d3bdc73
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 2 deletions.
6 changes: 4 additions & 2 deletions ShadowsocksX-NG/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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",
])
}
Expand Down
25 changes: 25 additions & 0 deletions ShadowsocksX-NG/Utils.swift
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,28 @@ extension Data {
return hexBytes.joined(separator: "")
}
}

func splitProfile(url: String, max: Int) -> [String] {
let ssrregexp = "ssr:https://([A-Za-z0-9_-]+)"
let ssregexp = "ss:https://([A-Za-z0-9_-]+"


if url.hasPrefix("ss:https://"){
return splitor(url: url, regexp: ssregexp)
}else if url.hasPrefix("ssr:https://"){
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
}

0 comments on commit d3bdc73

Please sign in to comment.