mirror of
https://github.com/qinyuhang/ShadowsocksX-NG-R.git
synced 2026-10-09 04:59:57 +00:00
58 lines
1.5 KiB
Swift
58 lines
1.5 KiB
Swift
//
|
|
// Utils.swift
|
|
// ShadowsocksX-NG
|
|
//
|
|
// Created by 邱宇舟 on 16/6/7.
|
|
// Copyright © 2016年 qiuyuzhou. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
|
|
extension String {
|
|
var localized: String {
|
|
return NSLocalizedString(self, tableName: nil, bundle: Bundle.main, value: "", comment: "")
|
|
}
|
|
}
|
|
|
|
|
|
extension Data {
|
|
func sha1() -> String {
|
|
let data = self
|
|
var digest = [UInt8](repeating: 0, count: Int(CC_SHA1_DIGEST_LENGTH))
|
|
CC_SHA1((data as NSData).bytes, CC_LONG(data.count), &digest)
|
|
let hexBytes = digest.map { String(format: "%02hhx", $0) }
|
|
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 [""]
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
func getLocalInfo() -> [String: Any] {
|
|
let InfoDict = Bundle.main.infoDictionary
|
|
return InfoDict!
|
|
}
|