diff --git a/Podfile.lock b/Podfile.lock new file mode 100644 index 0000000..6c04e05 --- /dev/null +++ b/Podfile.lock @@ -0,0 +1,46 @@ +PODS: + - Alamofire (4.8.2) + - GCDWebServer (3.5.2): + - GCDWebServer/Core (= 3.5.2) + - GCDWebServer/Core (3.5.2) + - Preferences (0.3.0) + - QRCoder (1.1.0) + - Sparkle (1.21.3) + - SwiftyJSON (5.0.0) + +DEPENDENCIES: + - Alamofire + - GCDWebServer (~> 3.5.2) + - Preferences (from `https://github.com/sindresorhus/Preferences.git`) + - QRCoder + - Sparkle + - SwiftyJSON + +SPEC REPOS: + https://github.com/CocoaPods/Specs.git: + - Alamofire + - GCDWebServer + - QRCoder + - Sparkle + - SwiftyJSON + +EXTERNAL SOURCES: + Preferences: + :git: https://github.com/sindresorhus/Preferences.git + +CHECKOUT OPTIONS: + Preferences: + :commit: e2e2aaba41b531a642934a17c9b37149dd1c294c + :git: https://github.com/sindresorhus/Preferences.git + +SPEC CHECKSUMS: + Alamofire: ae5c501addb7afdbb13687d7f2f722c78734c2d3 + GCDWebServer: ead88cd14596dd4eae4f5830b8877c87c8728990 + Preferences: 865793c3914c4de086c809a504a4157b8968cb90 + QRCoder: cbd2bee531cc86d286df7942334cfed94c803ae4 + Sparkle: 3f75576db8b0265adef36c43249d747f22d0b708 + SwiftyJSON: 36413e04c44ee145039d332b4f4e2d3e8d6c4db7 + +PODFILE CHECKSUM: 58098d0825211da73cdc15b835005b970bed1875 + +COCOAPODS: 1.8.4 diff --git a/V2rayU/Base.lproj/MainMenu.xib b/V2rayU/Base.lproj/MainMenu.xib index cd9f022..52d00c9 100644 --- a/V2rayU/Base.lproj/MainMenu.xib +++ b/V2rayU/Base.lproj/MainMenu.xib @@ -1,8 +1,8 @@ - + - + @@ -365,6 +365,7 @@ + diff --git a/V2rayU/Preference/PreferenceSubscribe.swift b/V2rayU/Preference/PreferenceSubscribe.swift index 474b7b5..dc3c7dd 100644 --- a/V2rayU/Preference/PreferenceSubscribe.swift +++ b/V2rayU/Preference/PreferenceSubscribe.swift @@ -9,6 +9,7 @@ import Cocoa import Preferences import Alamofire +import SwiftyJSON final class PreferenceSubscribeViewController: NSViewController, PreferencePane { let preferencePaneIdentifier = PreferencePane.Identifier.subscribeTab @@ -177,14 +178,20 @@ final class PreferenceSubscribeViewController: NSViewController, PreferencePane // remove old v2ray servers by subscribe V2rayServer.remove(subscribe: subscribe) + let id : String = String(url.suffix(32)); + let list = strTmp!.trimmingCharacters(in: .newlines).components(separatedBy: CharacterSet.newlines) for item in list { // import every server - self.importUri(uri: item.trimmingCharacters(in: .whitespacesAndNewlines), subscribe: subscribe) + if (item.count == 0) { + continue; + } else { + self.importUri(uri: item.trimmingCharacters(in: .whitespacesAndNewlines), subscribe: subscribe, id: id) + } } } - func importUri(uri: String, subscribe: String) { + func importUri(uri: String, subscribe: String, id: String) { if uri.count == 0 { logTip(title: "fail: ", uri: uri, informativeText: "uri not found") return @@ -195,7 +202,7 @@ final class PreferenceSubscribeViewController: NSViewController, PreferencePane return } - if let importUri = ImportUri.importUri(uri: uri) { + if let importUri = ImportUri.importUri(uri: uri, id: id) { if importUri.isValid { // add server V2rayServer.add(remark: importUri.remark, json: importUri.json, isValid: true, url: importUri.uri, subscribe: subscribe) diff --git a/V2rayU/Scanner.swift b/V2rayU/Scanner.swift index a444863..b3af763 100644 --- a/V2rayU/Scanner.swift +++ b/V2rayU/Scanner.swift @@ -126,7 +126,7 @@ class ImportUri { var error: String = "" var uri: String = "" - static func importUri(uri: String, checkExist: Bool = true) -> ImportUri? { + static func importUri(uri: String, id: String = "", checkExist: Bool = true) -> ImportUri? { if checkExist && V2rayServer.exist(url: uri) { let importUri = ImportUri() importUri.isValid = false @@ -136,7 +136,7 @@ class ImportUri { if uri.hasPrefix("vmess://") { let importUri = ImportUri() - importUri.importVmessUri(uri: uri) + importUri.importVmessUri(uri: uri, id: id) return importUri } else if uri.hasPrefix("ss://") { let importUri = ImportUri() @@ -230,7 +230,7 @@ class ImportUri { } } - func importVmessUri(uri: String) { + func importVmessUri(uri: String, id: String = "") { if URL(string: uri) == nil { self.error = "invalid vmess url" return @@ -258,7 +258,8 @@ class ImportUri { vmessItem.address = vmess.address vmessItem.port = vmess.port var user = V2rayOutboundVMessUser() - user.id = vmess.id + vmess.id = id + user.id = id user.alterId = vmess.alterId user.security = vmess.security vmessItem.users = [user] diff --git a/V2rayU/V2raySubscribe.swift b/V2rayU/V2raySubscribe.swift index 62ff70d..f425709 100644 --- a/V2rayU/V2raySubscribe.swift +++ b/V2rayU/V2raySubscribe.swift @@ -7,7 +7,6 @@ // import Cocoa -import SwiftyJSON // ----- v2ray subscribe manager ----- class V2raySubscribe: NSObject { @@ -222,4 +221,4 @@ class V2raySubItem: NSObject, NSCoding { static func remove(name: String) { UserDefaults.standard.removeObject(forKey: name) } -} \ No newline at end of file +}